vcl/inc/qt5/QtWidget.hxx | 24 +++--------------------- vcl/qt5/QtWidget.cxx | 25 ++++++++++++------------- 2 files changed, 15 insertions(+), 34 deletions(-)
New commits: commit 393c9f736b10d1ea82979e9c2c43c8f91ba5831d Author: Jan-Marek Glogowski <glo...@fbihome.de> AuthorDate: Tue Apr 19 16:00:31 2022 +0200 Commit: Jan-Marek Glogowski <glo...@fbihome.de> CommitDate: Fri Jun 17 17:27:16 2022 +0200 Qt use QEvent::type to handle the event correctly No need for an extra function parameter. Change-Id: Iedb949b45ad3f161121110e2db2132b6c3cb706e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135894 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glo...@fbihome.de> diff --git a/vcl/inc/qt5/QtWidget.hxx b/vcl/inc/qt5/QtWidget.hxx index e644e7f70cd9..e61357198027 100644 --- a/vcl/inc/qt5/QtWidget.hxx +++ b/vcl/inc/qt5/QtWidget.hxx @@ -42,17 +42,10 @@ class QtWidget : public QWidget int m_nDeltaX; int m_nDeltaY; - enum class ButtonKeyState - { - Pressed, - Released - }; - static void commitText(QtFrame&, const QString& aText); static void deleteReplacementText(QtFrame& rFrame, int nReplacementStart, int nReplacementLength); - static bool handleKeyEvent(QtFrame&, const QWidget&, QKeyEvent*, const ButtonKeyState); - static void handleMouseButtonEvent(const QtFrame&, const QMouseEvent*, const ButtonKeyState); + static bool handleKeyEvent(QtFrame&, const QWidget&, QKeyEvent*); static void handleMouseEnterLeaveEvents(const QtFrame&, QEvent*); static void fillSalAbstractMouseEvent(const QtFrame& rFrame, const QInputEvent* pQEvent, const QPoint& rPos, Qt::MouseButtons eButtons, int nWidth, @@ -101,23 +94,12 @@ public: // key events might be propagated further down => call base on false static inline bool handleKeyReleaseEvent(QtFrame&, const QWidget&, QKeyEvent*); // mouse events are always accepted - static inline void handleMousePressEvent(const QtFrame&, const QMouseEvent*); - static inline void handleMouseReleaseEvent(const QtFrame&, const QMouseEvent*); + static void handleMouseButtonEvent(const QtFrame&, const QMouseEvent*); }; bool QtWidget::handleKeyReleaseEvent(QtFrame& rFrame, const QWidget& rWidget, QKeyEvent* pEvent) { - return handleKeyEvent(rFrame, rWidget, pEvent, ButtonKeyState::Released); -} - -void QtWidget::handleMousePressEvent(const QtFrame& rFrame, const QMouseEvent* pEvent) -{ - handleMouseButtonEvent(rFrame, pEvent, ButtonKeyState::Pressed); -} - -void QtWidget::handleMouseReleaseEvent(const QtFrame& rFrame, const QMouseEvent* pEvent) -{ - handleMouseButtonEvent(rFrame, pEvent, ButtonKeyState::Released); + return handleKeyEvent(rFrame, rWidget, pEvent); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/qt5/QtWidget.cxx b/vcl/qt5/QtWidget.cxx index 5c6fc002ac22..e26e1e3aee1f 100644 --- a/vcl/qt5/QtWidget.cxx +++ b/vcl/qt5/QtWidget.cxx @@ -153,8 +153,7 @@ void QtWidget::fillSalAbstractMouseEvent(const QtFrame& rFrame, const QInputEven #define FILL_SAME(rFrame, nWidth) \ fillSalAbstractMouseEvent(rFrame, pEvent, pEvent->pos(), pEvent->buttons(), nWidth, aEvent) -void QtWidget::handleMouseButtonEvent(const QtFrame& rFrame, const QMouseEvent* pEvent, - const ButtonKeyState eState) +void QtWidget::handleMouseButtonEvent(const QtFrame& rFrame, const QMouseEvent* pEvent) { SalMouseEvent aEvent; FILL_SAME(rFrame, rFrame.GetQWidget()->width()); @@ -175,7 +174,7 @@ void QtWidget::handleMouseButtonEvent(const QtFrame& rFrame, const QMouseEvent* } SalEvent nEventType; - if (eState == ButtonKeyState::Pressed) + if (pEvent->type() == QEvent::MouseButtonPress) nEventType = SalEvent::MouseButtonDown; else nEventType = SalEvent::MouseButtonUp; @@ -184,13 +183,13 @@ void QtWidget::handleMouseButtonEvent(const QtFrame& rFrame, const QMouseEvent* void QtWidget::mousePressEvent(QMouseEvent* pEvent) { - handleMousePressEvent(m_rFrame, pEvent); + handleMouseButtonEvent(m_rFrame, pEvent); if (m_rFrame.isPopup() && !geometry().translated(geometry().topLeft() * -1).contains(pEvent->pos())) closePopup(); } -void QtWidget::mouseReleaseEvent(QMouseEvent* pEvent) { handleMouseReleaseEvent(m_rFrame, pEvent); } +void QtWidget::mouseReleaseEvent(QMouseEvent* pEvent) { handleMouseButtonEvent(m_rFrame, pEvent); } void QtWidget::mouseMoveEvent(QMouseEvent* pEvent) { @@ -514,11 +513,12 @@ void QtWidget::deleteReplacementText(QtFrame& rFrame, int nReplacementStart, int rFrame.CallCallback(SalEvent::DeleteSurroundingTextRequest, &aEvt); } -bool QtWidget::handleKeyEvent(QtFrame& rFrame, const QWidget& rWidget, QKeyEvent* pEvent, - const ButtonKeyState eState) +bool QtWidget::handleKeyEvent(QtFrame& rFrame, const QWidget& rWidget, QKeyEvent* pEvent) { + const bool bIsKeyPressed + = pEvent->type() == QEvent::KeyPress || pEvent->type() == QEvent::ShortcutOverride; sal_uInt16 nCode = GetKeyCode(pEvent->key(), pEvent->modifiers()); - if (eState == ButtonKeyState::Pressed && nCode == 0 && pEvent->text().length() > 1 + if (bIsKeyPressed && nCode == 0 && pEvent->text().length() > 1 && rWidget.testAttribute(Qt::WA_InputMethodEnabled)) { commitText(rFrame, pEvent->text()); @@ -530,7 +530,7 @@ bool QtWidget::handleKeyEvent(QtFrame& rFrame, const QWidget& rWidget, QKeyEvent { sal_uInt16 nModCode = GetKeyModCode(pEvent->modifiers()); SalKeyModEvent aModEvt; - aModEvt.mbDown = eState == ButtonKeyState::Pressed; + aModEvt.mbDown = bIsKeyPressed; aModEvt.mnModKeyCode = ModKeyFlags::NONE; #if CHECK_ANY_QT_USING_X11 @@ -582,7 +582,7 @@ bool QtWidget::handleKeyEvent(QtFrame& rFrame, const QWidget& rWidget, QKeyEvent break; } - if (eState == ButtonKeyState::Released) + if (!bIsKeyPressed) { // sending the old mnModKeyCode mask on release is needed to // implement the writing direction switch with Ctrl + L/R-Shift @@ -618,7 +618,7 @@ bool QtWidget::handleKeyEvent(QtFrame& rFrame, const QWidget& rWidget, QKeyEvent QGuiApplication::inputMethod()->update(Qt::ImCursorRectangle); bool bStopProcessingKey; - if (eState == ButtonKeyState::Pressed) + if (bIsKeyPressed) bStopProcessingKey = rFrame.CallCallback(SalEvent::KeyInput, &aEvent); else bStopProcessingKey = rFrame.CallCallback(SalEvent::KeyUp, &aEvent); @@ -650,8 +650,7 @@ bool QtWidget::handleEvent(QtFrame& rFrame, QWidget& rWidget, QEvent* pEvent) // 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(rFrame, rWidget, static_cast<QKeyEvent*>(pEvent), - ButtonKeyState::Pressed)) + if (handleKeyEvent(rFrame, rWidget, static_cast<QKeyEvent*>(pEvent))) return true; } else if (pEvent->type() == QEvent::ToolTip)