Bug 557212 - Problem with which window gains focus and is visible

2008-11-04  Tor Lillqvist  <tml@novell.com>

	Bug 557212 - Problem with which window gains focus and is visible

	* gdk/win32/gdkevents-win32.c (ensure_stacking_on_activate_app):
	Only do the restacking for the active window of the
	application. Seems to fix the problem.

	(gdk_event_translate): Only call ensure_stacking_on_activate_app()
	when the application is being activated, not deactivated.


svn path=/trunk/; revision=21756
This commit is contained in:
Tor Lillqvist 2008-11-03 22:38:29 +00:00 committed by Tor Lillqvist
parent d06e67023c
commit 74aeac9e66
2 changed files with 17 additions and 6 deletions

View File

@ -1,3 +1,14 @@
2008-11-04 Tor Lillqvist <tml@novell.com>
Bug 557212 - Problem with which window gains focus and is visible
* gdk/win32/gdkevents-win32.c (ensure_stacking_on_activate_app):
Only do the restacking for the active window of the
application. Seems to fix the problem.
(gdk_event_translate): Only call ensure_stacking_on_activate_app()
when the application is being activated, not deactivated.
2008-11-03 Matthias Clasen <mclasen@redhat.com> 2008-11-03 Matthias Clasen <mclasen@redhat.com>
* gtk/gtk.symbols: * gtk/gtk.symbols:

View File

@ -2214,12 +2214,12 @@ ensure_stacking_on_activate_app (MSG *msg,
} }
if (IsWindowVisible (msg->hwnd) && if (IsWindowVisible (msg->hwnd) &&
gdk_win32_handle_table_lookup (GetActiveWindow ())) msg->hwnd == GetActiveWindow ())
{ {
/* This window is not a transient-type window and this or some /* This window is not a transient-type window and it is the
* other window in this app is the active window. Make sure this * activated window. Make sure this window is as visible as
* window is as visible as possible, just below the lowest * possible, just below the lowest transient-type window of this
* transient-type window of this app. * app.
*/ */
HWND rover; HWND rover;
@ -3680,7 +3680,7 @@ gdk_event_translate (MSG *msg,
msg->wParam ? "YES" : "NO", msg->wParam ? "YES" : "NO",
(gint64) msg->lParam)); (gint64) msg->lParam));
if (GDK_WINDOW_IS_MAPPED (window)) if (msg->wParam && GDK_WINDOW_IS_MAPPED (window))
ensure_stacking_on_activate_app (msg, window); ensure_stacking_on_activate_app (msg, window);
break; break;