lok: vcl: fix multiple floatwin removal case more robustly.
commit280f54a942ce9fe0177100312fc45a398955bd8a
authorMichael Meeks <michael.meeks@collabora.com>
Thu, 12 Dec 2019 01:44:23 +0000 (12 01:44 +0000)
committerMichael Meeks <michael.meeks@collabora.com>
Wed, 18 Dec 2019 14:10:24 +0000 (18 15:10 +0100)
tree544c22f9a250164b24afa521a8c4731bcb908011
parent189d498f5c0c633f8cd87b3f1b6d57020371a952
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>
include/vcl/floatwin.hxx
vcl/source/window/floatwin.cxx