From faab1b20028d11b9f35beacba4b2b278ac0cdab3 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Mon, 14 Mar 2022 02:45:55 +0000 Subject: [PATCH] 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. --- src/haiku_support.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 (); -- 2.39.5