From a393dea07a3c7472725de3b236c8c3bce446d1ff Mon Sep 17 00:00:00 2001 From: hiro Date: Fri, 16 Jan 2015 09:59:48 +0000 Subject: win32: fixed a bug that maximized state was unset on minimize. git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@3459 ee746299-78ed-0310-b773-934348b2243d --- ChangeLog | 5 +++++ src/mainwindow.c | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/ChangeLog b/ChangeLog index c575fbf0..6c4cdb3a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2015-01-16 + + * src/mainwindow.c: main_window_window_state_cb(): + win32: fixed a bug that maximized state was unset on minimize. + 2014-12-12 * libsylph/procmime.[ch] diff --git a/src/mainwindow.c b/src/mainwindow.c index c601b32e..2dc03c66 100644 --- a/src/mainwindow.c +++ b/src/mainwindow.c @@ -3242,13 +3242,25 @@ static gboolean main_window_window_state_cb(GtkWidget *widget, MainWindow *mainwin = (MainWindow *)data; gboolean minimized = FALSE; + debug_print("main_window_window_state_cb\n"); + if ((event->changed_mask & GDK_WINDOW_STATE_MAXIMIZED) != 0) { if ((event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED) != 0) { debug_print("main_window_window_state_cb: maximized\n"); prefs_common.mainwin_maximized = TRUE; } else { debug_print("main_window_window_state_cb: unmaximized\n"); +#ifdef G_OS_WIN32 + if ((event->changed_mask & GDK_WINDOW_STATE_ICONIFIED) != 0 && + (event->new_window_state & GDK_WINDOW_STATE_ICONIFIED) != 0) { + debug_print("main_window_window_state_cb: unmaximized by minimize\n"); + /* don't change mainwin_maximized */ + } else { + prefs_common.mainwin_maximized = FALSE; + } +#else prefs_common.mainwin_maximized = FALSE; +#endif } } if ((event->changed_mask & GDK_WINDOW_STATE_ICONIFIED) != 0) { @@ -3275,6 +3287,7 @@ static gboolean main_window_window_state_cb(GtkWidget *widget, if (minimized && prefs_common.show_trayicon && prefs_common.minimize_to_tray) { gtk_window_set_skip_taskbar_hint(GTK_WINDOW(widget), TRUE); + debug_print("main_window_window_state_cb: hide window\n"); gtk_widget_hide(widget); #else if (mainwin->window_hidden && @@ -3283,6 +3296,10 @@ static gboolean main_window_window_state_cb(GtkWidget *widget, #endif } else if (!mainwin->window_hidden) { gtk_window_set_skip_taskbar_hint(GTK_WINDOW(widget), FALSE); +#ifdef G_OS_WIN32 + if (prefs_common.mainwin_maximized) + gtk_window_maximize(GTK_WINDOW(widget)); +#endif } return FALSE; -- cgit v1.2.3