From: Elvis Angelaccio Date: Wed, 21 Sep 2016 16:13:29 +0000 (+0200) Subject: Properly check Shift toggling in DolphinRemoveAction X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/3775ef19eaca057985b92cfa3716d3c3a1d22f0f 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 --- diff --git a/src/dolphinremoveaction.cpp b/src/dolphinremoveaction.cpp index c91d74579..10ab25112 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 {