[Xfce4-commits] <xfce4-taskmanager:master> Hide inside the notification area

Mike Massonnet noreply at xfce.org
Sun May 23 20:58:08 CEST 2010


Updating branch refs/heads/master
         to 0a8e9b2ae529bafe4c35089e2aa841f5fefa3215 (commit)
       from 5eaf309cfd167d278ce059e498e8f3b28a63f30a (commit)

commit 0a8e9b2ae529bafe4c35089e2aa841f5fefa3215
Author: Mike Massonnet <mmassonnet at xfce.org>
Date:   Sun May 23 20:57:25 2010 +0200

    Hide inside the notification area

 src/main.c           |   13 +++++++++++++
 src/process-window.c |    6 ++++++
 2 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/src/main.c b/src/main.c
index 9503ec7..f4dfb91 100644
--- a/src/main.c
+++ b/src/main.c
@@ -21,9 +21,19 @@
 
 static XtmSettings *settings;
 static GtkWidget *window;
+static GtkStatusIcon *status_icon;
 static XtmTaskManager *task_manager;
 static gboolean timeout = 0;
 
+static void
+status_icon_activated ()
+{
+	if (!(GTK_WIDGET_VISIBLE (window)))
+		gtk_widget_show (window);
+	else
+		gtk_widget_hide (window);
+}
+
 static gboolean
 init_timeout (void)
 {
@@ -79,6 +89,9 @@ int main (int argc, char *argv[])
 
 	settings = xtm_settings_get_default ();
 
+	status_icon = gtk_status_icon_new_from_icon_name ("utilities-system-monitor");
+	g_signal_connect (status_icon, "activate", G_CALLBACK (status_icon_activated), NULL);
+
 	window = xtm_process_window_new ();
 	gtk_widget_show (window);
 
diff --git a/src/process-window.c b/src/process-window.c
index da40c7e..7e11da8 100644
--- a/src/process-window.c
+++ b/src/process-window.c
@@ -395,14 +395,20 @@ xtm_process_window_show (GtkWidget *widget)
 	g_return_if_fail (GTK_IS_WIDGET (widget));
 	g_return_if_fail (GTK_IS_WIDGET (XTM_PROCESS_WINDOW (widget)->priv->window));
 	gtk_widget_show (XTM_PROCESS_WINDOW (widget)->priv->window);
+	gtk_window_present (GTK_WINDOW (XTM_PROCESS_WINDOW (widget)->priv->window));
+	GTK_WIDGET_SET_FLAGS (widget, GTK_VISIBLE);
 }
 
 static void
 xtm_process_window_hide (GtkWidget *widget)
 {
+	gint winx, winy;
 	g_return_if_fail (GTK_IS_WIDGET (widget));
 	g_return_if_fail (GTK_IS_WIDGET (XTM_PROCESS_WINDOW (widget)->priv->window));
+	gtk_window_get_position (GTK_WINDOW (XTM_PROCESS_WINDOW (widget)->priv->window), &winx, &winy);
 	gtk_widget_hide (XTM_PROCESS_WINDOW (widget)->priv->window);
+	gtk_window_move (GTK_WINDOW (XTM_PROCESS_WINDOW (widget)->priv->window), winx, winy);
+	GTK_WIDGET_UNSET_FLAGS (widget, GTK_VISIBLE);
 }
 
 GtkTreeModel *



More information about the Xfce4-commits mailing list