diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2013-07-17 13:26:55 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-07-22 08:10:32 +0200 |
commit | a0996b8b606d9d54fe4ba3a02615a26b196f0547 (patch) | |
tree | b6910b8d001562579fbf30e4f77b45a11fbd4c36 | |
parent | b02eb3b436b49054fe972023c220b7760a0f48f5 (diff) |
Prevent activation of windows with Qt::WindowDoesNotAcceptFocus.
Task-number: QTBUG-32385
Change-Id: I307e2a3e5157b351663940d5d02fc16b3127b5dd
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
-rw-r--r-- | src/gui/kernel/qwindow.cpp | 4 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/qxcbwindow.cpp | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp index 392407d86d..9ef19715ed 100644 --- a/src/gui/kernel/qwindow.cpp +++ b/src/gui/kernel/qwindow.cpp @@ -871,6 +871,10 @@ QRegion QWindow::mask() const void QWindow::requestActivate() { Q_D(QWindow); + if (flags() & Qt::WindowDoesNotAcceptFocus) { + qWarning() << "requestActivate() called for " << this << " which has Qt::WindowDoesNotAcceptFocus set."; + return; + } if (d->platformWindow) d->platformWindow->requestActivateWindow(); } diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp index 3b818d78d8..0325338a13 100644 --- a/src/plugins/platforms/xcb/qxcbwindow.cpp +++ b/src/plugins/platforms/xcb/qxcbwindow.cpp @@ -1643,7 +1643,8 @@ void QXcbWindow::handleButtonPressEvent(const xcb_button_press_event_t *event) { if (window() != QGuiApplication::focusWindow()) { QWindow *w = static_cast<QWindowPrivate *>(QObjectPrivate::get(window()))->eventReceiver(); - w->requestActivate(); + if (!(w->flags() & Qt::WindowDoesNotAcceptFocus)) + w->requestActivate(); } updateNetWmUserTime(event->time); |