From d3566e105819cda1e42f51fd5967a971c8f941ea Mon Sep 17 00:00:00 2001 From: Paul Trojahn Date: Thu, 21 Jun 2018 15:51:05 +0200 Subject: tdf#115233 Don't reset crop when replacing a graphic When passing DND_ACTION_MOVE to View::InsertGraphic, the whole object gets replaced. DND_ACTION_LINK should be used, because it just replaces the graphic and keeps crop information. Marking the object is not needed, because InsertObjectAtView and ReplaceObjectAtView already take care of that. Change-Id: I0d829ec39a9d484a7c8946252e90eddb12ea9756 Reviewed-on: https://gerrit.libreoffice.org/56401 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt (cherry picked from commit 3f3c16e433f727bf52a6f894956b489187ab6dce) Reviewed-on: https://gerrit.libreoffice.org/56837 Reviewed-by: Paul Trojahn Reviewed-by: Christian Lohmaier --- sd/source/ui/func/fuinsert.cxx | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) (limited to 'sd') diff --git a/sd/source/ui/func/fuinsert.cxx b/sd/source/ui/func/fuinsert.cxx index d334d8908455..58140974a862 100644 --- a/sd/source/ui/func/fuinsert.cxx +++ b/sd/source/ui/func/fuinsert.cxx @@ -168,18 +168,13 @@ void FuInsertGraphic::DoExecute( SfxRequest& rReq ) if( mpViewShell && dynamic_cast< DrawViewShell *>( mpViewShell ) != nullptr) { sal_Int8 nAction = DND_ACTION_COPY; - SdrObject* pPickObj = mpView->GetEmptyPresentationObject( PRESOBJ_GRAPHIC ); - bool bSelectionReplaced(false); + SdrObject* pPickObj; - if( pPickObj ) + if( ( ( pPickObj = mpView->GetSelectedSingleObject( mpView->GetPage() ) ) && mbReplaceExistingImage ) || (pPickObj = mpView->GetEmptyPresentationObject( PRESOBJ_GRAPHIC ) ) ) { nAction = DND_ACTION_LINK; - } - else if(mbReplaceExistingImage && mpView->GetMarkedObjectCount() == 1) - { - pPickObj = mpView->GetMarkedObjectByIndex(0); - nAction = DND_ACTION_MOVE; - bSelectionReplaced = true; + } else { + pPickObj = nullptr; } Point aPos = mpWindow->GetVisibleCenter(); @@ -202,11 +197,6 @@ void FuInsertGraphic::DoExecute( SfxRequest& rReq ) } pGrafObj->SetGraphicLink(aFileName, aReferer, aFilterName); } - - if(bSelectionReplaced && pGrafObj) - { - mpView->MarkObj(pGrafObj, mpView->GetSdrPageView()); - } } } else -- cgit v1.2.3