include/vcl/vclevent.hxx             |    1 -
 sw/qa/uitest/writer_tests/xwindow.py |    2 --
 sw/source/core/layout/calcmove.cxx   |    4 ++++
 vcl/source/window/event.cxx          |    3 +--
 vcl/source/window/window.cxx         |    3 ---
 5 files changed, 5 insertions(+), 8 deletions(-)

New commits:
commit 4ecc5059be10999ef940885bc5d331cbda881530
Author:     Katarina Behrens <katarina.behr...@cib.de>
AuthorDate: Thu Jun 6 18:00:02 2019 +0200
Commit:     Thorsten Behrens <thorsten.behr...@cib.de>
CommitDate: Thu Jun 6 23:20:54 2019 +0200

    Revert temp fix of Basic editor crash and fix properly
    
    to do that, backport part of commit 0adbc69c81cc287386b31b25b2dc89780933e2b1
    Turns out that this particular VclEventId (WindowChildCreated) is unused
    i.e. listeners for such event type don't exist and an attempt to find them 
via
    GetComponentInterface was causing the crash
    
    Change-Id: I57c59bde021cf802f01eaa6fd14e2ce3f6c73a1c
    Reviewed-on: https://gerrit.libreoffice.org/73623
    Reviewed-by: Thorsten Behrens <thorsten.behr...@cib.de>
    Tested-by: Thorsten Behrens <thorsten.behr...@cib.de>

diff --git a/include/vcl/vclevent.hxx b/include/vcl/vclevent.hxx
index 8f15df2228c4..d8c8cc285173 100644
--- a/include/vcl/vclevent.hxx
+++ b/include/vcl/vclevent.hxx
@@ -143,7 +143,6 @@ enum class VclEventId
     ToolboxItemWindowChanged,
     ToolboxSelect,
     WindowActivate,
-    WindowChildCreated,     // pData = vcl::Window*
     WindowChildDestroyed,   // pData = vcl::Window*
     WindowClose,
     WindowCommand,          // pData = CommandEvent*
diff --git a/sw/qa/uitest/writer_tests/xwindow.py 
b/sw/qa/uitest/writer_tests/xwindow.py
index b263ebff33d3..a1be89bf2981 100644
--- a/sw/qa/uitest/writer_tests/xwindow.py
+++ b/sw/qa/uitest/writer_tests/xwindow.py
@@ -78,8 +78,6 @@ class XKeyListenerExtended(unohelper.Base, XKeyListener):
 # Test that registered mouse/key listeners for top window receive mouse/key 
events
 class XWindow(UITestCase):
     def test_listeners(self):
-        # Disabled until basic editor crash is fixed
-        return
         global mouseListenerCount
         global keyListenerCount
 
diff --git a/vcl/source/window/event.cxx b/vcl/source/window/event.cxx
index 1e4d47b8f647..6f092ce3729a 100644
--- a/vcl/source/window/event.cxx
+++ b/vcl/source/window/event.cxx
@@ -216,9 +216,8 @@ void Window::CallEventListeners( VclEventId nEvent, void* 
pData )
 
     // If maEventListeners is empty, the XVCLWindow has not yet been 
initialized.
     // Calling GetComponentInterface will do that.
-    /* FIXME: This leads to a crash in Basic Editor
     if (mpWindowImpl->maEventListeners.empty() && pData)
-        xWindow->GetComponentInterface();*/
+        xWindow->GetComponentInterface();
 
     if (!mpWindowImpl->maEventListeners.empty())
     {
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 12182b2c3f1f..3d7a5323227f 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -1171,9 +1171,6 @@ void Window::ImplInit( vcl::Window* pParent, WinBits 
nStyle, SystemParentData* p
     // calculate app font res (except for the Intro Window or the default 
window)
     if ( mpWindowImpl->mbFrame && !pSVData->maGDIData.mnAppFontX && ! (nStyle 
& (WB_INTROWIN|WB_DEFAULTWIN)) )
         ImplInitAppFontData( this );
-
-    if ( GetAccessibleParentWindow()  && GetParent() != 
Application::GetDefDialogParent() )
-        GetAccessibleParentWindow()->CallEventListeners( 
VclEventId::WindowChildCreated, this );
 }
 
 void Window::ImplInitAppFontData( vcl::Window const * pWindow )
commit 80c23583140248c9e35555bfd0ff645163b6191c
Author:     Michael Stahl <michael.st...@cib.de>
AuthorDate: Sun Jun 2 13:58:01 2019 +0200
Commit:     Thorsten Behrens <thorsten.behr...@cib.de>
CommitDate: Thu Jun 6 23:20:39 2019 +0200

    tdf#119109 sw: tweak assertion in PrepareMake()
    
    Empty section frames cause trouble for the assert added in
    e14056e6e88d9b8d988b7b88b2776a8fc952031b:
    
    * existing ones may be skipped by MoveBwd(), so a SwTextFrame moves to
      the previous page but the SwSectionFrame that was its mpPrev remains
      on this page; e.g. ooo110854-1.rtf
    
    * a SwSectionFrame moves backward, then some SwTextFrame in it splits
      and the follow tries to move forward, resulting in *new*
      SwSectionFrames on this page that are empty (because the follow is
      eventually joined again); e.g. abi3213-1.rtf
    
    So if there's a section frame, assume it's SNAFU and don't assert.
    
    Change-Id: Ibdca2aa39fae123583e5edf5173f80e8b70ef335
    Reviewed-on: https://gerrit.libreoffice.org/73333
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@cib.de>
    (cherry picked from commit 1416c5426a757d32f223cab46bf9038bd7f21d48)
    Reviewed-on: https://gerrit.libreoffice.org/73617
    Reviewed-by: Thorsten Behrens <thorsten.behr...@cib.de>
    Tested-by: Thorsten Behrens <thorsten.behr...@cib.de>

diff --git a/sw/source/core/layout/calcmove.cxx 
b/sw/source/core/layout/calcmove.cxx
index 8a5271dbad3e..3e31a0e66b81 100644
--- a/sw/source/core/layout/calcmove.cxx
+++ b/sw/source/core/layout/calcmove.cxx
@@ -318,6 +318,8 @@ void SwFrame::PrepareMake(vcl::RenderContext* 
pRenderContext)
                     if (isLast && pFrame->GetUpper() != GetUpper())
                     {
                         assert(GetUpper()->Lower() == this
+                            // empty section frames are created all the time...
+                            || GetUpper()->Lower()->IsSctFrame()
                             // tab frame/section frame may split multiple times
                             || (   SwFlowFrame::CastFlowFrame(pFrame)
                                 && 
SwFlowFrame::CastFlowFrame(GetUpper()->Lower())
@@ -440,6 +442,8 @@ void SwFrame::PrepareCursor()
                 if (isLast && pFrame->GetUpper() != GetUpper())
                 {
                     assert(GetUpper()->Lower() == this
+                        // empty section frames are created all the time...
+                        || GetUpper()->Lower()->IsSctFrame()
                         // tab frame/section frame may split multiple times
                         || (   SwFlowFrame::CastFlowFrame(pFrame)
                             && SwFlowFrame::CastFlowFrame(GetUpper()->Lower())
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to