From 35932385bc4d6b129232a279fe3ad872aa92ba33 Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 8 Oct 2020 05:43:39 +0200 Subject: [PATCH] FakeVim: Allow AltGr as modifier to produce normal key values Task-number: QTCREATORBUG-24673 Change-Id: I6d1aa5badd3077f0885d5b2470527c006096809d Reviewed-by: Christian Stenger --- src/plugins/fakevim/fakevimhandler.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index 80b1611b8d5..e8a4ecf844c 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -929,9 +929,14 @@ static bool isOnlyControlModifier(const Qt::KeyboardModifiers &mods) return (mods ^ ControlModifier) == Qt::NoModifier; } -static bool hasControlModifier(const Qt::KeyboardModifiers &mods) +static bool isAcceptableModifier(const Qt::KeyboardModifiers &mods) { - return mods.testFlag(ControlModifier); + if (mods & ControlModifier) { + // Generally, CTRL is not fine, except in combination with ALT. + // See QTCREATORBUG-24673 + return mods & AltModifier; + } + return true; } @@ -1106,7 +1111,7 @@ public: bool is(int c) const { - return m_xkey == c && !hasControlModifier(m_modifiers); + return m_xkey == c && isAcceptableModifier(m_modifiers); } bool isControl() const