Activate window before replay mouse press event

Activate the window of the widget under mouse pointer before replay mouse
press event.

Change-Id: I9e699374accf108aa49b2a3c73d5e76631100dfd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
This commit is contained in:
jian liang 2013-02-13 11:50:37 +08:00 committed by The Qt Project
parent a4c9ddb68f
commit af27b37b08

View File

@ -356,6 +356,12 @@ void QWidgetWindow::handleMouseEvent(QMouseEvent *event)
// the popup disappeared, replay the mouse press event
QWidget *w = QApplication::widgetAt(event->globalPos());
if (w && !QApplicationPrivate::isBlockedByModal(w)) {
// activate window of the widget under mouse pointer
if (!w->isActiveWindow()) {
w->activateWindow();
w->raise();
}
QWindow *win = w->windowHandle();
if (!win)
win = w->nativeParentWidget()->windowHandle();