diff options
author | Marco Cecchetti <mrcekets@gmail.com> | 2018-11-22 19:40:35 +0100 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2019-08-05 12:02:16 -0400 |
commit | ac8bc00065d1ac2b5ca26dbf52145568a0d24f8b (patch) | |
tree | c255b602054f44e4bb1fba249c5247de94f390ce | |
parent | 82c8346f2f3f8b804577ea6975faad5796e5ec04 (diff) |
lok: get correct handlers for a single rotated shape
Change-Id: I74668ca8079d8d56b8c3f2c4513e2a2ec95872c6
-rw-r--r-- | svx/source/svdraw/svdmrkv.cxx | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/svx/source/svdraw/svdmrkv.cxx b/svx/source/svdraw/svdmrkv.cxx index 99fe72a5cd95..5de327b34608 100644 --- a/svx/source/svdraw/svdmrkv.cxx +++ b/svx/source/svdraw/svdmrkv.cxx @@ -564,10 +564,13 @@ void SdrMarkView::showMarkHandles() bool SdrMarkView::ImpIsFrameHandles() const { + // There can be multiple mark views, but we're only interested in the one that has a window associated. + const bool bTiledRendering = comphelper::LibreOfficeKit::isActive() && GetFirstOutputDevice() && GetFirstOutputDevice()->GetOutDevType() == OUTDEV_WINDOW; + const size_t nMarkCount=GetMarkedObjectCount(); bool bFrmHdl=nMarkCount>static_cast<size_t>(mnFrameHandlesLimit) || mbForceFrameHandles; bool bStdDrag=meDragMode==SdrDragMode::Move; - if (nMarkCount==1 && bStdDrag && bFrmHdl) + if (!bTiledRendering && nMarkCount==1 && bStdDrag && bFrmHdl) { const SdrObject* pObj=GetMarkedObjectByIndex(0); if (pObj->GetObjInventor()==SdrInventor::Default) @@ -694,12 +697,20 @@ void SdrMarkView::SetMarkHandles(SfxViewShell* pOtherShell) if(areMarkHandlesHidden()) return; + // apply calc offset to marked object rect + // ( necessary for handles to be displayed in + // correct position ) + Point aGridOff = GetGridOffset(); + + // There can be multiple mark views, but we're only interested in the one that has a window associated. + const bool bTiledRendering = comphelper::LibreOfficeKit::isActive() && GetFirstOutputDevice() && GetFirstOutputDevice()->GetOutDevType() == OUTDEV_WINDOW; + const size_t nMarkCount=GetMarkedObjectCount(); bool bStdDrag=meDragMode==SdrDragMode::Move; bool bSingleTextObjMark=false; bool bLimitedRotation(false); - if (nMarkCount==1) + if (!bTiledRendering && nMarkCount==1) { mpMarkedObj=GetMarkedObjectByIndex(0); @@ -732,11 +743,6 @@ void SdrMarkView::SetMarkHandles(SfxViewShell* pOtherShell) } } - // apply calc offset to marked object rect - // ( necessary for handles to be displayed in - // correct position ) - Point aGridOff = GetGridOffset(); - // There can be multiple mark views, but we're only interested in the one that has a window associated. const bool bTiledRendering = comphelper::LibreOfficeKit::isActive() && GetFirstOutputDevice() && GetFirstOutputDevice()->GetOutDevType() == OUTDEV_WINDOW; |