diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2015-01-16 09:59:48 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2015-01-16 09:59:48 +0000 |
commit | a393dea07a3c7472725de3b236c8c3bce446d1ff (patch) | |
tree | 3857d7b27f489e525f9999953b178104df5adebd /src | |
parent | 1fcff6946e9a2579514539c73a747519b2c19680 (diff) |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/mainwindow.c | 17 |
1 files changed, 17 insertions, 0 deletions
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; |