[Libreoffice-commits] core.git: Branch 'libreoffice-5-0' - svx/source

Caolán McNamara caolanm at redhat.com
Mon Jun 29 05:32:29 PDT 2015


 svx/source/sdr/contact/viewobjectcontactofgraphic.cxx |   21 +++++++++++-------
 1 file changed, 13 insertions(+), 8 deletions(-)

New commits:
commit 72da6ef835982e1927fd7405bb42f403c2fee5f9
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Jun 29 11:26:41 2015 +0100

    Resolves: tdf#92275 impress grinds to a halt constant swapping images
    
    This reverts commit 6c84442f99de109b585d3ba8964deb8dcf261c0f.
    "tdf#87820 Images not displayed properly in Calc"
    
    and replaces it with an alternative solution
    
    Change-Id: Iecb560d43767f0e41e442a307eefcdcecb7589ef
    (cherry picked from commit 2d196d0ee26b3840e56ec6537066a3b4a2f08691)

diff --git a/svx/source/sdr/contact/viewobjectcontactofgraphic.cxx b/svx/source/sdr/contact/viewobjectcontactofgraphic.cxx
index 4a8f469..df3e06e 100644
--- a/svx/source/sdr/contact/viewobjectcontactofgraphic.cxx
+++ b/svx/source/sdr/contact/viewobjectcontactofgraphic.cxx
@@ -134,22 +134,30 @@ namespace sdr
                             rGrafObj.mbInsidePaint = false;
                         }
 
-                        // Invalidate paint areas.
-                        GetViewContact().ActionChanged();
-
                         bRetval = true;
                     }
                 }
             }
             else
             {
-                // it is not swapped out, somehow it was loaded. In that case, forget
+                // it is not swapped out, somehow[1] it was loaded. In that case, forget
                 // about an existing triggered event
-                if(mpAsynchLoadEvent)
+                if (mpAsynchLoadEvent)
                 {
                     // just delete it, this will remove it from the EventHandler and
                     // will trigger forgetAsynchGraphicLoadingEvent from the destructor
                     delete mpAsynchLoadEvent;
+
+                    // Invalidate paint areas.
+                    // [1] If a calc document with graphics is loaded then OnLoad will
+                    // be emitted before the graphic are due to be swapped in asynchronously
+                    // In sfx2 we generate a preview on receiving onload, which forces
+                    // the graphics to be swapped in to generate the preview. When
+                    // the timer triggers it find the graphics already swapped in. So
+                    // we should still invalidate the paint area on finding the graphic
+                    // swapped in seeing as we're still waiting in calc to draw the
+                    // graphics on receipt of their contents.
+                    GetViewContact().ActionChanged();
                 }
             }
 
@@ -189,9 +197,6 @@ namespace sdr
                         rGrafObj.mbInsidePaint = false;
                     }
 
-                    // Invalidate paint areas.
-                    GetViewContact().ActionChanged();
-
                     bRetval = true;
                 }
             }


More information about the Libreoffice-commits mailing list