[Libreoffice-commits] core.git: vcl/inc vcl/qt5
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Sat Jan 26 10:47:49 UTC 2019
vcl/inc/qt5/Qt5Widget.hxx | 1 -
vcl/qt5/Qt5Widget.cxx | 16 +++++++---------
2 files changed, 7 insertions(+), 10 deletions(-)
New commits:
commit 1a5340788639ba71725338ddc5d340b2b304f4c2
Author: Aleksei Nikiforov <darktemplar at basealt.ru>
AuthorDate: Mon Jan 21 12:16:13 2019 +0300
Commit: Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Sat Jan 26 11:47:27 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.Behrens at 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 6d75cd60df73..4ce56523d58e 100644
--- a/vcl/qt5/Qt5Widget.cxx
+++ b/vcl/qt5/Qt5Widget.cxx
@@ -403,20 +403,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))
More information about the Libreoffice-commits
mailing list