summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@collabora.com>2015-04-01 17:48:29 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-04-07 09:18:11 +0200
commit06a1cbf7b0055fe45c86409b736cdd669a3f7ba9 (patch)
treec56e830e7021312f8fcaf5ea13fbab3f493a7e83 /svx
parentd351344bbae3144aebcaebd309906ddefa7f4c43 (diff)
sc tiled editing: Make the editing of text in shapes in Calc work.
I suspect the change in svdedxv.cxx is a hack and that the root cause is that we should initialize the pDrawView somehow more / better wrt. the output device that we are passing to BeginDrawLayers. [Probably the AddPaintWindowToPageView() called in ScGridWindow::PaintTile() is not enough.] But otherwise this makes the situation much better, and also makes the code even more on par with the non-tiled-rendering case, so let's live with that for now. Change-Id: I347b0af9e21acacc9aff4ebb7155246abd3beb43
Diffstat (limited to 'svx')
-rw-r--r--svx/source/svdraw/svdedxv.cxx10
1 files changed, 9 insertions, 1 deletions
diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx
index 65a457f51e51..367cd8fbedea 100644
--- a/svx/source/svdraw/svdedxv.cxx
+++ b/svx/source/svdraw/svdedxv.cxx
@@ -328,7 +328,15 @@ void SdrObjEditView::ImpPaintOutlinerView(OutlinerView& rOutlView, const Rectang
Rectangle aBlankRect(rOutlView.GetOutputArea());
aBlankRect.Union(aMinTextEditArea);
Rectangle aPixRect(rTargetDevice.LogicToPixel(aBlankRect));
- aBlankRect.Intersection(rRect);
+
+ // in the tiled rendering case, the setup is incomplete, and we very
+ // easily get an empty rRect on input - that will cause that everything is
+ // clipped; happens in case of editing text inside a shape in Calc.
+ // FIXME would be better to complete the setup so that we don't get an
+ // empty rRect here
+ if (!GetModel()->isTiledRendering() || !rRect.IsEmpty())
+ aBlankRect.Intersection(rRect);
+
rOutlView.GetOutliner()->SetUpdateMode(true); // Bugfix #22596#
rOutlView.Paint(aBlankRect, &rTargetDevice);