[Libreoffice-commits] core.git: include/vcl vcl/source

Noel Grandin noel.grandin at collabora.co.uk
Tue Dec 13 07:50:00 UTC 2016


 include/vcl/event.hxx       |    1 +
 vcl/source/window/event.cxx |    6 ++++++
 vcl/source/window/mouse.cxx |    3 +++
 3 files changed, 10 insertions(+)

New commits:
commit f04ec99f5e6a543b8191ced61db4710c3c0de356
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Tue Dec 13 09:48:52 2016 +0200

    tdf#104573 - Assertion failed: SolarMutex not locked
    
    Change-Id: Ie46f0e2b60b99aea1c322c7891a41a2e7603c9e9

diff --git a/include/vcl/event.hxx b/include/vcl/event.hxx
index 9737bac..a5820c1 100644
--- a/include/vcl/event.hxx
+++ b/include/vcl/event.hxx
@@ -317,6 +317,7 @@ public:
                             NotifyEvent( MouseNotifyEvent nEventType,
                                          vcl::Window* pWindow,
                                          const void* pEvent = nullptr );
+                            ~NotifyEvent();
 
     MouseNotifyEvent        GetType() const { return mnEventType; }
     vcl::Window*            GetWindow() const { return mpWindow; }
diff --git a/vcl/source/window/event.cxx b/vcl/source/window/event.cxx
index 38815a3..8feb212 100644
--- a/vcl/source/window/event.cxx
+++ b/vcl/source/window/event.cxx
@@ -658,4 +658,10 @@ NotifyEvent::NotifyEvent( MouseNotifyEvent nEventType, vcl::Window* pWindow,
     mnEventType  = nEventType;
 }
 
+NotifyEvent::~NotifyEvent()
+{
+    SolarMutexGuard aVclGuard;
+    mpWindow.clear();
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/window/mouse.cxx b/vcl/source/window/mouse.cxx
index d1cc051..b769a83 100644
--- a/vcl/source/window/mouse.cxx
+++ b/vcl/source/window/mouse.cxx
@@ -161,7 +161,10 @@ void Window::ImplCallMouseMove( sal_uInt16 nMouseCode, bool bModChanged )
 void Window::ImplGenerateMouseMove()
 {
     if ( !mpWindowImpl->mpFrameData->mnMouseMoveId )
+    {
+        SolarMutexGuard aVclGuard;
         mpWindowImpl->mpFrameData->mnMouseMoveId = Application::PostUserEvent( LINK( mpWindowImpl->mpFrameWindow, Window, ImplGenerateMouseMoveHdl ), nullptr, true );
+    }
 }
 
 IMPL_LINK_NOARG(Window, ImplGenerateMouseMoveHdl, void*, void)


More information about the Libreoffice-commits mailing list