Hide inside the notification area
This commit is contained in:
13
src/main.c
13
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);
|
||||
|
||||
|
||||
@@ -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 *
|
||||
|
||||
Reference in New Issue
Block a user