summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2013-11-29 23:03:37 +0100
committerMichael Stahl <mstahl@redhat.com>2013-12-02 13:18:04 +0100
commitb44ed4c408d92f7a1a3f2390c056d518c137ddd0 (patch)
tree75c81d068b1bf71f8f984af1e8a34e46d2ef0e98
parentfabca7370e22f96ae041dc179475b35c87ac53ec (diff)
vcl: check if AT is running before loading the library
... which should result in faster startup if it's disabled. Change-Id: I39774b0a56f186d08270c2f17b2b20a823f21dc2
-rw-r--r--vcl/source/app/svdata.cxx33
-rw-r--r--vcl/win/source/window/salframe.cxx10
-rw-r--r--winaccessibility/source/service/msaaservice_impl.cxx26
3 files changed, 33 insertions, 36 deletions
diff --git a/vcl/source/app/svdata.cxx b/vcl/source/app/svdata.cxx
index 97116d47f9d2..aa58484fb872 100644
--- a/vcl/source/app/svdata.cxx
+++ b/vcl/source/app/svdata.cxx
@@ -297,6 +297,9 @@ com::sun::star::uno::Any AccessBridgeCurrentContext::getValueByName( const OUStr
return ret;
}
+#ifdef _WIN32
+bool HasAtHook();
+#endif
bool ImplInitAccessBridge(bool bAllowCancel, bool &rCancelled)
{
@@ -324,25 +327,35 @@ bool ImplInitAccessBridge(bool bAllowCancel, bool &rCancelled)
{
css::uno::Reference< XComponentContext > xContext(comphelper::getProcessComponentContext());
+#ifdef _WIN32
bool bTryIAcc2 = ( officecfg::Office::Common::Misc::ExperimentalMode::get( xContext ) &&
!getenv ("SAL_DISABLE_IACCESSIBLE2") );
if ( bTryIAcc2 ) // Windows only really
{
- try {
- pSVData->mxAccessBridge
- = css::accessibility::MSAAService::create(xContext);
- SAL_INFO("vcl", "got IAccessible2 bridge");
- return true;
- } catch (css::uno::DeploymentException & e) {
- SAL_INFO(
- "vcl",
- "got no IAccessible2 bridge, \"" << e.Message
- << "\", falling back to java");
+ if (!HasAtHook() && !getenv("SAL_FORCE_IACCESSIBLE2"))
+ {
+ SAL_INFO("vcl", "Apparently no running AT -> "
+ "not enabling IAccessible2 integration");
+ }
+ else
+ {
+ try {
+ pSVData->mxAccessBridge
+ = css::accessibility::MSAAService::create(xContext);
+ SAL_INFO("vcl", "got IAccessible2 bridge");
+ return true;
+ } catch (css::uno::DeploymentException & e) {
+ SAL_INFO(
+ "vcl",
+ "got no IAccessible2 bridge, \"" << e.Message
+ << "\", falling back to java");
+ }
}
}
else
SAL_INFO( "vcl", "IAccessible2 disabled, falling back to java" );
+#endif
css::uno::Reference< XExtendedToolkit > xToolkit =
css::uno::Reference< XExtendedToolkit >(Application::GetVCLToolkit(), UNO_QUERY);
diff --git a/vcl/win/source/window/salframe.cxx b/vcl/win/source/window/salframe.cxx
index 913d53967681..f7c30865002c 100644
--- a/vcl/win/source/window/salframe.cxx
+++ b/vcl/win/source/window/salframe.cxx
@@ -6257,4 +6257,14 @@ sal_Bool ImplWriteLastError( DWORD lastError, const char *szApiCall )
// -----------------------------------------------------------------------
+#ifdef _WIN32
+bool HasAtHook()
+{
+ BOOL bIsRunning = FALSE;
+ // pvParam must be BOOL
+ return SystemParametersInfo(SPI_GETSCREENREADER, 0, &bIsRunning, 0)
+ && bIsRunning;
+}
+#endif
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/winaccessibility/source/service/msaaservice_impl.cxx b/winaccessibility/source/service/msaaservice_impl.cxx
index 219eaee4c255..961a01219c67 100644
--- a/winaccessibility/source/service/msaaservice_impl.cxx
+++ b/winaccessibility/source/service/msaaservice_impl.cxx
@@ -237,21 +237,6 @@ static void AccessBridgeUpdateOldTopWindows( const Reference< XMSAAService > &xA
}
}
-static bool HasAtHook()
-{
- sal_Int32 bIsRuning=0;
- // BOOL WINAPI SystemParametersInfo(
- // __in UINT uiAction,
- // __in UINT uiParam,
- // __inout PVOID pvParam,
- // __in UINT fWinIni
- // );
- // pvParam must be BOOL (defined in MFC as int)
- // End
- return SystemParametersInfo( SPI_GETSCREENREADER, 0,
- &bIsRuning, 0) && bIsRuning;
-}
-
/**
* Static method that can create an entity of our MSAA Service
* @param xContext No use here.
@@ -259,17 +244,6 @@ static bool HasAtHook()
*/
Reference< XInterface > SAL_CALL create_MSAAServiceImpl( Reference< XComponentContext > const & /*xContext*/ ) SAL_THROW( () )
{
- bool bRunWithoutAt = getenv("SAL_FORCE_IACCESSIBLE2");
-
- if ( !HasAtHook() )
- {
- if ( !bRunWithoutAt )
- {
- SAL_INFO("iacc2", "Apparently no running AT -> not enabling IAccessible2 integration");
- return Reference< XMSAAService >();
- }
- }
-
Reference< XMSAAService > xAccMgr( new MSAAServiceImpl() );
AccessBridgeUpdateOldTopWindows( xAccMgr );