diff options
author | John Ehresman <jpe@wingware.com> | 2006-02-09 03:20:56 +0000 |
---|---|---|
committer | Tor Lillqvist <tml@src.gnome.org> | 2006-02-09 03:20:56 +0000 |
commit | e847ace84b042d27bd54cc79243f70a0f167e909 (patch) | |
tree | 6cc95d725a373f345309730319ddaae9b21f1b52 | |
parent | c502c9aeabc830a2021bce60e0dc4cdfde9a97a1 (diff) | |
download | gtk+-e847ace84b042d27bd54cc79243f70a0f167e909.tar.gz |
gdk/win32/gdkevents-win32.c (gdk_event_translate) <WM_MOUSEACTIVATE> Call
2006-02-08 John Ehresman <jpe@wingware.com>
* gdk/win32/gdkevents-win32.c (gdk_event_translate)
<WM_MOUSEACTIVATE>
* gdk/win32/gdkwindow-win32.c (show_window_internal)
(gdk_window_raise): Call SetWindowPos() instead of
SetForegroundWindow() or BringWindowToTop() if the window
shouldn't accept focus. (#327375)
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | ChangeLog.pre-2-10 | 9 | ||||
-rw-r--r-- | gdk/win32/gdkevents-win32.c | 3 | ||||
-rw-r--r-- | gdk/win32/gdkwindow-win32.c | 20 |
4 files changed, 38 insertions, 3 deletions
@@ -1,5 +1,14 @@ 2006-02-08 John Ehresman <jpe@wingware.com> + * gdk/win32/gdkevents-win32.c (gdk_event_translate) + <WM_MOUSEACTIVATE> + * gdk/win32/gdkwindow-win32.c (show_window_internal) + (gdk_window_raise): Call SetWindowPos() instead of + SetForegroundWindow() or BringWindowToTop() if the window + shouldn't accept focus. (#327375) + +2006-02-08 John Ehresman <jpe@wingware.com> + * gdk/win32/gdkwindow-win32.c: Let gdk_window_set_decorations() take precedence over anything derived from hints. Restructure related code and logic, add some new helper functions. (#327217) diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index b0ff70ee44..5ce8f4c50c 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,5 +1,14 @@ 2006-02-08 John Ehresman <jpe@wingware.com> + * gdk/win32/gdkevents-win32.c (gdk_event_translate) + <WM_MOUSEACTIVATE> + * gdk/win32/gdkwindow-win32.c (show_window_internal) + (gdk_window_raise): Call SetWindowPos() instead of + SetForegroundWindow() or BringWindowToTop() if the window + shouldn't accept focus. (#327375) + +2006-02-08 John Ehresman <jpe@wingware.com> + * gdk/win32/gdkwindow-win32.c: Let gdk_window_set_decorations() take precedence over anything derived from hints. Restructure related code and logic, add some new helper functions. (#327217) diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c index e47d8fd73c..53ee6c4a6b 100644 --- a/gdk/win32/gdkevents-win32.c +++ b/gdk/win32/gdkevents-win32.c @@ -2921,7 +2921,8 @@ gdk_event_translate (MSG *msg, break; case WM_MOUSEACTIVATE: - if (gdk_window_get_window_type (window) == GDK_WINDOW_TEMP) + if (gdk_window_get_window_type (window) == GDK_WINDOW_TEMP + || !((GdkWindowObject *)window)->accept_focus) { *ret_valp = MA_NOACTIVATE; return_val = TRUE; diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c index 57105c597a..cf9a8ebcfd 100644 --- a/gdk/win32/gdkwindow-win32.c +++ b/gdk/win32/gdkwindow-win32.c @@ -1072,7 +1072,14 @@ show_window_internal (GdkWindow *window, SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE); else if (GDK_WINDOW_TYPE (window) == GDK_WINDOW_TOPLEVEL || GDK_WINDOW_TYPE (window) == GDK_WINDOW_DIALOG) - SetForegroundWindow (GDK_WINDOW_HWND (window)); + { + if (focus_on_map && private->accept_focus) + SetForegroundWindow (GDK_WINDOW_HWND (window)); + else + SetWindowPos (GDK_WINDOW_HWND (window), HWND_TOP, + 0, 0, 0, 0, + SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE); + } else BringWindowToTop (GDK_WINDOW_HWND (window)); } @@ -1471,7 +1478,16 @@ gdk_window_raise (GdkWindow *window) GDK_NOTE (MISC, g_print ("gdk_window_raise: %p\n", GDK_WINDOW_HWND (window))); - API_CALL (BringWindowToTop, (GDK_WINDOW_HWND (window))); + if (GDK_WINDOW_TYPE (window) == GDK_WINDOW_TEMP) + API_CALL (SetWindowPos, (GDK_WINDOW_HWND (window), HWND_TOPMOST, + 0, 0, 0, 0, + SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE)); + else if (((GdkWindowObject *)window)->accept_focus) + API_CALL (BringWindowToTop, (GDK_WINDOW_HWND (window))); + else + API_CALL (SetWindowPos, (GDK_WINDOW_HWND (window), HWND_TOP, + 0, 0, 0, 0, + SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE)); } } |