summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qwidget_x11.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/kernel/qwidget_x11.cpp')
-rw-r--r--src/gui/kernel/qwidget_x11.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gui/kernel/qwidget_x11.cpp b/src/gui/kernel/qwidget_x11.cpp
index c1363d2..37ac6bf 100644
--- a/src/gui/kernel/qwidget_x11.cpp
+++ b/src/gui/kernel/qwidget_x11.cpp
@@ -1642,7 +1642,8 @@ void QWidget::activateWindow()
X11->userTime = X11->time;
qt_net_update_user_time(tlw, X11->userTime);
- if (X11->isSupportedByWM(ATOM(_NET_ACTIVE_WINDOW))) {
+ if (X11->isSupportedByWM(ATOM(_NET_ACTIVE_WINDOW))
+ && !(tlw->windowFlags() & Qt::X11BypassWindowManagerHint)) {
XEvent e;
e.xclient.type = ClientMessage;
e.xclient.message_type = ATOM(_NET_ACTIVE_WINDOW);
@@ -1660,7 +1661,8 @@ void QWidget::activateWindow()
XSendEvent(X11->display, RootWindow(X11->display, tlw->x11Info().screen()),
false, SubstructureNotifyMask | SubstructureRedirectMask, &e);
} else {
- XSetInputFocus(X11->display, tlw->internalWinId(), XRevertToParent, X11->time);
+ if (!qt_widget_private(tlw)->topData()->waitingForMapNotify)
+ XSetInputFocus(X11->display, tlw->internalWinId(), XRevertToParent, X11->time);
}
}
}