diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2019-12-12 01:44:23 +0000 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2019-12-18 15:10:24 +0100 |
commit | 280f54a942ce9fe0177100312fc45a398955bd8a (patch) | |
tree | 544c22f9a250164b24afa521a8c4731bcb908011 /include/vcl/floatwin.hxx | |
parent | 189d498f5c0c633f8cd87b3f1b6d57020371a952 (diff) |
lok: vcl: fix multiple floatwin removal case more robustly.
Instead of this over-clever approach of recursively removing items
which can easily fail, build a list, then iterate it in-line while
disabling recursion.
also includes:
lok: vcl: fix multiple floatwin removal case.
We need to progress in our while loop to remove children, even if
they are currently not in popup-mode; fixes infinite loop with two
popups present concurrently.
Change-Id: Ic7b7f8e13a466d254abe53b77bc166c6a89fa8c3
Reviewed-on: https://gerrit.libreoffice.org/85368
Tested-by: Jenkins
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Diffstat (limited to 'include/vcl/floatwin.hxx')
-rw-r--r-- | include/vcl/floatwin.hxx | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/vcl/floatwin.hxx b/include/vcl/floatwin.hxx index e924807ca44d..91a6ae3c8c0e 100644 --- a/include/vcl/floatwin.hxx +++ b/include/vcl/floatwin.hxx @@ -56,10 +56,11 @@ enum class FloatWinPopupEndFlags TearOff = 0x02, DontCallHdl = 0x04, CloseAll = 0x08, + NoCloseChildren = 0x10, }; namespace o3tl { - template<> struct typed_flags<FloatWinPopupEndFlags> : is_typed_flags<FloatWinPopupEndFlags, 0x0f> {}; + template<> struct typed_flags<FloatWinPopupEndFlags> : is_typed_flags<FloatWinPopupEndFlags, 0x1f> {}; } enum class FloatWinTitleType |