vcl/win/window/salframe.cxx |   39 ++++++---------------------------------
 1 file changed, 6 insertions(+), 33 deletions(-)

New commits:
commit b5ed6906bd215f1338ae49e33d484350a26cb25f
Author:     Stephan Bergmann <stephan.bergm...@allotropia.de>
AuthorDate: Tue Jan 16 14:59:16 2024 +0100
Commit:     Stephan Bergmann <stephan.bergm...@allotropia.de>
CommitDate: Wed Jan 17 11:03:24 2024 +0100

    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.bergm...@allotropia.de>
    Reviewed-by: Stephan Bergmann <stephan.bergm...@allotropia.de>

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 )

Reply via email to