aboutsummaryrefslogtreecommitdiff
path: root/src/mainwindow.c
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2014-10-30 09:12:32 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2014-10-30 09:12:32 +0000
commit95ac4907de609f33f0da8e03b44a14f94613f03e (patch)
tree04d74147eff1c4ae9a73070a9b38cdaf7dbb2d26 /src/mainwindow.c
parent64e7e1880f5350fe6ddebd81612f4d219608dfd9 (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.c24
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;
}