diff options
author | Sandy Armstrong <sandy@xamarin.com> | 2022-06-27 20:21:35 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-27 20:21:35 +0300 |
commit | 282fb752af11ab66b35661111360028e27d7fa3d (patch) | |
tree | b5b9c7aeb3c986f8c4ce6f6b163d9b825782bcf4 | |
parent | 941d48e671d7cda4f09ff5b6571a2534dfc88dcd (diff) | |
parent | e42ce2954ca96a8ca53c9511f197700c877b216c (diff) |
Merge pull request #1104 from stephenbudhi-msft/dev/stephenbudhi/fixscroll
[Mac] Prevent ScrollView from scrolling out of bounds
-rw-r--r-- | Xwt.XamMac/Xwt.Mac/ScrollViewBackend.cs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/Xwt.XamMac/Xwt.Mac/ScrollViewBackend.cs b/Xwt.XamMac/Xwt.Mac/ScrollViewBackend.cs index 24fbc9a2..182dfd6a 100644 --- a/Xwt.XamMac/Xwt.Mac/ScrollViewBackend.cs +++ b/Xwt.XamMac/Xwt.Mac/ScrollViewBackend.cs @@ -291,16 +291,17 @@ namespace Xwt.Mac public override void ScrollToPoint (CGPoint newOrigin) { - base.ScrollToPoint (newOrigin); var v = DocumentView.Subviews [0]; currentX = newOrigin.X >= 0 ? newOrigin.X : 0; currentY = newOrigin.Y >= 0 ? newOrigin.Y : 0; - if (currentX + v.Frame.Width > DocumentView.Frame.Width) + if (currentX + v.Frame.Width > DocumentView.Frame.Width && DocumentView.Frame.Width >= v.Frame.Width) currentX = DocumentView.Frame.Width - v.Frame.Width; - if (currentY + v.Frame.Height > DocumentView.Frame.Height) + if (currentY + v.Frame.Height > DocumentView.Frame.Height && DocumentView.Frame.Height >= v.Frame.Height) currentY = DocumentView.Frame.Height - v.Frame.Height; + base.ScrollToPoint(new CGPoint(currentX, currentY)); + v.Frame = new CGRect ((nfloat)currentX, (nfloat)currentY, v.Frame.Width, v.Frame.Height); hScroll.NotifyValueChanged (); |