summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qapplication_qws.cpp
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@nokia.com>2009-09-14 12:23:06 (GMT)
committerPaul Olav Tvete <paul.tvete@nokia.com>2009-09-14 12:37:51 (GMT)
commitf1b134bc57584c64e9703683d2c3bc6c46264d19 (patch)
treec9c5161bbb65926d421630102202aadbd0b4fc69 /src/gui/kernel/qapplication_qws.cpp
parent2f331bb76f00e251513c197fd43bee9faa511395 (diff)
downloadQt-f1b134bc57584c64e9703683d2c3bc6c46264d19.zip
Qt-f1b134bc57584c64e9703683d2c3bc6c46264d19.tar.gz
Qt-f1b134bc57584c64e9703683d2c3bc6c46264d19.tar.bz2
Implement synthetic enter/leave events for QWS.
QWS uses alien widgets too, so we need the same logic as the other platforms. Reviewed-by: bnilsen
Diffstat (limited to 'src/gui/kernel/qapplication_qws.cpp')
-rw-r--r--src/gui/kernel/qapplication_qws.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/gui/kernel/qapplication_qws.cpp b/src/gui/kernel/qapplication_qws.cpp
index e6bfd28..e9284f7 100644
--- a/src/gui/kernel/qapplication_qws.cpp
+++ b/src/gui/kernel/qapplication_qws.cpp
@@ -430,6 +430,7 @@ static QWidget *popupOfPopupButtonFocus = 0;
static bool popupCloseDownMode = false;
static bool popupGrabOk;
static QPointer<QWidget> *mouseInWidget = 0;
+QPointer<QWidget> qt_last_mouse_receiver = 0;
static bool sm_blockUserInput = false; // session management
@@ -3523,10 +3524,12 @@ bool QETWidget::translateMouseEvent(const QWSMouseEvent *event, int prevstate)
if (widget != (*mouseInWidget)) {
QApplicationPrivate::dispatchEnterLeave(widget, *mouseInWidget);
(*mouseInWidget) = widget;
+ qt_last_mouse_receiver = widget;
}
QApplication::sendSpontaneousEvent(widget, &e);
if (leaveAfterRelease && !QWidget::mouseGrabber()) {
*mouseInWidget = QApplication::widgetAt(globalPos);
+ qt_last_mouse_receiver = *mouseInWidget;
QApplicationPrivate::dispatchEnterLeave(*mouseInWidget, leaveAfterRelease);
leaveAfterRelease = 0;
}