[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