diff options
author | Norbert Thiebaud <nthiebaud@gmail.com> | 2010-10-14 16:43:16 -0500 |
---|---|---|
committer | Norbert Thiebaud <nthiebaud@gmail.com> | 2010-10-25 19:55:33 -0500 |
commit | dbd5e19301cfae96600724cfdcfa004a08b50afd (patch) | |
tree | a5d9d886eb967df2e3842d51a902486dcf446e98 /framework | |
parent | f4f4a8ed4f56035cc9f536d00f62a552af974cf0 (diff) |
Use SolarMutexGuard where appropriate
Diffstat (limited to 'framework')
-rw-r--r-- | framework/source/dispatch/closedispatcher.cxx | 2 | ||||
-rw-r--r-- | framework/source/inc/pattern/window.hxx | 27 | ||||
-rw-r--r-- | framework/source/layoutmanager/layoutmanager.cxx | 2 |
3 files changed, 15 insertions, 16 deletions
diff --git a/framework/source/dispatch/closedispatcher.cxx b/framework/source/dispatch/closedispatcher.cxx index 25f8f0f005b6..693bda1e07df 100644 --- a/framework/source/dispatch/closedispatcher.cxx +++ b/framework/source/dispatch/closedispatcher.cxx @@ -630,7 +630,7 @@ css::uno::Reference< css::frame::XFrame > CloseDispatcher::static_impl_searchRig // Attention ! Checking Window->GetParent() isnt the right approach here. // Because sometimes VCL create "implicit border windows" as parents even we created // a simple XWindow using the toolkit only .-( - ::vos::OGuard aSolarLock(&Application::GetSolarMutex()); + SolarMutexGuard aSolarLock; Window* pWindow = VCLUnoHelper::GetWindow( xWindow ); if ( (pWindow ) && diff --git a/framework/source/inc/pattern/window.hxx b/framework/source/inc/pattern/window.hxx index c185e5644348..0741a35d2018 100644 --- a/framework/source/inc/pattern/window.hxx +++ b/framework/source/inc/pattern/window.hxx @@ -71,20 +71,20 @@ static ::rtl::OUString getWindowState(const css::uno::Reference< css::awt::XWind if (!xWindow.is()) return ::rtl::OUString(); - // SOLAR SAFE -> ---------------------------- - ::vos::OClearableGuard aSolarGuard(Application::GetSolarMutex()); - ByteString sWindowState; - Window* pWindow = VCLUnoHelper::GetWindow(xWindow); - // check for system window is neccessary to guarantee correct pointer cast! - if (pWindow!=NULL && pWindow->IsSystemWindow()) + // SOLAR SAFE -> ---------------------------- { - ULONG nMask = WINDOWSTATE_MASK_ALL; - nMask &= ~(WINDOWSTATE_MASK_MINIMIZED); - sWindowState = ((SystemWindow*)pWindow)->GetWindowState(nMask); + SolarMutexGuard aSolarGuard; + + Window* pWindow = VCLUnoHelper::GetWindow(xWindow); + // check for system window is neccessary to guarantee correct pointer cast! + if (pWindow!=NULL && pWindow->IsSystemWindow()) + { + ULONG nMask = WINDOWSTATE_MASK_ALL; + nMask &= ~(WINDOWSTATE_MASK_MINIMIZED); + sWindowState = ((SystemWindow*)pWindow)->GetWindowState(nMask); + } } - - aSolarGuard.clear(); // <- SOLAR SAFE ---------------------------- return B2U_ENC(sWindowState,RTL_TEXTENCODING_UTF8); @@ -101,7 +101,7 @@ static void setWindowState(const css::uno::Reference< css::awt::XWindow >& xWind return; // SOLAR SAFE -> ---------------------------- - ::vos::OClearableGuard aSolarGuard(Application::GetSolarMutex()); + SolarMutexGuard aSolarGuard; Window* pWindow = VCLUnoHelper::GetWindow(xWindow); // check for system window is neccessary to guarantee correct pointer cast! @@ -118,7 +118,6 @@ static void setWindowState(const css::uno::Reference< css::awt::XWindow >& xWind ((SystemWindow*)pWindow)->SetWindowState(U2B_ENC(sWindowState,RTL_TEXTENCODING_UTF8)); } - aSolarGuard.clear(); // <- SOLAR SAFE ---------------------------- } @@ -134,7 +133,7 @@ static ::sal_Bool isTopWindow(const css::uno::Reference< css::awt::XWindow >& xW // Attention ! Checking Window->GetParent() isnt the right approach here. // Because sometimes VCL create "implicit border windows" as parents even we created // a simple XWindow using the toolkit only .-( - ::vos::OGuard aSolarLock(&Application::GetSolarMutex()); + SolarMutexGuard aSolarGuard; Window* pWindow = VCLUnoHelper::GetWindow( xWindow ); if ( (pWindow ) && diff --git a/framework/source/layoutmanager/layoutmanager.cxx b/framework/source/layoutmanager/layoutmanager.cxx index f94037909ef8..73fa53b6a3d6 100644 --- a/framework/source/layoutmanager/layoutmanager.cxx +++ b/framework/source/layoutmanager/layoutmanager.cxx @@ -293,7 +293,7 @@ static sal_Bool implts_isFrameOrWindowTop( const css::uno::Reference< css::frame if (xWindowCheck.is()) { // --> PB 2007-06-18 #i76867# top and system window is required. - ::vos::OGuard aSolarLock(&Application::GetSolarMutex()); + SolarMutexGuard aGuard; css::uno::Reference< css::awt::XWindow > xWindow( xWindowCheck, UNO_QUERY ); Window* pWindow = VCLUnoHelper::GetWindow( xWindow ); return ( pWindow && pWindow->IsSystemWindow() ); |