diff --git a/ChangeLog b/ChangeLog index d30f1fe025..705ce561ae 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-03-23 Cody Russell + + * gdk/win32/gdkevents-win32.c (show_window_recurse): + Check window state for GDK_WINDOW_STATE_ICONIFIED before doing + ShowWindow (SW_RESTORE). This fixes a problem where tearing off + menus from a maximized window would force the window to restore + its size. (#518846) + 2008-03-23 Johan Dahlin * gtk/gtk-builder-convert: diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c index 7841171620..3f4fdd5547 100644 --- a/gdk/win32/gdkevents-win32.c +++ b/gdk/win32/gdkevents-win32.c @@ -1297,9 +1297,16 @@ show_window_recurse (GdkWindow *window, gboolean hide_window) if (GDK_WINDOW_IS_MAPPED (window)) { if (!hide_window) - ShowWindow (GDK_WINDOW_HWND (window), SW_RESTORE); + { + if (GDK_WINDOW_OBJECT (window)->state & GDK_WINDOW_STATE_ICONIFIED) + { + ShowWindow (GDK_WINDOW_HWND (window), SW_RESTORE); + } + } else - ShowWindow (GDK_WINDOW_HWND (window), SW_MINIMIZE); + { + ShowWindow (GDK_WINDOW_HWND (window), SW_MINIMIZE); + } } impl->changing_state = FALSE;