Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/xwt.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSandy Armstrong <sandy@xamarin.com>2022-06-27 20:21:35 +0300
committerGitHub <noreply@github.com>2022-06-27 20:21:35 +0300
commit282fb752af11ab66b35661111360028e27d7fa3d (patch)
treeb5b9c7aeb3c986f8c4ce6f6b163d9b825782bcf4
parent941d48e671d7cda4f09ff5b6571a2534dfc88dcd (diff)
parente42ce2954ca96a8ca53c9511f197700c877b216c (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.cs7
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 ();