diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2014-10-30 09:12:32 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2014-10-30 09:12:32 +0000 |
commit | 95ac4907de609f33f0da8e03b44a14f94613f03e (patch) | |
tree | 04d74147eff1c4ae9a73070a9b38cdaf7dbb2d26 /src/mainwindow.c | |
parent | 64e7e1880f5350fe6ddebd81612f4d219608dfd9 (diff) |
fixed 'Minimize to tray icon' option notworking on Windows.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@3428 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src/mainwindow.c')
-rw-r--r-- | src/mainwindow.c | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/mainwindow.c b/src/mainwindow.c index 3995c322..53284edd 100644 --- a/src/mainwindow.c +++ b/src/mainwindow.c @@ -3236,6 +3236,7 @@ static gboolean main_window_window_state_cb(GtkWidget *widget, gpointer data) { MainWindow *mainwin = (MainWindow *)data; + gboolean minimized = FALSE; if ((event->changed_mask & GDK_WINDOW_STATE_MAXIMIZED) != 0) { if ((event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED) != 0) @@ -3244,23 +3245,32 @@ static gboolean main_window_window_state_cb(GtkWidget *widget, prefs_common.mainwin_maximized = FALSE; } if ((event->changed_mask & GDK_WINDOW_STATE_ICONIFIED) != 0) { - if ((event->new_window_state & GDK_WINDOW_STATE_ICONIFIED) != 0) + if ((event->new_window_state & GDK_WINDOW_STATE_ICONIFIED) != 0) { + debug_print("main_window_window_state_cb: iconified\n"); + minimized = TRUE; mainwin->window_hidden = TRUE; - else + } else { + debug_print("main_window_window_state_cb: deiconified\n"); mainwin->window_hidden = FALSE; + } } if ((event->changed_mask & GDK_WINDOW_STATE_WITHDRAWN) != 0) { - if ((event->new_window_state & GDK_WINDOW_STATE_WITHDRAWN) != 0) + if ((event->new_window_state & GDK_WINDOW_STATE_WITHDRAWN) != 0) { + debug_print("main_window_window_state_cb: withdrawn\n"); mainwin->window_hidden = TRUE; - else + } else { + debug_print("main_window_window_state_cb: unwithdrawn\n"); mainwin->window_hidden = FALSE; + } } - if (mainwin->window_hidden && - prefs_common.show_trayicon && prefs_common.minimize_to_tray) + if (minimized && + prefs_common.show_trayicon && prefs_common.minimize_to_tray) { gtk_window_set_skip_taskbar_hint(GTK_WINDOW(widget), TRUE); - else if (!mainwin->window_hidden) + gtk_widget_hide(widget); + } else if (!mainwin->window_hidden) { gtk_window_set_skip_taskbar_hint(GTK_WINDOW(widget), FALSE); + } return FALSE; } |