summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephan Bergmann <stephan.bergmann@allotropia.de>2024-01-16 14:59:16 +0100
committerStephan Bergmann <stephan.bergmann@allotropia.de>2024-01-17 11:03:24 +0100
commitb5ed6906bd215f1338ae49e33d484350a26cb25f (patch)
tree149bd81d76ede5c0d7833bb20aa273dceb0db676
parent50b14f26de63d22b9ad05ca51d9edc53e024e75e (diff)
EnableAttachThreadInputHack can be a normal bootstrap variable
(For simplicity, only treat a value of exactly "true" as enabling it, not whatever else the original Boost property_tree code might have considered as equivalent to "true".) Change-Id: I616c5d838d2b9046b3a92e01ebb68fc6deb37024 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162189 Tested-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
-rw-r--r--vcl/win/window/salframe.cxx39
1 files changed, 6 insertions, 33 deletions
diff --git a/vcl/win/window/salframe.cxx b/vcl/win/window/salframe.cxx
index ab6db6aa41b3..ccc4ed70df75 100644
--- a/vcl/win/window/salframe.cxx
+++ b/vcl/win/window/salframe.cxx
@@ -33,12 +33,7 @@
#include <comphelper/windowserrorstring.hxx>
-#include <fstream>
-#include <boost/property_tree/ptree.hpp>
-#include <boost/property_tree/ini_parser.hpp>
-#include <osl/file.hxx>
-#include <osl/process.h>
-
+#include <rtl/bootstrap.hxx>
#include <rtl/string.h>
#include <rtl/ustring.h>
#include <sal/log.hxx>
@@ -1943,33 +1938,11 @@ void WinSalFrame::SetAlwaysOnTop( bool bOnTop )
static bool EnableAttachThreadInputHack()
{
- OUString aBootstrapUri;
- if (osl_getProcessWorkingDir(&aBootstrapUri.pData) != osl_Process_E_None)
- return false;
- aBootstrapUri += "/bootstrap.ini";
-
- OUString aSystemFileName;
- if (osl::FileBase::getSystemPathFromFileURL(aBootstrapUri, aSystemFileName) != osl::FileBase::E_None)
- return false;
- if (aSystemFileName.getLength() > MAX_PATH)
- return false;
-
- // this uses the Boost ini parser, instead of tools::Config, as we already use it to read other
- // values from bootstrap.ini in desktop/win32/source/loader.cxx, because that watchdog process
- // can't access LO libs. This way the handling is consistent.
- try
- {
- boost::property_tree::ptree pt;
- std::ifstream aFile(o3tl::toW(aSystemFileName.getStr()));
- boost::property_tree::ini_parser::read_ini(aFile, pt);
- const bool bEnabled = pt.get("Win32.EnableAttachThreadInputHack", false);
- SAL_WARN_IF(bEnabled, "vcl", "AttachThreadInput hack is enabled. Watch out for deadlocks!");
- return bEnabled;
- }
- catch (...)
- {
- return false;
- }
+ OUString s("$EnableAttachThreadInputHack");
+ rtl::Bootstrap::expandMacros(s);
+ const bool bEnabled = s == "true";
+ SAL_WARN_IF(bEnabled, "vcl", "AttachThreadInput hack is enabled. Watch out for deadlocks!");
+ return bEnabled;
}
static void ImplSalToTop( HWND hWnd, SalFrameToTop nFlags )