summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2013-07-17 13:26:55 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-07-22 08:10:32 +0200
commita0996b8b606d9d54fe4ba3a02615a26b196f0547 (patch)
treeb6910b8d001562579fbf30e4f77b45a11fbd4c36 /src
parentb02eb3b436b49054fe972023c220b7760a0f48f5 (diff)
Prevent activation of windows with Qt::WindowDoesNotAcceptFocus.
Task-number: QTBUG-32385 Change-Id: I307e2a3e5157b351663940d5d02fc16b3127b5dd Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/gui/kernel/qwindow.cpp4
-rw-r--r--src/plugins/platforms/xcb/qxcbwindow.cpp3
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);