[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.2' - 2 commits - include/svx svx/source sw/qa sw/source vcl/source
Jan Holesovsky (via logerrit)
logerrit at kemper.freedesktop.org
Wed Oct 9 08:35:54 UTC 2019
include/svx/svdcrtv.hxx | 3 +
svx/source/svdraw/svdcrtv.cxx | 45 +++++++++++++------------
sw/qa/extras/tiledrendering/tiledrendering.cxx | 6 ++-
sw/source/core/frmedt/feshview.cxx | 1
vcl/source/window/paint.cxx | 4 +-
5 files changed, 37 insertions(+), 22 deletions(-)
New commits:
commit 6235787feb0377a28d26e5764b78266af1e4dc90
Author: Jan Holesovsky <kendy at collabora.com>
AuthorDate: Sun Feb 10 11:57:58 2019 +0100
Commit: Jan Holesovsky <kendy at collabora.com>
CommitDate: Wed Oct 9 10:34:46 2019 +0200
lok: Fix the font previews in eg. Format -> Character... dialog.
Change-Id: I5d25249c58f55c501e3e5610419753a68423b0f2
Reviewed-on: https://gerrit.libreoffice.org/67613
Tested-by: Jenkins
Reviewed-by: Jan Holesovsky <kendy at collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/80261
Tested-by: Jan Holesovsky <kendy at collabora.com>
diff --git a/vcl/source/window/paint.cxx b/vcl/source/window/paint.cxx
index 979adc09dd0a..b7b8893be618 100644
--- a/vcl/source/window/paint.cxx
+++ b/vcl/source/window/paint.cxx
@@ -1401,9 +1401,11 @@ void Window::ImplPaintToDevice( OutputDevice* i_pTargetOutDev, const Point& i_rP
if (!IsPaintTransparent() && IsBackground() && ! (GetParentClipMode() & ParentClipMode::NoClip))
Erase(*pDevice);
+ pDevice->SetMapMode(GetMapMode());
+
Paint(*pDevice, tools::Rectangle(Point(), GetOutputSizePixel()));
- i_pTargetOutDev->DrawOutDev(i_rPos, aSize, Point(), aSize, *pDevice);
+ i_pTargetOutDev->DrawOutDev(i_rPos, aSize, Point(), pDevice->PixelToLogic(aSize), *pDevice);
// get rid of virtual device now so they don't pile up during recursive calls
pDevice.disposeAndClear();
commit 663e37e85ef99bd2f88dd5681ce82f0fc32b5dd9
Author: Jan Holesovsky <kendy at collabora.com>
AuthorDate: Fri Jan 25 14:40:40 2019 +0100
Commit: Jan Holesovsky <kendy at collabora.com>
CommitDate: Wed Oct 9 10:34:22 2019 +0200
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 at collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/80260
Tested-by: Jan Holesovsky <kendy at collabora.com>
diff --git a/include/svx/svdcrtv.hxx b/include/svx/svdcrtv.hxx
index 9b6a08e8f93b..2b1941373fb0 100644
--- a/include/svx/svdcrtv.hxx
+++ b/include/svx/svdcrtv.hxx
@@ -118,6 +118,9 @@ public:
bool IsCreateObj() const { return pCurrentCreate!=nullptr; }
SdrObject* GetCreateObj() const { return pCurrentCreate; }
+ /// Setup layer (eg. foreground / background) of the given object.
+ static void SetupObjLayer(const SdrPageView* pPageView, const OUString& aActiveLayer, SdrObject* pObj);
+
// BegCreateCaptionObj() creates a SdrCaptionObj (legend item).
// rObjSiz is the initial size of the legend text frame.
// Only the length of the tip is dragged
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);
diff --git a/sw/qa/extras/tiledrendering/tiledrendering.cxx b/sw/qa/extras/tiledrendering/tiledrendering.cxx
index 3a13c1649576..3a3fbf4e162e 100644
--- a/sw/qa/extras/tiledrendering/tiledrendering.cxx
+++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx
@@ -500,9 +500,13 @@ void SwTiledRenderingTest::testInsertShape()
comphelper::dispatchCommand(".uno:BasicShapes.circle", uno::Sequence<beans::PropertyValue>());
// check that the shape was inserted in the visible area, not outside
- SdrPage* pPage = pWrtShell->GetDoc()->getIDocumentDrawModelAccess().GetDrawModel()->GetPage(0);
+ IDocumentDrawModelAccess &rDrawModelAccess = pWrtShell->GetDoc()->getIDocumentDrawModelAccess();
+ SdrPage* pPage = rDrawModelAccess.GetDrawModel()->GetPage(0);
SdrObject* pObject = pPage->GetObj(0);
CPPUNIT_ASSERT_EQUAL(tools::Rectangle(2736, 868, 7264, 3132), pObject->GetSnapRect());
+
+ // check that it is in the foreground layer
+ CPPUNIT_ASSERT_EQUAL(rDrawModelAccess.GetHeavenId().get(), pObject->GetLayer().get());
}
static void lcl_search(bool bBackward)
diff --git a/sw/source/core/frmedt/feshview.cxx b/sw/source/core/frmedt/feshview.cxx
index 69bfd77ca14e..c18e91fd1694 100644
--- a/sw/source/core/frmedt/feshview.cxx
+++ b/sw/source/core/frmedt/feshview.cxx
@@ -3149,6 +3149,7 @@ long SwFEShell::GetSectionWidth( SwFormat const & rFormat ) const
}
}
SdrPageView* pPageView = pDrawView->GetSdrPageView();
+ SdrCreateView::SetupObjLayer(pPageView, pDrawView->GetActiveLayer(), pObj);
pDrawView->InsertObjectAtView(pObj, *pPageView);
}
ImpEndCreate();
More information about the Libreoffice-commits
mailing list