From 34375f5891d5ad5a65e27f894abcdcbf76bb5d5b Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 9 Aug 2020 12:30:36 +0530 Subject: [PATCH] Make drag scrolling semantics read mode dependant --- src/pyj/read_book/selection_bar.pyj | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/pyj/read_book/selection_bar.pyj b/src/pyj/read_book/selection_bar.pyj index 3e568fd04b..a2e11b31c1 100644 --- a/src/pyj/read_book/selection_bar.pyj +++ b/src/pyj/read_book/selection_bar.pyj @@ -232,7 +232,7 @@ class SelectionBar: self.position_in_handle = {'x': 0, 'y': 0} self.active_touch = None self.drag_scroll_timer = None - self.last_drag_scroll_at = -100000 + self.last_drag_scroll_at = None self.left_line_height = self.right_line_height = 0 self.current_editor = None @@ -505,10 +505,16 @@ class SelectionBar: if self.state is not DRAGGING: return sd = get_session_data() - interval = 1000/sd.get('lines_per_sec_smooth') if self.in_flow_mode else 1200 + in_flow_mode = sd.get('read_mode') is 'flow' + interval = 1000/sd.get('lines_per_sec_smooth') if in_flow_mode else 1200 self.drag_scroll_timer = window.setTimeout(self.do_one_drag_scroll.bind(None, backwards, distance_from_boundary), interval) now = window.performance.now() - if now - self.last_drag_scroll_at > interval: + if self.last_drag_scroll_at is None: + # dont jump a page immediately in paged mode + if in_flow_mode: + self.send_drag_scroll_message(backwards, 'left' if self.dragging_handle is self.left_handle_id else 'right', True) + self.last_drag_scroll_at = now + elif now - self.last_drag_scroll_at > interval: self.send_drag_scroll_message(backwards, 'left' if self.dragging_handle is self.left_handle_id else 'right', True) self.last_drag_scroll_at = now @@ -521,7 +527,7 @@ class SelectionBar: if self.drag_scroll_timer is not None: window.clearTimeout(self.drag_scroll_timer) self.drag_scroll_timer = None - self.last_drag_scroll_at = -10000 + self.last_drag_scroll_at = None # }}}