summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@collabora.com>2019-01-25 14:40:40 +0100
committerJan Holesovsky <kendy@collabora.com>2019-10-09 10:34:22 +0200
commit663e37e85ef99bd2f88dd5681ce82f0fc32b5dd9 (patch)
treea0daf25c781ea1308ad1d8464536da065a9656af /svx
parentb99780b1a1fa99d0c9f96f55677797a081477cb1 (diff)
sw: Ctrl + shape insertion was not setting up the layer.
The consequence was that the shapes were inserted into the background layer. The problem was particularly visible with the LOK, but reproducible on the desktop too. Includes unit test. Change-Id: I16137331f944101e25679ec8c4a034bea658bc57 Reviewed-on: https://gerrit.libreoffice.org/66917 Tested-by: Jenkins Reviewed-by: Jan Holesovsky <kendy@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/80260 Tested-by: Jan Holesovsky <kendy@collabora.com>
Diffstat (limited to 'svx')
-rw-r--r--svx/source/svdraw/svdcrtv.cxx45
1 files changed, 25 insertions, 20 deletions
diff --git a/svx/source/svdraw/svdcrtv.cxx b/svx/source/svdraw/svdcrtv.cxx
index 5578cb193198..4f4be197c9c1 100644
--- a/svx/source/svdraw/svdcrtv.cxx
+++ b/svx/source/svdraw/svdcrtv.cxx
@@ -569,6 +569,30 @@ void SdrCreateView::MovCreateObj(const Point& rPnt)
}
}
+void SdrCreateView::SetupObjLayer(const SdrPageView* pPageView, const OUString& aActiveLayer, SdrObject* pObj)
+{
+ const SdrLayerAdmin& rAd = pPageView->GetPage()->GetLayerAdmin();
+ SdrLayerID nLayer(0);
+
+ // #i72535#
+ if(dynamic_cast<const FmFormObj*>( pObj) != nullptr)
+ {
+ // for FormControls, force to form layer
+ nLayer = rAd.GetLayerID(rAd.GetControlLayerName());
+ }
+ else
+ {
+ nLayer = rAd.GetLayerID(aActiveLayer);
+ }
+
+ if(SDRLAYER_NOTFOUND == nLayer)
+ {
+ nLayer = SdrLayerID(0);
+ }
+
+ pObj->SetLayer(nLayer);
+}
+
bool SdrCreateView::EndCreateObj(SdrCreateCmd eCmd)
{
bool bRet=false;
@@ -599,26 +623,7 @@ bool SdrCreateView::EndCreateObj(SdrCreateCmd eCmd)
SdrObject* pObj=pCurrentCreate;
pCurrentCreate=nullptr;
- const SdrLayerAdmin& rAd = pCreatePV->GetPage()->GetLayerAdmin();
- SdrLayerID nLayer(0);
-
- // #i72535#
- if(dynamic_cast<const FmFormObj*>( pObj) != nullptr)
- {
- // for FormControls, force to form layer
- nLayer = rAd.GetLayerID(rAd.GetControlLayerName());
- }
- else
- {
- nLayer = rAd.GetLayerID(maActualLayer);
- }
-
- if(SDRLAYER_NOTFOUND == nLayer)
- {
- nLayer = SdrLayerID(0);
- }
-
- pObj->SetLayer(nLayer);
+ SetupObjLayer(pCreatePV, maActualLayer, pObj);
// recognize creation of a new 3D object inside a 3D scene
bool bSceneIntoScene(false);