mirror of
git://github.com/kovidgoyal/calibre.git
synced 2026-05-08 13:12:35 +02:00
Workaround for Qt bug that prevented using the shift and ctrl keys with the touchscreen
This commit is contained in:
parent
c3cdafb59f
commit
e5ed6fca10
1 changed files with 5 additions and 4 deletions
|
|
@ -136,13 +136,14 @@ def finalize(self):
|
|||
|
||||
|
||||
def send_click(view, pos, button=Qt.LeftButton, double_click=False):
|
||||
mods = QApplication.keyboardModifiers()
|
||||
if double_click:
|
||||
ev = QMouseEvent(QEvent.MouseButtonDblClick, pos, button, button, QApplication.keyboardModifiers())
|
||||
ev = QMouseEvent(QEvent.MouseButtonDblClick, pos, button, button, mods)
|
||||
QApplication.postEvent(view.viewport(), ev)
|
||||
return
|
||||
ev = QMouseEvent(QEvent.MouseButtonPress, pos, button, button, QApplication.keyboardModifiers())
|
||||
ev = QMouseEvent(QEvent.MouseButtonPress, pos, button, button, mods)
|
||||
QApplication.postEvent(view.viewport(), ev)
|
||||
ev = QMouseEvent(QEvent.MouseButtonRelease, pos, button, button, QApplication.keyboardModifiers())
|
||||
ev = QMouseEvent(QEvent.MouseButtonRelease, pos, button, button, mods)
|
||||
QApplication.postEvent(view.viewport(), ev)
|
||||
|
||||
|
||||
|
|
@ -153,7 +154,7 @@ def __init__(self, view):
|
|||
if touch_supported:
|
||||
view.viewport().setAttribute(Qt.WA_AcceptTouchEvents)
|
||||
self.state = State()
|
||||
self.state.tapped.connect(self.handle_tap)
|
||||
self.state.tapped.connect(self.handle_tap, type=Qt.QueuedConnection) # has to be queued otherwise QApplication.keyboardModifiers() does not work
|
||||
self.state.flicking.connect(self.handle_flicking)
|
||||
self.state.tap_hold_started.connect(partial(self.handle_tap_hold, 'start'))
|
||||
self.state.tap_hold_updated.connect(partial(self.handle_tap_hold, 'update'))
|
||||
|
|
|
|||
Loading…
Reference in a new issue