Fix ctrl+tab/ctrl+shift+tab as overriden shortcuts.

This commit is contained in:
John Preston
2025-08-25 10:41:49 +04:00
parent 84c70a0905
commit d63f3b6da1
+16 -6
View File
@@ -834,18 +834,16 @@ bool HandlePossibleChatSwitch(not_null<QKeyEvent*> event) {
? Qt::MetaModifier
: Qt::ControlModifier;
if (Data.handles(ctrl | Qt::ShiftModifier | Qt::Key_Tab)
&& Data.handles(QKeySequence(ctrl | Qt::Key_Tab))
&& Data.handles(QKeySequence(ctrl | Qt::Key_Backtab))) {
if (Data.handles(QKeySequence(ctrl | Qt::Key_Tab))
&& (Data.handles(ctrl | Qt::ShiftModifier | Qt::Key_Backtab)
|| Data.handles(ctrl | Qt::ShiftModifier | Qt::Key_Tab)
|| Data.handles(QKeySequence(ctrl | Qt::Key_Backtab)))) {
return false;
} else if (key == Qt::Key_Control || key == Qt::Key_Meta) {
ChatSwitchModifier = key;
} else if (key == Qt::Key_Tab || key == Qt::Key_Backtab) {
const auto modifiers = event->modifiers();
if (modifiers & ctrl) {
if (Data.handles(modifiers | key)) {
return false;
}
if (ChatSwitchModifier == Qt::Key()) {
ChatSwitchModifier = Platform::IsMac()
? Qt::Key_Meta
@@ -854,6 +852,18 @@ bool HandlePossibleChatSwitch(not_null<QKeyEvent*> event) {
const auto action = (modifiers & Qt::ShiftModifier)
? Qt::Key_Backtab
: key;
if (Data.handles(modifiers | key)) {
return false;
} else if (action == Qt::Key_Tab
&& Data.handles(QKeySequence(ctrl | Qt::Key_Tab))) {
return false;
} else if (action == Qt::Key_Backtab
&& Data.handles(QKeySequence(ctrl | Qt::Key_Backtab))) {
return false;
} else if (action == Qt::Key_Backtab
&& Data.handles(ctrl | Qt::ShiftModifier | Qt::Key_Tab)) {
return false;
}
const auto started = !std::exchange(ChatSwitchStarted, true);
ChatSwitchStream.fire({
.action = action,