https://bugs.documentfoundation.org/show_bug.cgi?id=90956

Michael Meeks <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #7 from Michael Meeks <[email protected]> ---
Hi there; an interesting trace.

Caolan - is this expected ? - I imagine that the Combobox is re-sizing itself
as it is destroyed (which is fun ;-) again, changes in which vtable gets used
means that we now hit ComboBox::Resize in dispose rather than Window::Resize -
which is interesting.

Anyhow - I've fixed ComboBox::Resize (just testing the patch), but I was
wondering if this might help too:

0   libvcllo.dylib                    0x0000000103d0a1d9 ComboBox::Resize() +
185
1   libvcllo.dylib                    0x0000000103c74c10
vcl::Window::ImplCallResize() + 96
2   libvcllo.dylib                    0x0000000103ce9b58
vcl::Window::ImplPosSizeWindow(long, long, long, long, unsigned short) + 1944
3   libvcllo.dylib                    0x0000000103c35c50
ImplBorderWindow::Resize() + 384
4   libvcllo.dylib                    0x0000000103c3287e
ImplSmallBorderWindowView::Init(OutputDevice*, long, long) + 1550
5   libvcllo.dylib                    0x0000000103c35c71
ImplBorderWindow::Resize() + 417
6   libvcllo.dylib                    0x0000000103ce33dc
vcl::Window::remove_from_all_size_groups() + 92
7   libvcllo.dylib                    0x0000000103ce649d vcl::Window::dispose()
+ 2429
8   libvcllo.dylib                    0x0000000103d169c5 Edit::dispose() + 949
9   libvcllo.dylib                    0x0000000103d08723 ComboBox::dispose() +
323
10  libvcllo.dylib                    0x0000000103c44712
VclBuilder::disposeBuilder() + 82
11  libvcllo.dylib                    0x0000000103cc3335 TabPage::dispose() +
21
12  libsfxlo.dylib                    0x0000000102b8ab77
SfxTabDialog::RemoveTabPage(unsigned short) + 663
13  libpdffilterlo.dylib              0x000000010d339ed5
ImpPDFTabDialog::dispose() + 21
14  libsvtlo.dylib                    0x00000001032f4ce3
svt::OGenericUnoDialog::destroyDialog() + 67
15  libpdffilterlo.dylib              0x000000010d348f41
PDFDialog::executedDialog(short) + 321

--- a/vcl/source/window/window2.cxx
+++ b/vcl/source/window/window2.cxx
@@ -1443,7 +1443,7 @@ void Window::InvalidateSizeCache()

 void Window::queue_resize(StateChangedType eReason)
 {
-    if (IsDisposed())
+    if (IsDisposed() || mpWindowImpl->mbInDispose)
         return;

     bool bSomeoneCares = queue_ungrouped_resize(this);
-- 

But I'm no expert in the resize logic. Clearly we want to queue (but not do) a
resize on the parent sizegroup or parent widget for later in the dispose case -
since we know that the parent will in turn be shortly afterwards destroyed by
the builder ;-) rather than doing that work.

Any thoughts ? =)

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs

Reply via email to