From 3775ef19eaca057985b92cfa3716d3c3a1d22f0f Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Wed, 21 Sep 2016 18:13:29 +0200 Subject: [PATCH] Properly check Shift toggling in DolphinRemoveAction Documentation of QGuiApplication::keyboardModifiers() says that "It should be noted this may not reflect the actual keys held on the input device at the time of calling but rather the modifiers as last reported in one of the above events". Since this method is called in DolphinContextMenu's keyPressEvent() and keyReleaseEvent(), the first time that keyboardModifiers() is called it doesn't report that shift has been pressed. Replacing this method with queryKeyboardModifiers() does the job because the latter doesn't care about the event queue. BUG: 354301 FIXED-IN: 16.08.2 REVIEW: 128972 --- src/dolphinremoveaction.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dolphinremoveaction.cpp b/src/dolphinremoveaction.cpp index c91d74579d..10ab25112a 100644 --- a/src/dolphinremoveaction.cpp +++ b/src/dolphinremoveaction.cpp @@ -45,7 +45,7 @@ void DolphinRemoveAction::update() // Using setText(action->text()) does not apply the &-shortcut. // This is only done until the original action has been shown at least once. To // bypass this issue, the text and &-shortcut is applied manually. - if (qApp->keyboardModifiers() & Qt::ShiftModifier) { + if (qApp->queryKeyboardModifiers() & Qt::ShiftModifier) { m_action = m_collection ? m_collection->action(QStringLiteral("delete")) : 0; setText(i18nc("@action:inmenu", "&Delete")); } else {