summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2021-09-26 15:50:05 +0100
committerCaolán McNamara <caolanm@redhat.com>2021-09-26 18:11:10 +0200
commitc92a29fd6ef341a1657f90759d20e4f052b45843 (patch)
treec7a0399ef07e6e9e5a3ea33f0c0bcb758de87b4e /svx
parent619dcf67c1f770685c6b40477f15657f70c05865 (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.cxx2
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
}