diff options
author | Caolán McNamara <caolanm@redhat.com> | 2021-09-26 15:50:05 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2021-09-26 18:11:10 +0200 |
commit | c92a29fd6ef341a1657f90759d20e4f052b45843 (patch) | |
tree | c7a0399ef07e6e9e5a3ea33f0c0bcb758de87b4e /svx | |
parent | 619dcf67c1f770685c6b40477f15657f70c05865 (diff) |
tdf#144729 create FrameSelectorImpl before setting size request
gtk wan't to update some a11y info when we set the new size request but
we haven't created the requirements that a11y needs yet.
Just move that creation to before the set_size_request
#0 std::__cxx1998::vector<svx::FrameBorder*, std::allocator<svx::FrameBorder*> >::size() const (this=0x720) at /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/stl_vector.h:919
#1 0x00007fbd40f3fcc2 in svx::FrameSelector::GetEnabledBorderCount() const (this=0x91bafd0) at svx/source/dialog/frmsel.cxx:858
#2 0x00007fbd40da76b8 in svx::a11y::AccFrameSelector::getAccessibleChildCount() (this=0x921b190) at svx/source/accessibility/AccessibleFrameSelector.cxx:63
#3 0x00007fbd3184930e in AtkListener::updateChildList(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleContext> const&) (this=0x91e6200, pContext=
uno::Reference to (svx::a11y::AccFrameSelector *) 0x921b1f0) at vcl/unx/gtk3/a11y/atklistener.cxx:149
#4 0x00007fbd31849096 in AtkListener::AtkListener(AtkObjectWrapper*) (this=0x91e6200, pWrapper=0x91e60a0) at vcl/unx/gtk3/a11y/atklistener.cxx:56
#5 0x00007fbd3186e9ab in atk_object_wrapper_new(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessible> const&, AtkObject*, AtkObject*)
(rxAccessible=uno::Reference to (svx::a11y::AccFrameSelector *) 0x921b230, parent=0x9299a40, orig=0x90bedd0) at vcl/unx/gtk3/a11y/atkwrapper.cxx:875
#6 0x00007fbd318b3ded in (anonymous namespace)::GtkInstanceDrawingArea::GetAtkObject(_AtkObject*) (this=0x91e5060, pDefaultAccessible=0x90bedd0) at vcl/unx/gtk3/gtkinst.cxx:16918
#7 0x00007fbd318b3d21 in (anonymous namespace)::drawing_area_get_accessibity(_GtkWidget*) (pWidget=0x91206f0) at vcl/unx/gtk3/gtkinst.cxx:21555
#8 0x00007fbd30fb0bc2 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#9 0x00007fbd3764b65f in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#10 0x00007fbd3765d99b in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#11 0x00007fbd37663c6f in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#12 0x00007fbd376641df in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007fbd3764fcd4 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#14 0x00007fbd3764f50e in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#15 0x00007fbd37651d4b in g_object_thaw_notify () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#16 0x00007fbd318b86d5 in (anonymous namespace)::GtkInstanceWidget::set_size_request(int, int) (this=0x91e5060, nWidth=137, nHeight=146) at vcl/unx/gtk3/gtkinst.cxx:3475
#17 0x00007fbd40f3fa23 in svx::FrameSelector::SetDrawingArea(weld::DrawingArea*) (this=0x91bafd0, pDrawingArea=0x91e5328) at svx/source/dialog/frmsel.cxx:833
#18 0x00007fbd3d16d46a in weld::CustomWeld::CustomWeld(weld::Builder&, rtl::OString const&, weld::CustomWidgetController&) (this=0x90e9fd0, rBuilder=..., rDrawingId="framesel", rWidgetController=...)
at vcl/source/app/customweld.cxx:28
#19 0x00007fbcf08f0c4e in SvxBorderTabPage::SvxBorderTabPage(weld::Container*, weld::DialogController*, SfxItemSet const&) (this=0x91baeb0, pPage=0x90fc550, pController=0x7a4d4b0, rCoreAttrs=
SfxItemSet of pool 0x5aea070 with parent 0x5b25658 and Which ranges: [(1, 45), (63, 132), (153, 153), (1014, 1033), (10023, 10023), (10050, 10055), (10057, 10058), (10065, 10065), (10179, 10183), (10451, 10451), (10457, 10457), (10467, 10467), (10591, 10591), (10855, 10855), (11142, 11142), (12065, 12065), (21123, 21123), (21307, 21307), (22401, 22401)] = {...}) at cui/source/tabpages/border.cxx:291
#20 0x00007fbcf08fc77f in std::make_unique<SvxBorderTabPage, weld::Container*&, weld::DialogController*&, SfxItemSet const&>(weld::Container*&, weld::DialogController*&, SfxItemSet const&)
(__args=@0x7ffdac0324e0: 0x90fc550, __args=@0x7ffdac0324d8: 0x7a4d4b0, __args=SfxItemSet of pool 0x5aea070 with parent 0x5b25658 and Which ranges: [(1, 45), (63, 132), (153, 153), (1014, 1033), (10023, 10023), (10050, 10055), (10057, 10058), (10065, 10065), (10179, 10183), (10451, 10451), (10457, 10457), (10467, 10467), (10591, 10591), (10855, 10855), (11142, 11142), (12065, 12065), (21123, 21123), (21307, 21307), (22401, 22401)] = {...}) at /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/unique_ptr.h:962
#21 0x00007fbcf08f514f in SvxBorderTabPage::Create(weld::Container*, weld::DialogController*, SfxItemSet const*) (pPage=0x90fc550, pController=0x7a4d4b0, rAttrSet=0x7dca0e0)
at cui/source/tabpages/border.cxx:592
Change-Id: I7325970bf0137602007e453e8b7fc43f1e6f36c5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122631
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'svx')
-rw-r--r-- | svx/source/dialog/frmsel.cxx | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/svx/source/dialog/frmsel.cxx b/svx/source/dialog/frmsel.cxx index 435cd489d482..7871ae95249a 100644 --- a/svx/source/dialog/frmsel.cxx +++ b/svx/source/dialog/frmsel.cxx @@ -829,9 +829,9 @@ FrameSelector::FrameSelector() void FrameSelector::SetDrawingArea(weld::DrawingArea* pDrawingArea) { CustomWidgetController::SetDrawingArea(pDrawingArea); + mxImpl.reset( new FrameSelectorImpl( *this ) ); Size aPrefSize = pDrawingArea->get_ref_device().LogicToPixel(Size(61, 65), MapMode(MapUnit::MapAppFont)); pDrawingArea->set_size_request(aPrefSize.Width(), aPrefSize.Height()); - mxImpl.reset( new FrameSelectorImpl( *this ) ); EnableRTL( false ); // #107808# don't mirror the mouse handling } |