aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/xwin/winmultiwindowwndproc.c
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/hw/xwin/winmultiwindowwndproc.c')
-rw-r--r--xorg-server/hw/xwin/winmultiwindowwndproc.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/xorg-server/hw/xwin/winmultiwindowwndproc.c b/xorg-server/hw/xwin/winmultiwindowwndproc.c
index f4313d353..3142776b5 100644
--- a/xorg-server/hw/xwin/winmultiwindowwndproc.c
+++ b/xorg-server/hw/xwin/winmultiwindowwndproc.c
@@ -886,7 +886,22 @@ winTopLevelWindowProc (HWND hwnd, UINT message,
& ~WS_CAPTION & ~WS_SIZEBOX);
winUpdateWindowPosition (hwnd, FALSE, &zstyle);
- SetForegroundWindow (hwnd);
+
+ {
+ WinXWMHints hints;
+ if (winMultiWindowGetWMHints(pWin, &hints))
+ {
+ /*
+ 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);
+ }
+ }
+ }
}
wmMsg.msg = WM_WM_MAP3;
}