[Libreoffice-commits] core.git: Branch 'libreoffice-5-1' - framework/source

Matúš Kukan matus.kukan at gmail.com
Mon Jan 11 02:32:37 PST 2016


 framework/source/services/frame.cxx |   10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

New commits:
commit 013beaceb8c6daf2bf7f804631a3385e35144152
Author: Matúš Kukan <matus.kukan at gmail.com>
Date:   Mon Nov 23 22:07:12 2015 +0100

    Make this static WeakReference local to Frame::impl_checkMenuCloser()
    
    ..to avoid problem shown with comphelper added to libmerged. More info in
    http://lists.freedesktop.org/archives/libreoffice/2015-November/071189.html
    
    (cherry picked from commit c6122fe6143ff1efa9f449d46a848cf3071ac67e)
    
    Apparently it was problem also without merged comphelper. Seen in
    CppunitTest_libreofficekit_tiledrendering in libreoffice-5-1.
    
    Change-Id: I2017d87f64f1ae3a1a1cf2e50bce24c05cff6321
    Reviewed-on: https://gerrit.libreoffice.org/21243
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/framework/source/services/frame.cxx b/framework/source/services/frame.cxx
index 754768e..bcd12d4 100644
--- a/framework/source/services/frame.cxx
+++ b/framework/source/services/frame.cxx
@@ -402,7 +402,6 @@ private:
     SvtCommandOptions                                                       m_aCommandOptions;           /// ref counted class to support disabling commands defined by configuration file
     bool                                                                    m_bSelfClose;                /// in case of CloseVetoException on method close() was thrown by ourself - we must close ourself later if no internal processes are running
     bool                                                                    m_bIsHidden;                 /// indicates, if this frame is used in hidden mode or not
-    static css::uno::WeakReference< css::frame::XFrame2 >                   m_xCloserFrame;              /// holds the only frame, which must show the special closer menu item (can be NULL!)
     css::uno::Reference< css::frame::XLayoutManager2 >                      m_xLayoutManager;            /// is used to layout the child windows of the frame.
     css::uno::Reference< css::frame::XDispatchInformationProvider >         m_xDispatchInfoHelper;
     css::uno::Reference< css::frame::XTitle >                               m_xTitleHelper;
@@ -414,8 +413,6 @@ protected:
     FrameContainer                                                          m_aChildFrameContainer;   /// array of child frames
 };
 
-css::uno::WeakReference< css::frame::XFrame2 > Frame::m_xCloserFrame;
-
 //  XInterface, XTypeProvider, XServiceInfo
 
 DEFINE_XINTERFACE_22                (   Frame                                                                   ,
@@ -3206,15 +3203,16 @@ void Frame::impl_checkMenuCloser()
     // Only if the closer state must be moved from one frame to another one
     // or must be enabled/disabled at all.
     SolarMutexGuard aGuard;
-
-    css::uno::Reference< css::frame::XFrame2 > xCloserFrame (m_xCloserFrame.get(), css::uno::UNO_QUERY);
+    // Holds the only frame, which must show the special closer menu item (can be NULL!)
+    static css::uno::WeakReference< css::frame::XFrame2 > s_xCloserFrame;
+    css::uno::Reference< css::frame::XFrame2 > xCloserFrame (s_xCloserFrame.get(), css::uno::UNO_QUERY);
     if (xCloserFrame!=xNewCloserFrame)
     {
         if (xCloserFrame.is())
             impl_setCloser(xCloserFrame, false);
         if (xNewCloserFrame.is())
             impl_setCloser(xNewCloserFrame, true);
-        m_xCloserFrame = xNewCloserFrame;
+        s_xCloserFrame = xNewCloserFrame;
     }
 }
 


More information about the Libreoffice-commits mailing list