summaryrefslogtreecommitdiff
path: root/framework
diff options
context:
space:
mode:
authorMatúš Kukan <matus.kukan@gmail.com>2015-11-23 22:07:12 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2016-01-11 10:32:12 +0000
commit013beaceb8c6daf2bf7f804631a3385e35144152 (patch)
tree0c3b268b2b5af6084c7053ca1b37f5b113a6984b /framework
parent74c089fe14b82c796692b7600e78c8fea17e33cf (diff)
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@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'framework')
-rw-r--r--framework/source/services/frame.cxx10
1 files changed, 4 insertions, 6 deletions
diff --git a/framework/source/services/frame.cxx b/framework/source/services/frame.cxx
index 754768e7d47b..bcd12d4cc6bb 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;
}
}