[Goodies-commits] r6436 - in sion/trunk: . src

Enrico Troeger enrico at xfce.org
Mon Jan 12 00:08:47 CET 2009


Author: enrico
Date: 2009-01-11 23:08:47 +0000 (Sun, 11 Jan 2009)
New Revision: 6436

Modified:
   sion/trunk/ChangeLog
   sion/trunk/src/window.c
Log:
Fix 'Minimize to tray'.

Modified: sion/trunk/ChangeLog
===================================================================
--- sion/trunk/ChangeLog	2009-01-11 23:08:41 UTC (rev 6435)
+++ sion/trunk/ChangeLog	2009-01-11 23:08:47 UTC (rev 6436)
@@ -9,6 +9,8 @@
  * src/bookmarkeditdialog.c:
    Hide auto connect label also for the Connect dialog.
    Fix mnemonics.
+ * src/window.c:
+   Fix 'Minimize to tray'.
 
 
 2009-01-10  Enrico Tröger  <enrico(at)xfce(dot)org>

Modified: sion/trunk/src/window.c
===================================================================
--- sion/trunk/src/window.c	2009-01-11 23:08:41 UTC (rev 6435)
+++ sion/trunk/src/window.c	2009-01-11 23:08:47 UTC (rev 6436)
@@ -127,13 +127,35 @@
 static gboolean sion_window_state_event(GtkWidget *widget, GdkEventWindowState *event)
 {
 	SionWindowPrivate *priv = SION_WINDOW_GET_PRIVATE(widget);
+	gboolean show_trayicon = sion_settings_get_boolean(priv->settings, "show-trayicon");
 
-	if ((event->new_window_state & GDK_WINDOW_STATE_ICONIFIED) &&
-		sion_settings_get_boolean(priv->settings, "show-trayicon"))
+	if (show_trayicon)
 	{
-		gtk_widget_hide(widget);
+		gboolean window_hidden = FALSE;
+		if (event->changed_mask & GDK_WINDOW_STATE_ICONIFIED)
+		{
+			if (event->new_window_state & GDK_WINDOW_STATE_ICONIFIED)
+				window_hidden = TRUE;
+			else
+				window_hidden = FALSE;
+		}
+		if (event->changed_mask & GDK_WINDOW_STATE_WITHDRAWN)
+		{
+			if (event->new_window_state & GDK_WINDOW_STATE_WITHDRAWN)
+				window_hidden = TRUE;
+			else
+				window_hidden = FALSE;
+		}
+
+		if (window_hidden && show_trayicon)
+		{
+			gtk_window_set_skip_taskbar_hint(GTK_WINDOW(widget), TRUE);
+		}
+		else if (! window_hidden)
+		{
+			gtk_window_set_skip_taskbar_hint(GTK_WINDOW(widget), FALSE);
+		}
 	}
-
 	return FALSE;
 }
 




More information about the Goodies-commits mailing list