shell/source/win32/SysShExec.cxx |   22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

New commits:
commit ad711bc6e2cc35c2ed114fff15008d5bbcfcf21c
Author: Thomas Beck <[email protected]>
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 <[email protected]>
    Reviewed-by: Thorsten Behrens <[email protected]>

diff --git a/shell/source/win32/SysShExec.cxx b/shell/source/win32/SysShExec.cxx
index 274f000f05bb..59243289ad1e 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
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to