Fix Escape shortcut in RoomPage

Since commit eee93e0f1, the ChatBar has a conflicting shortcut that
takes precedence even when it doesn't do anything, so that the Escape
shortcut of RoomPage is never actually invoked any more.

Fix this by using Keys.onShortcutOverride() instead in ChatBar and
accepting the event only when it actually cancelled something. So if
you're writing a reply, the first time pressing Escape cancels the reply
and the second one calls the RoomPage shortcut that goes to the
RoomListPage.
This commit is contained in:
Kevin Wolf
2023-02-23 10:33:45 +01:00
committed by Tobias Fella
parent c0c86c67b6
commit e9cd165457

View File

@@ -185,6 +185,13 @@ QQC2.Control {
repeatTimer.stop()
}
}
Keys.onShortcutOverride: {
// Accept the event only when there was something to cancel. Otherwise, let the event go to the RoomPage.
if (cancelButton.visible && event.key === Qt.Key_Escape) {
cancelButton.action.trigger();
event.accepted = true;
}
}
Loader {
id: paneLoader
@@ -270,7 +277,6 @@ QQC2.Control {
currentRoom.chatBoxAttachmentPath = "";
root.forceActiveFocus()
}
shortcut: "Escape"
}
QQC2.ToolTip.text: text
QQC2.ToolTip.visible: hovered