diff options
author | Stephan Bergmann <stephan.bergmann@allotropia.de> | 2024-01-16 14:59:16 +0100 |
---|---|---|
committer | Stephan Bergmann <stephan.bergmann@allotropia.de> | 2024-01-17 11:03:24 +0100 |
commit | b5ed6906bd215f1338ae49e33d484350a26cb25f (patch) | |
tree | 149bd81d76ede5c0d7833bb20aa273dceb0db676 | |
parent | 50b14f26de63d22b9ad05ca51d9edc53e024e75e (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.cxx | 39 |
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 ) |