summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2016-09-19 21:21:58 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2016-09-22 12:14:21 +0000
commit970750df0ddf272f5b22555834e579d56313e579 (patch)
tree6a4ed9154232d9e9deba1ba9cd35fd7887ea74d5
parent2a439e641890d81a6bb960ccc27135c040e3e991 (diff)
Resolves: tdf#102293 triple click results in visually unselected word
in previously unselected textboxes in impress started happening after... commit 16c7f8916661df24f4681ec82f6bd4d7ad85d141 Date: Tue Jan 12 16:36:49 2016 +0000 tdf#97075 - don't render sdr overlays before we paint in impress instead flush the overlay after activating the edit object if we go on to put the cursor in there. Seems to work. Change-Id: Ib746c36d1074aee09771a3dc1d69834ce80a9c08 (cherry picked from commit 38a61ddaf63768ebe19c92d561eac6f50d67ded7) Reviewed-on: https://gerrit.libreoffice.org/29040 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
-rw-r--r--sd/source/ui/func/futext.cxx15
1 files changed, 15 insertions, 0 deletions
diff --git a/sd/source/ui/func/futext.cxx b/sd/source/ui/func/futext.cxx
index c55ddfa783b8..b2af1c8808f4 100644
--- a/sd/source/ui/func/futext.cxx
+++ b/sd/source/ui/func/futext.cxx
@@ -21,6 +21,8 @@
#include <editeng/eeitem.hxx>
#include <editeng/editerr.hxx>
#include <svx/dlgutil.hxx>
+#include <svx/sdrpagewindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
#include <svx/svxerr.hxx>
#include <tools/urlobj.hxx>
#include <vcl/help.hxx>
@@ -1064,6 +1066,19 @@ void FuText::SetInEditMode(const MouseEvent& rMEvt, bool bQuickDrag)
if (mpView->SdrBeginTextEdit(pTextObj, pPV, mpWindow, true, pOutl) && mxTextObj->GetObjInventor() == SdrInventor)
{
+ //tdf#102293 flush overlay before going on to pass clicks down to
+ //the outline view which will want to paint selections
+ for (sal_uInt32 b = 0; b < pPV->PageWindowCount(); ++b)
+ {
+ const SdrPageWindow& rPageWindow = *pPV->GetPageWindow(b);
+ if (!rPageWindow.GetPaintWindow().OutputToWindow())
+ continue;
+ rtl::Reference< sdr::overlay::OverlayManager > xManager = rPageWindow.GetOverlayManager();
+ if (!xManager.is())
+ continue;
+ xManager->flush();
+ }
+
bFirstObjCreated = true;
DeleteDefaultText();