From: Po Lu Date: Mon, 14 Mar 2022 02:45:55 +0000 (+0000) Subject: Fix extraneous overscroll activation on Haiku X-Git-Tag: emacs-29.0.90~1931^2~1139 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=faab1b20028d11b9f35beacba4b2b278ac0cdab3;p=emacs.git 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. --- 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: 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 ();