aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPo Lu2022-03-14 02:45:55 +0000
committerPo Lu2022-03-14 02:46:11 +0000
commitfaab1b20028d11b9f35beacba4b2b278ac0cdab3 (patch)
tree48f28d69fc4cf74bb24e7cbb3b9997e9093d4c8a /src
parenta63bac7adef9b17521e804a67a574764d6e8b2b6 (diff)
downloademacs-faab1b20028d11b9f35beacba4b2b278ac0cdab3.tar.gz
emacs-faab1b20028d11b9f35beacba4b2b278ac0cdab3.zip
Fix extraneous overscroll activation on Haiku
* src/haiku_support.cc (class EmacsScrollBar): New field `maybe_overscroll'. (MouseDown): Set that field. (MouseUp): Clear that field. (MouseMoved): Also test `maybe_overscroll' to ensure that a grab started inside the scroll bar.
Diffstat (limited to 'src')
-rw-r--r--src/haiku_support.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/haiku_support.cc b/src/haiku_support.cc
index 1c1be178d20..cb8ffaf2d7b 100644
--- a/src/haiku_support.cc
+++ b/src/haiku_support.cc
@@ -1571,6 +1571,7 @@ public:
1571 bool handle_button = false; 1571 bool handle_button = false;
1572 bool in_overscroll = false; 1572 bool in_overscroll = false;
1573 bool can_overscroll = false; 1573 bool can_overscroll = false;
1574 bool maybe_overscroll = false;
1574 BPoint last_overscroll; 1575 BPoint last_overscroll;
1575 int last_reported_overscroll_value; 1576 int last_reported_overscroll_value;
1576 int max_value, real_max_value; 1577 int max_value, real_max_value;
@@ -1784,6 +1785,7 @@ public:
1784 1785
1785 if (buttons == B_PRIMARY_MOUSE_BUTTON) 1786 if (buttons == B_PRIMARY_MOUSE_BUTTON)
1786 { 1787 {
1788 maybe_overscroll = true;
1787 r = ButtonRegionFor (HAIKU_SCROLL_BAR_UP_BUTTON); 1789 r = ButtonRegionFor (HAIKU_SCROLL_BAR_UP_BUTTON);
1788 1790
1789 if (r.Contains (pt)) 1791 if (r.Contains (pt))
@@ -1833,6 +1835,7 @@ public:
1833 BView *parent; 1835 BView *parent;
1834 1836
1835 in_overscroll = false; 1837 in_overscroll = false;
1838 maybe_overscroll = false;
1836 1839
1837 if (handle_button) 1840 if (handle_button)
1838 { 1841 {
@@ -1922,7 +1925,9 @@ public:
1922 return; 1925 return;
1923 } 1926 }
1924 } 1927 }
1925 else if (can_overscroll && (buttons == B_PRIMARY_MOUSE_BUTTON)) 1928 else if (can_overscroll
1929 && (buttons == B_PRIMARY_MOUSE_BUTTON)
1930 && maybe_overscroll)
1926 { 1931 {
1927 value = Value (); 1932 value = Value ();
1928 1933