Ignore mouse enter/leave on non-exposed windows
If you put two OpenGL widgets in two tabs, you will have several QNSViews on the Mac (because using OpenGL forces a lot of the widgets to be non-alien). The GL widget on the non-visible tab will not be exposed, but QCocoaWindow::childWindowAt is recursive and was returning the last window found which contained the mouse location; but the children are not reordered when switching tabs. It should ignore the invisible windows and report that the mouse entered the one which is visible. Task-number: QTBUG-30934 Change-Id: Iae28db56e15815671bf39e1b1f382c8c285532bd Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>bb10
parent
2cde2fca6f
commit
381c0050c1
|
|
@ -998,7 +998,8 @@ QWindow *QCocoaWindow::childWindowAt(QPoint windowPoint)
|
|||
if (QWindow *childWindow = qobject_cast<QWindow *>(child)) {
|
||||
if (childWindow->geometry().contains(windowPoint)) {
|
||||
QCocoaWindow* platformWindow = static_cast<QCocoaWindow*>(childWindow->handle());
|
||||
targetWindow = platformWindow->childWindowAt(windowPoint - childWindow->position());
|
||||
if (platformWindow->isExposed())
|
||||
targetWindow = platformWindow->childWindowAt(windowPoint - childWindow->position());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue