vcl/source/window/winproc.cxx | 5 +++++ 1 file changed, 5 insertions(+)
New commits: commit f21d2b48bd68424a96aa6cd5572e368208378291 Author: Miklos Vajna <vmik...@collabora.com> AuthorDate: Mon Nov 26 16:34:10 2018 +0100 Commit: Miklos Vajna <vmik...@collabora.com> CommitDate: Tue Nov 27 00:57:39 2018 +0100 tdf#121723 vcl: leave popup mode on focus loss of toplevel windows This way it can't happen that we open a menu or context menu, the user switches away (loosing focus) and a leftover floating window is still there. Handle this at the same place where we stop blinking the cursor on focus loss. Change-Id: I4321e8e3fa1d3f8976c0a1fa29c6a182972023bf Reviewed-on: https://gerrit.libreoffice.org/64053 Reviewed-by: Miklos Vajna <vmik...@collabora.com> Tested-by: Jenkins diff --git a/vcl/source/window/winproc.cxx b/vcl/source/window/winproc.cxx index ea29c4a265d7..add5c3b45957 100644 --- a/vcl/source/window/winproc.cxx +++ b/vcl/source/window/winproc.cxx @@ -1842,6 +1842,11 @@ static void ImplHandleLoseFocus( vcl::Window* pWindow ) vcl::Window* pFocusWin = pWindow->ImplGetWindowImpl()->mpFrameData->mpFocusWin; if ( pFocusWin && pFocusWin->ImplGetWindowImpl()->mpCursor ) pFocusWin->ImplGetWindowImpl()->mpCursor->ImplHide(); + + // Make sure that no menu is visible when a toplevel window loses focus. + VclPtr<FloatingWindow> pFirstFloat = pSVData->maWinData.mpFirstFloat; + if (pFirstFloat && !pWindow->GetParent()) + pFirstFloat->EndPopupMode(FloatWinPopupEndFlags::Cancel | FloatWinPopupEndFlags::CloseAll); } struct DelayedCloseEvent _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits