diff options
-rw-r--r-- | svx/source/svdraw/svdedxv.cxx | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index f9a98d9b1323..f577522e4066 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -308,7 +308,12 @@ void SdrObjEditView::TextEditDrawing(SdrPaintWindow& rPaintWindow) const { OutlinerView* pOLV = pActiveOutliner->GetView(i); - if(pOLV->GetWindow() == &rPaintWindow.GetOutputDevice() || GetModel()->isTiledRendering()) + // If rPaintWindow knows that the output device is a render + // context and is aware of the underlying vcl::Window, + // compare against that; that's how double-buffering can + // still find the matching OutlinerView. + OutputDevice* pOutputDevice = rPaintWindow.GetWindow() ? rPaintWindow.GetWindow() : &rPaintWindow.GetOutputDevice(); + if(pOLV->GetWindow() == pOutputDevice || GetModel()->isTiledRendering()) { ImpPaintOutlinerView(*pOLV, aCheckRect, rPaintWindow.GetTargetOutputDevice()); return; |