summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJan-Arve Sæther <jan-arve.saether@nokia.com>2009-04-17 16:59:17 (GMT)
committerJan-Arve Sæther <jan-arve.saether@nokia.com>2009-04-17 16:59:17 (GMT)
commit2c762f3b8b284a7c6dc0c499b7052013bad5b707 (patch)
tree82389f7115010af87389f0c19a5cf2c40f83efd8 /src
parent50e29dc095eaab396848f6640a59bba77ae28943 (diff)
downloadQt-2c762f3b8b284a7c6dc0c499b7052013bad5b707.zip
Qt-2c762f3b8b284a7c6dc0c499b7052013bad5b707.tar.gz
Qt-2c762f3b8b284a7c6dc0c499b7052013bad5b707.tar.bz2
Make sure tooltips are shown properly in popups.
The problem was that if you had child widgets of a popup, only child widgets that had hasMouseTracking() == true received the ToolTip event. This was because in order for a widget to receive a ToolTip, it relied on the MouseMove event. It still relies on the MouseMove event, but the problem with the previous code was that it did not even *try* to deliver the MouseMove event to the widget that did not have mousetracking. And it was the code that "tried" to deliver (QApplication::notify()) the event that also was responsible of finding which widget it should get the tooltip from. Unfortunately the previous code did not even enter QApplication::notify() because of that early cut-off. The result was that the event was propagated up to the parent widget (which was the popup) and consumed by the popup. (Nothing would happen unless the popup itself had a tooltip). This is also how translateMouseEvent() is implemented in qapplication_x11.cpp.
Diffstat (limited to 'src')
-rw-r--r--src/gui/kernel/qapplication_win.cpp5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/gui/kernel/qapplication_win.cpp b/src/gui/kernel/qapplication_win.cpp
index fae0335..2f2fc2c 100644
--- a/src/gui/kernel/qapplication_win.cpp
+++ b/src/gui/kernel/qapplication_win.cpp
@@ -3164,10 +3164,7 @@ bool QETWidget::translateMouseEvent(const MSG &msg)
if (popupButtonFocus) {
target = popupButtonFocus;
} else if (popupChild) {
- // forward mouse events to the popup child. mouse move events
- // are only forwarded to popup children that enable mouse tracking.
- if (type != QEvent::MouseMove || popupChild->hasMouseTracking())
- target = popupChild;
+ target = popupChild;
}
pos = target->mapFromGlobal(globalPos);