From e8bb49e1d4b6e8eb15d7975bd98894f0577c34c9 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Mon, 23 Jun 2014 12:11:00 +0200 Subject: Report keyboard modifiers in evdevmouse Mouse and wheel events have no modifiers set. This is not ideal. Pass at least QGuiApplication::keyboardModifiers() to get the modifiers from the last key event. Task-number: QTBUG-39812 Change-Id: Ica0c338c60c3e289dccfafa5aa6d602d4e111ad5 Reviewed-by: Leonard Lee Reviewed-by: Will Wagner Reviewed-by: Shawn Rutledge --- src/platformsupport/input/evdevmouse/qevdevmousemanager.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/platformsupport/input/evdevmouse/qevdevmousemanager.cpp b/src/platformsupport/input/evdevmouse/qevdevmousemanager.cpp index 7b834a5c61..87f3a4c9a0 100644 --- a/src/platformsupport/input/evdevmouse/qevdevmousemanager.cpp +++ b/src/platformsupport/input/evdevmouse/qevdevmousemanager.cpp @@ -135,7 +135,9 @@ void QEvdevMouseManager::handleMouseEvent(int x, int y, bool abs, Qt::MouseButto m_y = g.bottom() - m_yoffset; QPoint pos(m_x + m_xoffset, m_y + m_yoffset); - QWindowSystemInterface::handleMouseEvent(0, pos, pos, buttons); + // Cannot track the keyboard modifiers ourselves here. Instead, report the + // modifiers from the last key event that has been seen by QGuiApplication. + QWindowSystemInterface::handleMouseEvent(0, pos, pos, buttons, QGuiApplication::keyboardModifiers()); #ifdef QT_QPA_MOUSEMANAGER_DEBUG qDebug("mouse event %d %d %d", pos.x(), pos.y(), int(buttons)); @@ -145,7 +147,7 @@ void QEvdevMouseManager::handleMouseEvent(int x, int y, bool abs, Qt::MouseButto void QEvdevMouseManager::handleWheelEvent(int delta, Qt::Orientation orientation) { QPoint pos(m_x + m_xoffset, m_y + m_yoffset); - QWindowSystemInterface::handleWheelEvent(0, pos, pos, delta, orientation); + QWindowSystemInterface::handleWheelEvent(0, pos, pos, delta, orientation, QGuiApplication::keyboardModifiers()); #ifdef QT_QPA_MOUSEMANAGER_DEBUG qDebug("mouse wheel event %dx%d %d %d", pos.x(), pos.y(), delta, int(orientation)); -- cgit v1.2.3