win32: on focus restore the window if iconified

If the window is iconified we want to restore the window
to get the proper size instead of showing it normal which
would change the size of the window.

https://bugzilla.gnome.org/show_bug.cgi?id=698652
This commit is contained in:
Yevgen Muntyan
2016-02-08 09:24:12 +01:00
committed by Ignacio Casal Quinteiro
parent 99db4164bc
commit 2299a98a5d

View File

@ -3702,19 +3702,26 @@ void
gdk_window_focus (GdkWindow *window,
guint32 timestamp)
{
GdkWindowObject *private;
g_return_if_fail (GDK_IS_WINDOW (window));
if (GDK_WINDOW_DESTROYED (window))
return;
private = (GdkWindowObject *)window;
GDK_NOTE (MISC, g_print ("gdk_window_focus: %p: %s\n",
GDK_WINDOW_HWND (window),
_gdk_win32_window_state_to_string (((GdkWindowObject *) window)->state)));
if (((GdkWindowObject *) window)->state & GDK_WINDOW_STATE_MAXIMIZED)
if (private->state & GDK_WINDOW_STATE_MAXIMIZED)
ShowWindow (GDK_WINDOW_HWND (window), SW_SHOWMAXIMIZED);
else if (private->state & GDK_WINDOW_STATE_ICONIFIED)
ShowWindow (GDK_WINDOW_HWND (window), SW_RESTORE);
else
ShowWindow (GDK_WINDOW_HWND (window), SW_SHOWNORMAL);
SetFocus (GDK_WINDOW_HWND (window));
}