diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-04-10 15:14:37 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2017-04-12 18:03:35 +0200 |
commit | 244d2abb6c1bcd89cedf773d8721f62451708c3f (patch) | |
tree | 321a0396622a41c369cc4e4efa854cf9a925eef6 | |
parent | 4e175b7aee7c00c6d0d8449a19b26ebf25446b9d (diff) |
Resolves: tdf#106078 get bounding box of commented region for gtk3 tooltips
Change-Id: I4fdc1f471c6c191be9c7c611926bd2b5b2b41308
(cherry picked from commit eb433f83a5f66dd1ca8ed0c62ef9cc0761b7f0ac)
Reviewed-on: https://gerrit.libreoffice.org/36383
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
-rw-r--r-- | sw/source/core/crsr/crstrvl.cxx | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/sw/source/core/crsr/crstrvl.cxx b/sw/source/core/crsr/crstrvl.cxx index c024e0eb7d69..9bdc9b932768 100644 --- a/sw/source/core/crsr/crstrvl.cxx +++ b/sw/source/core/crsr/crstrvl.cxx @@ -1440,12 +1440,18 @@ bool SwCursorShell::GetContentAtPos( const Point& rPt, if( pFieldRect && nullptr != ( pFrame = pTextNd->getLayoutFrame( GetLayout(), &aPt ) ) ) { + //get bounding box of range SwRect aStart; SwPosition aStartPos(*pTextNd, nSt); pFrame->GetCharRect(aStart, aStartPos, &aTmpState); SwRect aEnd; SwPosition aEndPos(*pTextNd, nEnd); pFrame->GetCharRect(aEnd, aEndPos, &aTmpState); + if (aStart.Top() != aEnd.Top() || aStart.Bottom() != aEnd.Bottom()) + { + aStart.Left(pFrame->Frame().Left()); + aEnd.Right(pFrame->Frame().Right()); + } *pFieldRect = aStart.Union(aEnd); } } @@ -1463,7 +1469,19 @@ bool SwCursorShell::GetContentAtPos( const Point& rPt, bRet = true; if( pFieldRect && nullptr != ( pFrame = pTextNd->getLayoutFrame( GetLayout(), &aPt ) ) ) - pFrame->GetCharRect( *pFieldRect, aPos, &aTmpState ); + { + //get bounding box of range + SwRect aStart; + pFrame->GetCharRect(aStart, *pRedl->Start(), &aTmpState); + SwRect aEnd; + pFrame->GetCharRect(aEnd, *pRedl->End(), &aTmpState); + if (aStart.Top() != aEnd.Top() || aStart.Bottom() != aEnd.Bottom()) + { + aStart.Left(pFrame->Frame().Left()); + aEnd.Right(pFrame->Frame().Right()); + } + *pFieldRect = aStart.Union(aEnd); + } } } } |