summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2013-11-29 23:03:37 +0100
committerMichael Stahl <mstahl@redhat.com>2013-12-03 20:41:01 +0100
commit36dd638c53188b7606484f31d6a4cd6170850083 (patch)
treeb1e51908a98cef767a98ff932712aedeb3538cd7 /vcl
parentdcbf2c405870bdf8d7f94e1ea64c91ce685c22e4 (diff)
vcl: check if AT is running before loading the library
... which should result in faster startup if it's disabled. Change-Id: I39774b0a56f186d08270c2f17b2b20a823f21dc2 (cherry picked from commit b44ed4c408d92f7a1a3f2390c056d518c137ddd0)
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/app/svdata.cxx33
-rw-r--r--vcl/win/source/window/salframe.cxx10
2 files changed, 33 insertions, 10 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: */