summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-02-19 12:48:27 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-02-23 10:10:28 +0100
commit8632db588d405f10506925ffd2db369691e5bc71 (patch)
tree08b1b87b42662e6e8417a06730d53acc1337048c /svx
parent2af65ff30e8cef6be21fee1ef20f6b1db4451ccf (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.cxx2
-rw-r--r--svx/source/svdraw/svdpntv.cxx9
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