From c853d446a7cd8a8436cb5f43bbf81a723bd86c99 Mon Sep 17 00:00:00 2001 From: merttumer Date: Fri, 19 Mar 2021 12:31:42 +0300 Subject: Fix Line and Connectors enable interactive drawing We add them directly for LOK case and have no functionality for interactive drawing. Noticed that in Writer we didnt even add them directly I also implemented that as well. Change-Id: If90bfc8d2cdf84f200bc7963ae4126ef789524ff Signed-off-by: merttumer Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112703 Tested-by: Jenkins CollaboraOffice Reviewed-by: Jan Holesovsky Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114025 Tested-by: Jenkins --- sc/source/ui/view/tabvwsh2.cxx | 2 ++ sd/source/ui/view/drviewse.cxx | 4 ++++ sw/source/uibase/uiview/viewdraw.cxx | 3 +++ 3 files changed, 9 insertions(+) diff --git a/sc/source/ui/view/tabvwsh2.cxx b/sc/source/ui/view/tabvwsh2.cxx index f213c5b822ef..652482ec5d6f 100644 --- a/sc/source/ui/view/tabvwsh2.cxx +++ b/sc/source/ui/view/tabvwsh2.cxx @@ -231,6 +231,7 @@ void ScTabViewShell::ExecDraw(SfxRequest& rReq) case SID_DRAW_ELLIPSE: case SID_DRAW_MEASURELINE: pTabView->SetDrawFuncPtr(new FuConstRectangle(*this, pWin, pView, pDoc, aNewReq)); + bCreateDirectly = comphelper::LibreOfficeKit::isActive(); break; case SID_DRAW_CAPTION: @@ -332,6 +333,7 @@ void ScTabViewShell::ExecDraw(SfxRequest& rReq) } else { + GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SfxCallMode::ASYNCHRON); ScViewData& rViewData = GetViewData(); aInsertPos = rViewData.getLOKVisibleArea().Center(); if (comphelper::LibreOfficeKit::isCompatFlagSet( diff --git a/sd/source/ui/view/drviewse.cxx b/sd/source/ui/view/drviewse.cxx index b833b1d3b719..2247294cfaba 100644 --- a/sd/source/ui/view/drviewse.cxx +++ b/sd/source/ui/view/drviewse.cxx @@ -605,6 +605,10 @@ void DrawViewShell::FuPermanent(SfxRequest& rReq) if(!(HasCurrentFunction() && ((rReq.GetModifier() & KEY_MOD1) || bCreateDirectly))) return; + // disable interactive drawing for LOK + if (bCreateDirectly) + GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SfxCallMode::ASYNCHRON); + // get SdOptions SdOptions* pOptions = SD_MOD()->GetSdOptions(GetDoc()->GetDocumentType()); sal_uInt32 nDefaultObjectSizeWidth(pOptions->GetDefaultObjectSizeWidth()); diff --git a/sw/source/uibase/uiview/viewdraw.cxx b/sw/source/uibase/uiview/viewdraw.cxx index 80024ccf6ac4..b676999f6448 100644 --- a/sw/source/uibase/uiview/viewdraw.cxx +++ b/sw/source/uibase/uiview/viewdraw.cxx @@ -260,6 +260,7 @@ void SwView::ExecDraw(SfxRequest& rReq) case SID_DRAW_CAPTION: case SID_DRAW_CAPTION_VERTICAL: pFuncPtr.reset( new ConstRectangle(m_pWrtShell.get(), m_pEditWin, this) ); + bCreateDirectly = comphelper::LibreOfficeKit::isActive(); m_nDrawSfxId = nSlotId; m_sDrawCustom.clear(); break; @@ -341,6 +342,8 @@ void SwView::ExecDraw(SfxRequest& rReq) NoRotate(); if(rReq.GetModifier() == KEY_MOD1 || bCreateDirectly) { + if (bCreateDirectly) + GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SfxCallMode::ASYNCHRON); if(SID_OBJECT_SELECT == m_nDrawSfxId ) { m_pWrtShell->GotoObj(true); -- cgit