mirror of
https://github.com/nextcloud/desktop.git
synced 2025-10-26 11:17:43 +00:00
parent
56a25ed6e5
commit
4da684b95c
5
changelog/unreleased/7774
Normal file
5
changelog/unreleased/7774
Normal file
@ -0,0 +1,5 @@
|
||||
Bugfix: On Windows the share dialog somtimes does not open as the top most window
|
||||
|
||||
We now ensure that the our dialogs are correctly raised.
|
||||
|
||||
https://github.com/owncloud/client/issues/7774
|
||||
@ -1088,6 +1088,22 @@ void ownCloudGui::raiseDialog(QWidget *raiseWidget)
|
||||
False, // propagate
|
||||
SubstructureRedirectMask | SubstructureNotifyMask,
|
||||
&e);
|
||||
|
||||
#elif defined(Q_OS_WIN)
|
||||
// Windows disallows raising a Window when you're not the active application.
|
||||
// Use a common hack to attach to the active application
|
||||
const auto activeProcessId = GetWindowThreadProcessId(GetForegroundWindow(), nullptr);
|
||||
if (activeProcessId != qApp->applicationPid()) {
|
||||
const auto threadId = GetCurrentThreadId();
|
||||
// don't step here with a debugger...
|
||||
if (AttachThreadInput(threadId, activeProcessId, true))
|
||||
{
|
||||
const auto hwnd = reinterpret_cast<HWND>(raiseWidget->winId());
|
||||
SetForegroundWindow(hwnd);
|
||||
SetWindowPos(hwnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
|
||||
AttachThreadInput(threadId, activeProcessId, false);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user