diff options
| author | Po Lu | 2022-03-14 02:45:55 +0000 |
|---|---|---|
| committer | Po Lu | 2022-03-14 02:46:11 +0000 |
| commit | faab1b20028d11b9f35beacba4b2b278ac0cdab3 (patch) | |
| tree | 48f28d69fc4cf74bb24e7cbb3b9997e9093d4c8a /src | |
| parent | a63bac7adef9b17521e804a67a574764d6e8b2b6 (diff) | |
| download | emacs-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.cc | 7 |
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 | ||