diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-02-19 12:48:27 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-02-23 10:10:28 +0100 |
commit | 8632db588d405f10506925ffd2db369691e5bc71 (patch) | |
tree | 08b1b87b42662e6e8417a06730d53acc1337048c /svx | |
parent | 2af65ff30e8cef6be21fee1ef20f6b1db4451ccf (diff) |
svx: paint TextEdit to the output device in case of tiled rendering
With this, we still miss invalidations when the user types characters
into a TextEdit, but at least when manually triggering a full redraw we
gets the typed characters without finishing the editing.
Change-Id: I3ab8991a86c99fe3910ddc5e4f795b802c07c9a9
Diffstat (limited to 'svx')
-rw-r--r-- | svx/source/svdraw/svdedxv.cxx | 2 | ||||
-rw-r--r-- | svx/source/svdraw/svdpntv.cxx | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index f8b234b93064..9c47ca8bc391 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -308,7 +308,7 @@ void SdrObjEditView::TextEditDrawing(SdrPaintWindow& rPaintWindow) const { OutlinerView* pOLV = pActiveOutliner->GetView(i); - if(pOLV->GetWindow() == &rPaintWindow.GetOutputDevice()) + if(pOLV->GetWindow() == &rPaintWindow.GetOutputDevice() || rPaintWindow.GetOutputDevice().isTiledRendering()) { ImpPaintOutlinerView(*pOLV, aCheckRect, rPaintWindow.GetTargetOutputDevice()); return; diff --git a/svx/source/svdraw/svdpntv.cxx b/svx/source/svdraw/svdpntv.cxx index 064399230976..a3c294d58fde 100644 --- a/svx/source/svdraw/svdpntv.cxx +++ b/svx/source/svdraw/svdpntv.cxx @@ -17,6 +17,7 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <memory> #include <com/sun/star/awt/XWindow.hpp> #include <svx/svdpntv.hxx> #include <vcl/msgbox.hxx> @@ -734,6 +735,14 @@ void SdrPaintView::DoCompleteRedraw(SdrPaintWindow& rPaintWindow, const vcl::Reg void SdrPaintView::EndCompleteRedraw(SdrPaintWindow& rPaintWindow, bool bPaintFormLayer) { + std::unique_ptr<SdrPaintWindow> pPaintWindow; + if (rPaintWindow.GetOutputDevice().isTiledRendering() && rPaintWindow.getTemporaryTarget()) + { + // Tiled rendering, we must paint the TextEdit to the output device. + pPaintWindow.reset(&rPaintWindow); + pPaintWindow->setTemporaryTarget(false); + } + if(rPaintWindow.getTemporaryTarget()) { // get rid of temp target again |