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 XtmSettings *settings;
|
||||||
static GtkWidget *window;
|
static GtkWidget *window;
|
||||||
|
static GtkStatusIcon *status_icon;
|
||||||
static XtmTaskManager *task_manager;
|
static XtmTaskManager *task_manager;
|
||||||
static gboolean timeout = 0;
|
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
|
static gboolean
|
||||||
init_timeout (void)
|
init_timeout (void)
|
||||||
{
|
{
|
||||||
@@ -79,6 +89,9 @@ int main (int argc, char *argv[])
|
|||||||
|
|
||||||
settings = xtm_settings_get_default ();
|
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 ();
|
window = xtm_process_window_new ();
|
||||||
gtk_widget_show (window);
|
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 (widget));
|
||||||
g_return_if_fail (GTK_IS_WIDGET (XTM_PROCESS_WINDOW (widget)->priv->window));
|
g_return_if_fail (GTK_IS_WIDGET (XTM_PROCESS_WINDOW (widget)->priv->window));
|
||||||
gtk_widget_show (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
|
static void
|
||||||
xtm_process_window_hide (GtkWidget *widget)
|
xtm_process_window_hide (GtkWidget *widget)
|
||||||
{
|
{
|
||||||
|
gint winx, winy;
|
||||||
g_return_if_fail (GTK_IS_WIDGET (widget));
|
g_return_if_fail (GTK_IS_WIDGET (widget));
|
||||||
g_return_if_fail (GTK_IS_WIDGET (XTM_PROCESS_WINDOW (widget)->priv->window));
|
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_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 *
|
GtkTreeModel *
|
||||||
|
|||||||
Reference in New Issue
Block a user