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

Miklos Vajna (via logerrit) logerrit at kemper.freedesktop.org
Mon Jul 15 18:34:47 UTC 2019


 sw/inc/postithelper.hxx                   |    7 +++++++
 sw/source/core/fields/postithelper.cxx    |    1 +
 sw/source/uibase/docvw/AnnotationWin2.cxx |    3 ++-
 3 files changed, 10 insertions(+), 1 deletion(-)

New commits:
commit 5914fae974875366026bb3b1245ef8bffeadd7d2
Author:     Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Mon Jul 15 15:33:39 2019 +0200
Commit:     Miklos Vajna <vmiklos at collabora.com>
CommitDate: Mon Jul 15 20:33:38 2019 +0200

    sw comments on frames: avoid overlay that covers only an at-char image
    
    The comment is already attached to the image via the anchor, and the
    overlay would change the image, which is confusing.
    
    Change-Id: I7a1c2a25182f628effa224fb82b5bcd71fdf35d4
    Reviewed-on: https://gerrit.libreoffice.org/75638
    Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
    Tested-by: Jenkins

diff --git a/sw/inc/postithelper.hxx b/sw/inc/postithelper.hxx
index 0a0523cc8e4d..d5cd3932a513 100644
--- a/sw/inc/postithelper.hxx
+++ b/sw/inc/postithelper.hxx
@@ -56,6 +56,12 @@ struct SwLayoutInfo
 
     std::size_t mRedlineAuthor;
 
+    /**
+     * If true, the overlay arrow points to the comment anchor, otherwise it points to the commented
+     * frame.
+     */
+    bool mPositionFromCommentAnchor;
+
     SwLayoutInfo()
         : mpAnchorFrame(nullptr)
         , mPosition()
@@ -66,6 +72,7 @@ struct SwLayoutInfo
         , mnPageNumber(1)
         , meSidebarPosition(sw::sidebarwindows::SidebarPosition::NONE)
         , mRedlineAuthor(0)
+        , mPositionFromCommentAnchor(true)
     {}
 };
 
diff --git a/sw/source/core/fields/postithelper.cxx b/sw/source/core/fields/postithelper.cxx
index f613ae4187e7..35a88931ca0e 100644
--- a/sw/source/core/fields/postithelper.cxx
+++ b/sw/source/core/fields/postithelper.cxx
@@ -142,6 +142,7 @@ SwPostItHelper::SwLayoutStatus SwPostItHelper::getLayoutInfos(
                     {
                         pTextFrame->GetCharRect(o_rInfo.mPosition, rAnchorPos, nullptr, false);
                     }
+                    o_rInfo.mPositionFromCommentAnchor = bPositionFromCommentAnchor;
                 }
                 if (pAnnotationMark != nullptr)
                 {
diff --git a/sw/source/uibase/docvw/AnnotationWin2.cxx b/sw/source/uibase/docvw/AnnotationWin2.cxx
index e02420809b93..232bfd80c124 100644
--- a/sw/source/uibase/docvw/AnnotationWin2.cxx
+++ b/sw/source/uibase/docvw/AnnotationWin2.cxx
@@ -799,7 +799,8 @@ void SwAnnotationWin::SetPosAndSize()
             if (bDisableMapMode)
                 EditWin().EnableMapMode(false);
 
-            pTmpCursorForAnnotationTextRange->FillRects();
+            if (mrSidebarItem.maLayoutInfo.mPositionFromCommentAnchor)
+                pTmpCursorForAnnotationTextRange->FillRects();
 
             if (bDisableMapMode)
                 EditWin().EnableMapMode();


More information about the Libreoffice-commits mailing list