vcl/inc/qt5/Qt5Widget.hxx | 1 - vcl/qt5/Qt5Widget.cxx | 16 +++++++--------- 2 files changed, 7 insertions(+), 10 deletions(-)
New commits: commit 96af619c9650e806dfb19da5b9344c46412d573d Author: Aleksei Nikiforov <darktemp...@basealt.ru> AuthorDate: Mon Jan 21 12:16:13 2019 +0300 Commit: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> CommitDate: Mon Jan 28 15:52:53 2019 +0100 tdf#122814 KDE5: conditional disable of Qt shortcuts Change-Id: I5375f0b555e483b2c108550d319e64d781b96f75 Reviewed-on: https://gerrit.libreoffice.org/66673 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behr...@cib.de> (cherry picked from commit 1a5340788639ba71725338ddc5d340b2b304f4c2) Reviewed-on: https://gerrit.libreoffice.org/66991 Reviewed-by: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> diff --git a/vcl/inc/qt5/Qt5Widget.hxx b/vcl/inc/qt5/Qt5Widget.hxx index 4337792dfc43..731498f11d13 100644 --- a/vcl/inc/qt5/Qt5Widget.hxx +++ b/vcl/inc/qt5/Qt5Widget.hxx @@ -49,7 +49,6 @@ class Qt5Widget : public QWidget virtual void focusInEvent(QFocusEvent*) override; virtual void focusOutEvent(QFocusEvent*) override; - virtual void keyPressEvent(QKeyEvent*) override; virtual void keyReleaseEvent(QKeyEvent*) override; virtual void mouseMoveEvent(QMouseEvent*) override; virtual void mousePressEvent(QMouseEvent*) override; diff --git a/vcl/qt5/Qt5Widget.cxx b/vcl/qt5/Qt5Widget.cxx index 26e89a7ef6fb..69ca329ab97f 100644 --- a/vcl/qt5/Qt5Widget.cxx +++ b/vcl/qt5/Qt5Widget.cxx @@ -402,20 +402,18 @@ bool Qt5Widget::event(QEvent* pEvent) // but enables keypress event. // If event is not accepted and shortcut is successfully activated, // KeyPress event is omitted. - // It looks like handleKeyEvent function still activates the shortcut on KeyPress event, - // so there's no harm in disabling shortcut activation via Qt mechanisms. - pEvent->accept(); + // + // Instead of processing keyPressEvent, handle ShortcutOverride event, + // and if it's handled - disable the shortcut, it should have been activated. + // Don't process keyPressEvent generated after disabling shortcut since it was handled here. + // If event is not handled, don't accept it and let Qt activate related shortcut. + if (handleKeyEvent(static_cast<QKeyEvent*>(pEvent), true)) + pEvent->accept(); } return QWidget::event(pEvent); } -void Qt5Widget::keyPressEvent(QKeyEvent* pEvent) -{ - if (handleKeyEvent(pEvent, true)) - pEvent->accept(); -} - void Qt5Widget::keyReleaseEvent(QKeyEvent* pEvent) { if (handleKeyEvent(pEvent, false)) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits