[Libreoffice-commits] core.git: sw/inc sw/qa sw/source

Ashod Nakashian ashod.nakashian at collabora.co.uk
Fri Nov 25 14:03:02 UTC 2016


 sw/inc/SidebarWin.hxx                          |    1 +
 sw/qa/extras/tiledrendering/tiledrendering.cxx |    8 ++++++++
 sw/source/uibase/docvw/PostItMgr.cxx           |    3 +++
 sw/source/uibase/docvw/SidebarWin.cxx          |   14 ++++++++++----
 4 files changed, 22 insertions(+), 4 deletions(-)

New commits:
commit 9d2f30911de2f9d87cebb1a360fabe0bf9c05294
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Tue Nov 22 17:04:19 2016 -0500

    Lok: invalidate Writer comments correctly
    
    Because notifications to all views were disabled
    (to avoid moving the cursors of everyone when someone
    adds a comment) invalidation was also broken. The
    issue was observed when a comment crossed tile
    boundaries, the other tile was not redrawn.
    
    This forces invalidation so tiles are rendered
    correctly, fixing this regression.
    
    One small issue remains in that invalidating a
    comment only invalidates the text-area and not the
    complete PostIt (specifically, the author and date
    are not invalidated). This means that they can
    still get trimmed when crossing tile boundaries.
    That will be addressed separately, as it was an
    existing issue before the regression this patch
    fixes.
    
    Change-Id: Ic8173e4873d58836883b897f735fc627bb0572ee
    Reviewed-on: https://gerrit.libreoffice.org/31091
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
    Tested-by: Ashod Nakashian <ashnakash at gmail.com>

diff --git a/sw/inc/SidebarWin.hxx b/sw/inc/SidebarWin.hxx
index 579a974..adfb47c 100644
--- a/sw/inc/SidebarWin.hxx
+++ b/sw/inc/SidebarWin.hxx
@@ -119,6 +119,7 @@ class SwSidebarWin : public vcl::Window
         void            ShowAnchorOnly(const Point &aPoint);
         void            ShowNote();
         void            HideNote();
+        void            InvalidateControl();
 
         void            ResetAttributes();
 
diff --git a/sw/qa/extras/tiledrendering/tiledrendering.cxx b/sw/qa/extras/tiledrendering/tiledrendering.cxx
index 7b441d6..19a4066 100644
--- a/sw/qa/extras/tiledrendering/tiledrendering.cxx
+++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx
@@ -1506,6 +1506,14 @@ void SwTiledRenderingTest::testCommentEndTextEdit()
     // of the comment.
     CPPUNIT_ASSERT(!aView1.m_bOwnCursorAtOrigin);
 
+    // Hit enter and expect invalidation.
+    Scheduler::ProcessEventsToIdle();
+    aView1.m_bTilesInvalidated = false;
+    pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_RETURN);
+    pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_RETURN);
+    Scheduler::ProcessEventsToIdle();
+    CPPUNIT_ASSERT(aView1.m_bTilesInvalidated);
+
     mxComponent->dispose();
     mxComponent.clear();
     comphelper::LibreOfficeKit::setActive(false);
diff --git a/sw/source/uibase/docvw/PostItMgr.cxx b/sw/source/uibase/docvw/PostItMgr.cxx
index f5316cc..4199cc0 100644
--- a/sw/source/uibase/docvw/PostItMgr.cxx
+++ b/sw/source/uibase/docvw/PostItMgr.cxx
@@ -742,7 +742,10 @@ void SwPostItMgr::LayoutPostIts()
                                 comphelper::LibreOfficeKit::setTiledPainting(!(*i)->HasChildPathFocus());
                             (*i)->ShowNote();
                             if (!bTiledPainting)
+                            {
                                 comphelper::LibreOfficeKit::setTiledPainting(bTiledPainting);
+                                (*i)->InvalidateControl();
+                            }
                         }
                         else
                         {
diff --git a/sw/source/uibase/docvw/SidebarWin.cxx b/sw/source/uibase/docvw/SidebarWin.cxx
index 9d8e7d6..a1a8224 100644
--- a/sw/source/uibase/docvw/SidebarWin.cxx
+++ b/sw/source/uibase/docvw/SidebarWin.cxx
@@ -1199,10 +1199,7 @@ void SwSidebarWin::ShowNote()
         mpAnchor->setVisible(true);
 
     // Invalidate.
-    mpSidebarTextControl->Push(PushFlags::MAPMODE);
-    lcl_translateTwips(EditWin(), *mpSidebarTextControl, nullptr);
-    mpSidebarTextControl->Invalidate();
-    mpSidebarTextControl->Pop();
+    InvalidateControl();
 }
 
 void SwSidebarWin::HideNote()
@@ -1220,6 +1217,15 @@ void SwSidebarWin::HideNote()
         mpShadow->setVisible(false);
 }
 
+void SwSidebarWin::InvalidateControl()
+{
+    // Invalidate.
+    mpSidebarTextControl->Push(PushFlags::MAPMODE);
+    lcl_translateTwips(EditWin(), *mpSidebarTextControl, nullptr);
+    mpSidebarTextControl->Invalidate();
+    mpSidebarTextControl->Pop();
+}
+
 void SwSidebarWin::ActivatePostIt()
 {
     mrMgr.AssureStdModeAtShell();


More information about the Libreoffice-commits mailing list