[Libreoffice-commits] core.git: Branch 'libreoffice-5-3' - shell/source
Thomas Beck
thomas.beck at cib.de
Tue May 16 09:27:56 UTC 2017
shell/source/win32/SysShExec.cxx | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
New commits:
commit 45b2e11a6756ed322cda932142c31366fc2b6da6
Author: Thomas Beck <thomas.beck at cib.de>
Date: Wed May 3 12:57:11 2017 +0200
tdf#107587 Opening Hyperlink opens Browser in Background.
Added neccessary WinAPI calls to bring called window into the
Foreground.
Change-Id: I080968f655e2230d1a514b3ef91bf916d904d844
Reviewed-on: https://gerrit.libreoffice.org/37196
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
(cherry picked from commit ad711bc6e2cc35c2ed114fff15008d5bbcfcf21c)
Reviewed-on: https://gerrit.libreoffice.org/37266
Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
diff --git a/shell/source/win32/SysShExec.cxx b/shell/source/win32/SysShExec.cxx
index c69d3f2a0c59..6cb31942ba02 100644
--- a/shell/source/win32/SysShExec.cxx
+++ b/shell/source/win32/SysShExec.cxx
@@ -323,6 +323,28 @@ void SAL_CALL CSysShExec::execute( const OUString& aCommand, const OUString& aPa
static_cast< XSystemShellExecute* >(this),
psxErr);
}
+ else
+ {
+ // Get Permission make changes to the Window of the created Process
+ HWND procHandle = 0;
+ DWORD procId = GetProcessId(sei.hProcess);
+ AllowSetForegroundWindow(procId);
+
+ // Get the handle of the created Window
+ DWORD check = 0;
+ GetWindowThreadProcessId(procHandle, &check);
+ SAL_WARN_IF(check != procId, "shell", "Could not get handle of process called by shell.");
+
+ // Move created Window into the foreground
+ if(procHandle != 0)
+ {
+ SetForegroundWindow(procHandle);
+ SetActiveWindow(procHandle);
+ }
+ }
+
+ // Close the handle for the created childprocess when we are done
+ CloseHandle(sei.hProcess);
}
// XServiceInfo
More information about the Libreoffice-commits
mailing list