Fix a regression in the previous release that broke touch screen interaction

This commit is contained in:
Kovid Goyal
2022-07-14 22:01:55 +05:30
parent ea8e8cedb3
commit 2c4766a859
7 changed files with 25 additions and 37 deletions
+5 -5
View File
@@ -34,18 +34,18 @@ class TouchPoint:
def __init__(self, tp):
self.creation_time = self.last_update_time = self.time_of_last_move = monotonic()
self.start_screen_position = self.current_screen_position = self.previous_screen_position = QPointF(tp.screenPos())
self.start_screen_position = self.current_screen_position = self.previous_screen_position = QPointF(tp.globalPosition())
self.time_since_last_update = -1
self.total_movement = 0
self.start_position = self.current_position = tp.pos()
self.start_position = self.current_position = tp.position()
self.extra_data = None
def update(self, tp):
self.current_position = tp.pos()
self.current_position = tp.position()
now = monotonic()
self.time_since_last_update = now - self.last_update_time
self.last_update_time = now
self.previous_screen_position, self.current_screen_position = self.current_screen_position, QPointF(tp.screenPos())
self.previous_screen_position, self.current_screen_position = self.current_screen_position, QPointF(tp.globalPosition())
movement = (self.current_screen_position - self.previous_screen_position).manhattanLength()
self.total_movement += movement
if movement > 5:
@@ -81,7 +81,7 @@ class State(QObject):
if boundary == 'start':
self.start()
for tp in ev.touchPoints():
for tp in ev.points():
tpid = tp.id()
if tpid not in self.touch_points:
self.touch_points[tpid] = TouchPoint(tp)
+4 -6
View File
@@ -734,13 +734,11 @@ class GridView(QListView):
t.timeout.connect(self.update_memory_cover_cache_size)
def viewportEvent(self, ev):
try:
if hasattr(self, 'gesture_manager'):
ret = self.gesture_manager.handle_event(ev)
except AttributeError:
ret = None
if ret is not None:
return ret
return QListView.viewportEvent(self, ev)
if ret is not None:
return ret
return super().viewportEvent(ev)
@property
def device_pixel_ratio(self):
+4 -6
View File
@@ -215,13 +215,11 @@ class BooksView(QTableView): # {{{
def viewportEvent(self, event):
if (event.type() == QEvent.Type.ToolTip and not gprefs['book_list_tooltips']):
return False
try:
if hasattr(self, 'gesture_manager'):
ret = self.gesture_manager.handle_event(event)
except AttributeError:
ret = None
if ret is not None:
return ret
return QTableView.viewportEvent(self, event)
if ret is not None:
return ret
return super().viewportEvent(event)
def __init__(self, parent, modelcls=BooksModel, use_edit_metadata_dialog=True):
QTableView.__init__(self, parent)
+3 -5
View File
@@ -37,12 +37,10 @@ class BookmarksList(QListWidget):
self.setVerticalScrollMode(QAbstractItemView.ScrollMode.ScrollPerPixel)
def viewportEvent(self, ev):
try:
if hasattr(self, 'gesture_manager'):
ret = self.gesture_manager.handle_event(ev)
except AttributeError:
ret = None
if ret is not None:
return ret
if ret is not None:
return ret
return super().viewportEvent(ev)
@property
+3 -5
View File
@@ -180,12 +180,10 @@ class Highlights(QTreeWidget):
self.setVerticalScrollMode(QAbstractItemView.ScrollMode.ScrollPerPixel)
def viewportEvent(self, ev):
try:
if hasattr(self, 'gesture_manager'):
ret = self.gesture_manager.handle_event(ev)
except AttributeError:
ret = None
if ret is not None:
return ret
if ret is not None:
return ret
return super().viewportEvent(ev)
def show_context_menu(self, point):
+3 -5
View File
@@ -497,12 +497,10 @@ class Results(QTreeWidget): # {{{
self.setVerticalScrollMode(QAbstractItemView.ScrollMode.ScrollPerPixel)
def viewportEvent(self, ev):
try:
if hasattr(self, 'gesture_manager'):
ret = self.gesture_manager.handle_event(ev)
except AttributeError:
ret = None
if ret is not None:
return ret
if ret is not None:
return ret
return super().viewportEvent(ev)
def current_item_changed(self, current, previous):
+3 -5
View File
@@ -53,12 +53,10 @@ class TOCView(QTreeView):
self.gesture_manager = GestureManager(self)
def viewportEvent(self, ev):
try:
if hasattr(self, 'gesture_manager'):
ret = self.gesture_manager.handle_event(ev)
except AttributeError:
ret = None
if ret is not None:
return ret
if ret is not None:
return ret
return super().viewportEvent(ev)
def setModel(self, model):