]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix extraneous overscroll activation on Haiku
authorPo Lu <luangruo@yahoo.com>
Mon, 14 Mar 2022 02:45:55 +0000 (02:45 +0000)
committerPo Lu <luangruo@yahoo.com>
Mon, 14 Mar 2022 02:46:11 +0000 (02:46 +0000)
* 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.

src/haiku_support.cc

index 1c1be178d20fd3232c573782c7e62f561ef0632b..cb8ffaf2d7ba2264ae697cc0496b1f77bcc16935 100644 (file)
@@ -1571,6 +1571,7 @@ public:
   bool handle_button = false;
   bool in_overscroll = false;
   bool can_overscroll = false;
+  bool maybe_overscroll = false;
   BPoint last_overscroll;
   int last_reported_overscroll_value;
   int max_value, real_max_value;
@@ -1784,6 +1785,7 @@ public:
 
     if (buttons == B_PRIMARY_MOUSE_BUTTON)
       {
+       maybe_overscroll = true;
        r = ButtonRegionFor (HAIKU_SCROLL_BAR_UP_BUTTON);
 
        if (r.Contains (pt))
@@ -1833,6 +1835,7 @@ public:
     BView *parent;
 
     in_overscroll = false;
+    maybe_overscroll = false;
 
     if (handle_button)
       {
@@ -1922,7 +1925,9 @@ public:
            return;
          }
       }
-    else if (can_overscroll && (buttons == B_PRIMARY_MOUSE_BUTTON))
+    else if (can_overscroll
+            && (buttons == B_PRIMARY_MOUSE_BUTTON)
+            && maybe_overscroll)
       {
        value = Value ();