Commit d6dcde7a authored by Jon Turney's avatar Jon Turney
Browse files

hw/xwin: Stop assuming WS_EX_APPWINDOW style in WM_SHOWWINDOW


Signed-off-by: Jon Turney's avatarJon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: default avatarColin Harrison <colin.harrison@virgin.net>
parent 56e94403
...@@ -870,41 +870,36 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) ...@@ -870,41 +870,36 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
/* */ /* */
if (!pWin->overrideRedirect) { if (!pWin->overrideRedirect) {
HWND zstyle = HWND_NOTOPMOST;
/* Flag that this window needs to be made active when clicked */ /* Flag that this window needs to be made active when clicked */
SetProp(hwnd, WIN_NEEDMANAGE_PROP, (HANDLE) 1); SetProp(hwnd, WIN_NEEDMANAGE_PROP, (HANDLE) 1);
if (!(GetWindowLongPtr(hwnd, GWL_EXSTYLE) & WS_EX_APPWINDOW)) { /* Set the transient style flags */
HWND zstyle = HWND_NOTOPMOST; if (GetParent(hwnd))
SetWindowLongPtr(hwnd, GWL_STYLE,
/* Set the window extended style flags */ WS_POPUP | WS_OVERLAPPED | WS_SYSMENU |
SetWindowLongPtr(hwnd, GWL_EXSTYLE, WS_EX_APPWINDOW); WS_CLIPCHILDREN | WS_CLIPSIBLINGS);
/* Set the window standard style flags */
/* Set the transient style flags */ else
if (GetParent(hwnd)) SetWindowLongPtr(hwnd, GWL_STYLE,
SetWindowLongPtr(hwnd, GWL_STYLE, (WS_POPUP | WS_OVERLAPPEDWINDOW |
WS_POPUP | WS_OVERLAPPED | WS_SYSMENU | WS_CLIPCHILDREN | WS_CLIPSIBLINGS)
WS_CLIPCHILDREN | WS_CLIPSIBLINGS); & ~WS_CAPTION & ~WS_SIZEBOX);
/* Set the window standard style flags */
else winUpdateWindowPosition(hwnd, &zstyle);
SetWindowLongPtr(hwnd, GWL_STYLE,
(WS_POPUP | WS_OVERLAPPEDWINDOW | {
WS_CLIPCHILDREN | WS_CLIPSIBLINGS) WinXWMHints hints;
& ~WS_CAPTION & ~WS_SIZEBOX);
if (winMultiWindowGetWMHints(pWin, &hints)) {
winUpdateWindowPosition(hwnd, &zstyle); /*
Give the window focus, unless it has an InputHint
{ which is FALSE (this is used by e.g. glean to
WinXWMHints hints; avoid every test window grabbing the focus)
*/
if (winMultiWindowGetWMHints(pWin, &hints)) { if (!((hints.flags & InputHint) && (!hints.input))) {
/* SetForegroundWindow(hwnd);
Give the window focus, unless it has an InputHint
which is FALSE (this is used by e.g. glean to
avoid every test window grabbing the focus)
*/
if (!((hints.flags & InputHint) && (!hints.input))) {
SetForegroundWindow(hwnd);
}
} }
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment