[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - sd/source

Caolán McNamara caolanm at redhat.com
Thu Sep 22 12:15:30 UTC 2016


 sd/source/ui/func/futext.cxx |   15 +++++++++++++++
 1 file changed, 15 insertions(+)

New commits:
commit 970750df0ddf272f5b22555834e579d56313e579
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Sep 19 21:21:58 2016 +0100

    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 at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/sd/source/ui/func/futext.cxx b/sd/source/ui/func/futext.cxx
index c55ddfa..b2af1c8 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();
 


More information about the Libreoffice-commits mailing list