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

Enrico Troeger enrico at xfce.org
Sun Dec 21 02:12:04 CET 2008


Author: enrico
Date: 2008-12-21 01:12:04 +0000 (Sun, 21 Dec 2008)
New Revision: 6345

Modified:
   sion/trunk/ChangeLog
   sion/trunk/src/window.c
Log:
Minimise to tray if enabled.

Modified: sion/trunk/ChangeLog
===================================================================
--- sion/trunk/ChangeLog	2008-12-21 00:47:34 UTC (rev 6344)
+++ sion/trunk/ChangeLog	2008-12-21 01:12:04 UTC (rev 6345)
@@ -2,6 +2,8 @@
 
  * src/bookmark.c:
    Fix crash when parsing an URI without a proper scheme (bug #4730).
+ * src/window.c:
+   Minimise to tray if enabled.
 
 
 2008-12-19  Enrico Tröger  <enrico(at)xfce(dot)org>

Modified: sion/trunk/src/window.c
===================================================================
--- sion/trunk/src/window.c	2008-12-21 00:47:34 UTC (rev 6344)
+++ sion/trunk/src/window.c	2008-12-21 01:12:04 UTC (rev 6345)
@@ -122,6 +122,20 @@
 }
 
 
+static gboolean sion_window_state_event(GtkWidget *widget, GdkEventWindowState *event)
+{
+	SionWindowPrivate *priv = SION_WINDOW_GET_PRIVATE(widget);
+
+	if ((event->new_window_state & GDK_WINDOW_STATE_ICONIFIED) &&
+		sion_settings_get_boolean(priv->settings, "show-trayicon"))
+	{
+		gtk_widget_hide(widget);
+	}
+
+	return FALSE;
+}
+
+
 static gboolean sion_window_delete_event(GtkWidget *widget, GdkEventAny *event)
 {
 	SionWindowPrivate *priv = SION_WINDOW_GET_PRIVATE(widget);
@@ -139,12 +153,13 @@
 		sion_settings_set_geometry(priv->settings, geo, 5);
 	}
 	gtk_widget_destroy(priv->tree_popup_menu);
+	gtk_widget_destroy(priv->trayicon_popup_menu);
+	gtk_widget_destroy(priv->swin_treeview);
+	gtk_widget_destroy(priv->swin_iconview);
+	gtk_widget_destroy(priv->toolbar);
 	g_object_unref(priv->action_group);
 	g_object_unref(priv->trayicon);
 	g_object_unref(priv->trayicon_popup_menu);
-	g_object_unref(priv->toolbar);
-	g_object_unref(priv->swin_treeview);
-	g_object_unref(priv->swin_iconview);
 	g_object_unref(priv->backend_gvfs);
 
 	return FALSE;
@@ -155,6 +170,7 @@
 {
 	GtkWidgetClass *gtkwidget_class = GTK_WIDGET_CLASS(klass);
 	gtkwidget_class->delete_event = sion_window_delete_event;
+	gtkwidget_class->window_state_event = sion_window_state_event;
 
 	parent_class =(GtkWindowClass*)g_type_class_peek(GTK_TYPE_WINDOW);
 	g_type_class_add_private((gpointer)klass, sizeof(SionWindowPrivate));
@@ -191,7 +207,10 @@
 	if (gtk_window_is_active(window))
 		gtk_widget_hide(GTK_WIDGET(window));
 	else
+	{
+		gtk_window_deiconify(window);
 		gtk_window_present(window);
+	}
 }
 
 




More information about the Goodies-commits mailing list