svx/source/tbxctrls/tbcontrl.cxx |   17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

New commits:
commit 93f26a66a4f6a13beb053edbdba9f906370bf968
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Fri Dec 21 13:16:14 2018 +0000
Commit:     Michael Stahl <michael.st...@cib.de>
CommitDate: Fri Jan 11 18:38:02 2019 +0100

    Resolves: tdf#120885 Crash on choosing 'more styles'
    
    switching to the sidebar destroys the control currently active,
    just post the event to happen on the next event loop
    
    Change-Id: I3e9b629821fa43d8f29e419e72f66ed46d72fdbb
    Reviewed-on: https://gerrit.libreoffice.org/65543
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@cib.de>

diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index ee7028e439a6..be87dcab605e 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -177,6 +177,7 @@ private:
     static bool     AdjustFontForItemHeight(OutputDevice* pDevice, 
tools::Rectangle const & rTextRect, long nHeight);
     void            SetOptimalSize();
     DECL_LINK( MenuSelectHdl, Menu *, bool );
+    DECL_STATIC_LINK(SvxStyleBox_Impl, ShowMoreHdl, void*, void);
 };
 
 class SvxFontNameBox_Impl : public FontNameBox
@@ -429,6 +430,16 @@ IMPL_LINK( SvxStyleBox_Impl, MenuSelectHdl, Menu*, pMenu, 
bool)
     return false;
 }
 
+IMPL_STATIC_LINK_NOARG(SvxStyleBox_Impl, ShowMoreHdl, void*, void)
+{
+    SfxViewFrame* pViewFrm = SfxViewFrame::Current();
+    DBG_ASSERT( pViewFrm, "SvxStyleBox_Impl::Select(): no viewframe" );
+    if (!pViewFrm)
+        return;
+    pViewFrm->ShowChildWindow(SID_SIDEBAR);
+    ::sfx2::sidebar::Sidebar::ShowPanel("StyleListPanel", 
pViewFrm->GetFrame().GetFrameInterface());
+}
+
 void SvxStyleBox_Impl::Select()
 {
     // Tell base class about selection so that AT get informed about it.
@@ -452,11 +463,7 @@ void SvxStyleBox_Impl::Select()
         }
         else if( aSearchEntry == aMoreKey && GetSelectedEntryPos() == ( 
GetEntryCount() - 1 ) )
         {
-            SfxViewFrame* pViewFrm = SfxViewFrame::Current();
-            DBG_ASSERT( pViewFrm, "SvxStyleBox_Impl::Select(): no viewframe" );
-            pViewFrm->ShowChildWindow( SID_SIDEBAR );
-            ::sfx2::sidebar::Sidebar::ShowPanel("StyleListPanel",
-                                                
pViewFrm->GetFrame().GetFrameInterface());
+            Application::PostUserEvent(LINK(nullptr, SvxStyleBox_Impl, 
ShowMoreHdl));
             //tdf#113214 change text back to previous entry
             SetText(GetSavedValue());
             bDoIt = false;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to