diff options
author | Liang Qi <liang.qi@qt.io> | 2017-08-17 10:48:22 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2017-08-17 10:48:28 +0200 |
commit | e99dae74353e5652794d7bcbcd3d79b1478debbc (patch) | |
tree | 6d0ab88f8aa6f464e66429899418f1adf63b0651 /src/client/qwaylandwindow.cpp | |
parent | e3feecfd96d8fcd65556d325c806153a3495d5b3 (diff) | |
parent | 7f70da6a644bc5b690066f0ab4814e1358f57e81 (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.cpp | 6 |
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; } |