diff options
author | RichardHitt <rbh00@netcom.com> | 2012-12-20 12:16:48 -0800 |
---|---|---|
committer | RichardHitt <rbh00@netcom.com> | 2012-12-20 12:16:48 -0800 |
commit | 3e85c2e820e905e64c4e01701e4fb0267661afca (patch) | |
tree | 395fefa8be9c648f6c3c4296d600ffbf1eeb78d8 | |
parent | a321793e9337291289d136f98755192c2902a4cc (diff) | |
parent | 52ffb02685d922696497e17f22fd15b3dc5b3916 (diff) |
Merge pull request #326 from TingPing/minimize
fix restoring previously maximized window from tray
-rw-r--r-- | src/fe-gtk/maingui.c | 8 | ||||
-rw-r--r-- | src/fe-gtk/plugin-tray.c | 4 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/fe-gtk/maingui.c b/src/fe-gtk/maingui.c index e5f79abd..ff8f6d69 100644 --- a/src/fe-gtk/maingui.c +++ b/src/fe-gtk/maingui.c @@ -498,10 +498,6 @@ fe_set_title (session *sess) static gboolean mg_windowstate_cb (GtkWindow *wid, GdkEventWindowState *event, gpointer userdata) { - prefs.hex_gui_win_state = 0; - if (event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED) - prefs.hex_gui_win_state = 1; - if ((event->changed_mask & GDK_WINDOW_STATE_ICONIFIED) && (event->new_window_state & GDK_WINDOW_STATE_ICONIFIED) && prefs.hex_gui_tray_minimize && !hextray_mode ()) @@ -510,6 +506,10 @@ mg_windowstate_cb (GtkWindow *wid, GdkEventWindowState *event, gpointer userdata gtk_window_deiconify (wid); } + prefs.hex_gui_win_state = 0; + if (event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED) + prefs.hex_gui_win_state = 1; + return FALSE; } diff --git a/src/fe-gtk/plugin-tray.c b/src/fe-gtk/plugin-tray.c index 07207a99..294920da 100644 --- a/src/fe-gtk/plugin-tray.c +++ b/src/fe-gtk/plugin-tray.c @@ -372,6 +372,7 @@ tray_toggle_visibility (gboolean force_hide) { static int x, y; static GdkScreen *screen; + static int maximized; GtkWindow *win; if (!sticon) @@ -396,12 +397,15 @@ tray_toggle_visibility (gboolean force_hide) { gtk_window_get_position (win, &x, &y); screen = gtk_window_get_screen (win); + maximized = prefs.hex_gui_win_state; gtk_widget_hide (GTK_WIDGET (win)); } else { gtk_window_set_screen (win, screen); gtk_window_move (win, x, y); + if (maximized) + gtk_window_maximize (win); gtk_widget_show (GTK_WIDGET (win)); gtk_window_present (win); } |