From af9552d7044c6962154369da81b13af4f040b35e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20H=C3=B6rist?= Date: Sun, 25 Mar 2018 00:22:40 +0100 Subject: [PATCH] Fix Autoscroll (for real this time) Fixes #8992 --- gajim/chat_control_base.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/gajim/chat_control_base.py b/gajim/chat_control_base.py index a78687c3d..ad236fed6 100644 --- a/gajim/chat_control_base.py +++ b/gajim/chat_control_base.py @@ -1268,9 +1268,26 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools): return else: # On scrolliung UP disable autoscroll - # has_direction is on some systems always False - # so we cant use it + # get_scroll_direction() sets has_direction only TRUE + # if smooth scrolling is deactivated. If we have smooth + # smooth scrolling we have to use get_scroll_deltas() has_direction, direction = event.get_scroll_direction() + if not has_direction: + direction = None + smooth, delta_x, delta_y = event.get_scroll_deltas() + if smooth: + if delta_y < 0: + direction = Gdk.ScrollDirection.UP + elif delta_y > 0: + direction = Gdk.ScrollDirection.DOWN + elif delta_x < 0: + direction = Gdk.ScrollDirection.LEFT + elif delta_x > 0: + direction = Gdk.ScrollDirection.RIGHT + else: + app.log('autoscroll').warning( + 'Scroll directions cant be determined') + if direction != Gdk.ScrollDirection.UP: return # Check if we have a Scrollbar