diff options
author | Henry Castro <hcastro@collabora.com> | 2021-01-15 10:14:50 -0400 |
---|---|---|
committer | Jan Holesovsky <kendy@collabora.com> | 2021-01-19 16:17:18 +0100 |
commit | 4618849a1cbba4e249ee13c3b6412337160a2816 (patch) | |
tree | 6f09475d32885136f6101a7c86aecd352ef5681f | |
parent | 871a723ca41d79798b386bf3ec2c6faab3635e41 (diff) |
lok: fix incorrect invalidate cursor position
When the comment is created and it's shown in the "Writer"
application, it creates an initial output area:
mpOutlinerView->SetOutputArea( PixelToLogic( tools::Rectangle(0,0,1,1) ) );
Unfortunately, it causes that send to client side cursor position
and scroll to the beginning of the document.
Change-Id: I13e21c71328b7f05781e7cdeed082d6cc2b9d679
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109371
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
-rw-r--r-- | editeng/source/editeng/editview.cxx | 5 | ||||
-rw-r--r-- | editeng/source/outliner/outlvw.cxx | 5 | ||||
-rw-r--r-- | include/editeng/editview.hxx | 1 | ||||
-rw-r--r-- | include/editeng/outliner.hxx | 1 | ||||
-rw-r--r-- | sw/source/uibase/docvw/AnnotationWin2.cxx | 12 |
5 files changed, 18 insertions, 6 deletions
diff --git a/editeng/source/editeng/editview.cxx b/editeng/source/editeng/editview.cxx index 23cd5010c1ab..b5eeb327aa12 100644 --- a/editeng/source/editeng/editview.cxx +++ b/editeng/source/editeng/editview.cxx @@ -693,6 +693,11 @@ void EditView::RegisterViewShell(OutlinerViewShell* pViewShell) pImpEditView->RegisterViewShell(pViewShell); } +const OutlinerViewShell* EditView::GetViewShell() +{ + return pImpEditView->GetViewShell(); +} + void EditView::RegisterOtherShell(OutlinerViewShell* pOtherShell) { pImpEditView->RegisterOtherShell(pOtherShell); diff --git a/editeng/source/outliner/outlvw.cxx b/editeng/source/outliner/outlvw.cxx index 26a8f6ca2f3d..9635e0ca007d 100644 --- a/editeng/source/outliner/outlvw.cxx +++ b/editeng/source/outliner/outlvw.cxx @@ -1386,6 +1386,11 @@ void OutlinerView::RegisterViewShell(OutlinerViewShell* pViewShell) pEditView->RegisterViewShell(pViewShell); } +const OutlinerViewShell* OutlinerView::GetViewShell() +{ + return pEditView->GetViewShell(); +} + Color const & OutlinerView::GetBackgroundColor() const { return pEditView->GetBackgroundColor(); diff --git a/include/editeng/editview.hxx b/include/editeng/editview.hxx index a7f3180711f5..282d5e0d200e 100644 --- a/include/editeng/editview.hxx +++ b/include/editeng/editview.hxx @@ -236,6 +236,7 @@ public: /// Informs this edit view about which view shell contains it. void RegisterViewShell(OutlinerViewShell* pViewShell); + const OutlinerViewShell* GetViewShell(); /// Informs this edit view about which other shell listens to it. void RegisterOtherShell(OutlinerViewShell* pOtherShell); diff --git a/include/editeng/outliner.hxx b/include/editeng/outliner.hxx index c77c2f246ad1..63df073db652 100644 --- a/include/editeng/outliner.hxx +++ b/include/editeng/outliner.hxx @@ -257,6 +257,7 @@ public: /// Informs this edit view about which view shell contains it. void RegisterViewShell(OutlinerViewShell* pViewShell); + const OutlinerViewShell* GetViewShell(); SfxItemSet GetAttribs(); diff --git a/sw/source/uibase/docvw/AnnotationWin2.cxx b/sw/source/uibase/docvw/AnnotationWin2.cxx index f0f92d9a7d9c..63cab37214b2 100644 --- a/sw/source/uibase/docvw/AnnotationWin2.cxx +++ b/sw/source/uibase/docvw/AnnotationWin2.cxx @@ -538,12 +538,6 @@ void SwAnnotationWin::InitControls() mpOutlinerView->SetAttribs(DefaultItem()); - if (comphelper::LibreOfficeKit::isActive()) - { - // If there is a callback already registered, inform the new outliner view about it. - mpOutlinerView->RegisterViewShell(&mrView); - } - //create Scrollbars mpVScrollbar = VclPtr<SidebarScrollBar>::Create(*this, WB_3DLOOK |WB_VSCROLL|WB_DRAG, mrView); mpVScrollbar->EnableNativeWidget(false); @@ -939,6 +933,12 @@ void SwAnnotationWin::DoResize() } mpOutliner->SetPaperSize( PixelToLogic( Size(aWidth,aHeight) ) ) ; + + if (comphelper::LibreOfficeKit::isActive() && !mpOutlinerView->GetViewShell()) + { + mpOutlinerView->RegisterViewShell(&mrView); + } + if (!mpVScrollbar->IsVisible()) { // if we do not have a scrollbar anymore, we want to see the complete text mpOutlinerView->SetVisArea( PixelToLogic( tools::Rectangle(0,0,aWidth,aHeight) ) ); |