diff options
author | Jørgen Lind <jorgen.lind@nokia.com> | 2011-11-28 15:04:37 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-11-28 16:57:58 +0100 |
commit | f6c107d799d14bbdb2cb71b8446483541bb0adb5 (patch) | |
tree | 9dec9b31ac8c67239154f21c338e64585892caf1 /src/widgets | |
parent | 67e613963dddf2ecef7f26a4fea0c7709a211c49 (diff) |
Make input events work for widgets on wayland
Wayland windows does not know about their position
Change-Id: Ia37dd0fe6e33073eeeba22c88da9bd4bcad5421f
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/kernel/qapplication.cpp | 4 | ||||
-rw-r--r-- | src/widgets/kernel/qapplication_p.h | 2 | ||||
-rw-r--r-- | src/widgets/kernel/qwidgetwindow_qpa.cpp | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp index 33dd07e63e..beeb3dad17 100644 --- a/src/widgets/kernel/qapplication.cpp +++ b/src/widgets/kernel/qapplication.cpp @@ -2777,7 +2777,7 @@ bool QApplicationPrivate::tryModalHelper(QWidget *widget, QWidget **rettop) /* \internal */ -QWidget *QApplicationPrivate::pickMouseReceiver(QWidget *candidate, const QPoint &globalPos, +QWidget *QApplicationPrivate::pickMouseReceiver(QWidget *candidate, const QPoint &windowPos, QPoint *pos, QEvent::Type type, Qt::MouseButtons buttons, QWidget *buttonDown, QWidget *alienWidget) @@ -2800,7 +2800,7 @@ QWidget *QApplicationPrivate::pickMouseReceiver(QWidget *candidate, const QPoint if (mouseGrabber && mouseGrabber != candidate) { receiver = mouseGrabber; - *pos = receiver->mapFromGlobal(globalPos); + *pos = receiver->mapFrom(candidate, windowPos); #ifdef ALIEN_DEBUG qDebug() << " ** receiver adjusted to:" << receiver << "pos:" << pos; #endif diff --git a/src/widgets/kernel/qapplication_p.h b/src/widgets/kernel/qapplication_p.h index c353a2967c..7b663608f7 100644 --- a/src/widgets/kernel/qapplication_p.h +++ b/src/widgets/kernel/qapplication_p.h @@ -443,7 +443,7 @@ public: static QString styleSheet; #endif static QPointer<QWidget> leaveAfterRelease; - static QWidget *pickMouseReceiver(QWidget *candidate, const QPoint &globalPos, QPoint *pos, + static QWidget *pickMouseReceiver(QWidget *candidate, const QPoint &windowPos, QPoint *pos, QEvent::Type type, Qt::MouseButtons buttons, QWidget *buttonDown, QWidget *alienWidget); static bool sendMouseEvent(QWidget *receiver, QMouseEvent *event, QWidget *alienWidget, diff --git a/src/widgets/kernel/qwidgetwindow_qpa.cpp b/src/widgets/kernel/qwidgetwindow_qpa.cpp index 7d8b57f233..5b7ded9ece 100644 --- a/src/widgets/kernel/qwidgetwindow_qpa.cpp +++ b/src/widgets/kernel/qwidgetwindow_qpa.cpp @@ -267,7 +267,7 @@ void QWidgetWindow::handleMouseEvent(QMouseEvent *event) if (event->type() == QEvent::MouseButtonPress && !qt_button_down) qt_button_down = widget; - QWidget *receiver = QApplicationPrivate::pickMouseReceiver(m_widget, event->globalPos(), &mapped, event->type(), event->buttons(), + QWidget *receiver = QApplicationPrivate::pickMouseReceiver(m_widget, event->windowPos().toPoint(), &mapped, event->type(), event->buttons(), qt_button_down, widget); if (!receiver) { |