summaryrefslogtreecommitdiffstats
path: root/src/client/qwaylandwindow.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-08-17 10:48:22 +0200
committerLiang Qi <liang.qi@qt.io>2017-08-17 10:48:28 +0200
commite99dae74353e5652794d7bcbcd3d79b1478debbc (patch)
tree6d0ab88f8aa6f464e66429899418f1adf63b0651 /src/client/qwaylandwindow.cpp
parente3feecfd96d8fcd65556d325c806153a3495d5b3 (diff)
parent7f70da6a644bc5b690066f0ab4814e1358f57e81 (diff)
Merge remote-tracking branch 'origin/5.9' into dev
Conflicts: .qmake.conf Change-Id: Ia0f9d099e92a40cae7ec506781f70c56415bcf89
Diffstat (limited to 'src/client/qwaylandwindow.cpp')
-rw-r--r--src/client/qwaylandwindow.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
index 5bfa158ae..9cc673c0c 100644
--- a/src/client/qwaylandwindow.cpp
+++ b/src/client/qwaylandwindow.cpp
@@ -256,8 +256,10 @@ void QWaylandWindow::reset(bool sendDestroyEvent)
if (isInitialized())
destroy();
- if (mFrameCallback)
+ if (mFrameCallback) {
wl_callback_destroy(mFrameCallback);
+ mFrameCallback = nullptr;
+ }
}
QWaylandWindow *QWaylandWindow::fromWlSurface(::wl_surface *surface)
@@ -725,6 +727,8 @@ QWaylandWindow *QWaylandWindow::transientParent() const
// events.
if (auto transientParent = window()->transientParent())
return static_cast<QWaylandWindow *>(topLevelWindow(transientParent)->handle());
+ else if (QGuiApplication::focusWindow() && (window()->type() == Qt::ToolTip || window()->type() == Qt::Popup))
+ return static_cast<QWaylandWindow *>(topLevelWindow(QGuiApplication::focusWindow())->handle());
return nullptr;
}