summaryrefslogtreecommitdiffstats
path: root/src/client/qwaylandwlshellsurface.cpp
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@gmail.com>2016-08-26 19:14:40 +0200
committerPaul Olav Tvete <paul.tvete@gmail.com>2016-08-26 19:18:59 +0200
commitae9bfd29b42156fb8f04dfa60b9e48ce10ebacb8 (patch)
treec0412b8670fa3de5e608665b1028d3ff66a90192 /src/client/qwaylandwlshellsurface.cpp
parente23550aaa4336fcba125f81cd498f4a15e41f5b7 (diff)
parentf21246748ce20cd86346e192fe0c4c76a9b08a7c (diff)
Merge remote-tracking branch 'qt/5.6' into 5.7
Diffstat (limited to 'src/client/qwaylandwlshellsurface.cpp')
-rw-r--r--src/client/qwaylandwlshellsurface.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/client/qwaylandwlshellsurface.cpp b/src/client/qwaylandwlshellsurface.cpp
index 5aae260ce..3527015c7 100644
--- a/src/client/qwaylandwlshellsurface.cpp
+++ b/src/client/qwaylandwlshellsurface.cpp
@@ -157,6 +157,13 @@ void QWaylandWlShellSurface::setTopLevel()
set_toplevel();
}
+static inline bool testShowWithoutActivating(const QWindow *window)
+{
+ // QWidget-attribute Qt::WA_ShowWithoutActivating.
+ const QVariant showWithoutActivating = window->property("_q_showWithoutActivating");
+ return showWithoutActivating.isValid() && showWithoutActivating.toBool();
+}
+
void QWaylandWlShellSurface::updateTransientParent(QWindow *parent)
{
QWaylandWindow *parent_wayland_window = static_cast<QWaylandWindow *>(parent->handle());
@@ -174,7 +181,8 @@ void QWaylandWlShellSurface::updateTransientParent(QWindow *parent)
uint32_t flags = 0;
Qt::WindowFlags wf = m_window->window()->flags();
if (wf.testFlag(Qt::ToolTip)
- || wf.testFlag(Qt::WindowTransparentForInput))
+ || wf.testFlag(Qt::WindowTransparentForInput)
+ || testShowWithoutActivating(m_window->window()))
flags |= WL_SHELL_SURFACE_TRANSIENT_INACTIVE;
set_transient(parent_wayland_window->object(),