From a633e401201b408b8ef199dc21e6a0a49492b2c7 Mon Sep 17 00:00:00 2001 From: Sapphire Becker Date: Tue, 28 Jun 2016 13:57:30 -0700 Subject: [PATCH] Added allow-blinking property to allow or disallow blinking on urgent messages. --- plugins/tasklist/tasklist-widget.c | 22 +++++++++++++++++++++- plugins/tasklist/tasklist.c | 1 + 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/plugins/tasklist/tasklist-widget.c b/plugins/tasklist/tasklist-widget.c index 53174a9..2454fe9 100644 --- a/plugins/tasklist/tasklist-widget.c +++ b/plugins/tasklist/tasklist-widget.c @@ -92,6 +92,7 @@ enum PROP_WINDOW_SCROLLING, PROP_WRAP_WINDOWS, PROP_INCLUDE_ALL_BLINKING, + PROP_ALLOW_BLINKING, PROP_MIDDLE_CLICK }; @@ -158,6 +159,9 @@ struct _XfceTasklist * or only the active workspace */ guint all_blinking : 1; + /* whether or not we blink windows at all */ + guint can_blink : 1; + /* action to preform when middle clicking */ XfceTasklistMClick middle_click; @@ -483,6 +487,13 @@ xfce_tasklist_class_init (XfceTasklistClass *klass) EXO_PARAM_READWRITE)); g_object_class_install_property (gobject_class, + PROP_ALLOW_BLINKING, + g_param_spec_boolean ("allow-blinking", + NULL, NULL, + TRUE, + EXO_PARAM_READWRITE)); + + g_object_class_install_property (gobject_class, PROP_MIDDLE_CLICK, g_param_spec_uint ("middle-click", NULL, NULL, @@ -571,6 +582,7 @@ xfce_tasklist_init (XfceTasklist *tasklist) tasklist->window_scrolling = TRUE; tasklist->wrap_windows = FALSE; tasklist->all_blinking = TRUE; + tasklist->can_blink = TRUE; tasklist->middle_click = XFCE_TASKLIST_MIDDLE_CLICK_DEFAULT; xfce_tasklist_geometry_set_invalid (tasklist); #ifdef GDK_WINDOWING_X11 @@ -666,6 +678,10 @@ xfce_tasklist_get_property (GObject *object, g_value_set_boolean (value, tasklist->all_blinking); break; + case PROP_ALLOW_BLINKING: + g_value_set_boolean (value, tasklist->can_blink); + break; + case PROP_MIDDLE_CLICK: g_value_set_uint (value, tasklist->middle_click); break; @@ -748,6 +764,10 @@ xfce_tasklist_set_property (GObject *object, tasklist->all_blinking = g_value_get_boolean (value); break; + case PROP_ALLOW_BLINKING: + tasklist->can_blink = g_value_get_boolean (value); + break; + case PROP_MIDDLE_CLICK: tasklist->middle_click= g_value_get_uint (value); break; @@ -2583,7 +2603,7 @@ xfce_tasklist_button_state_changed (WnckWindow *window, gtk_widget_show (child->button); } - xfce_arrow_button_set_blinking (XFCE_ARROW_BUTTON (child->button), blink); + xfce_arrow_button_set_blinking (XFCE_ARROW_BUTTON (child->button), blink && child->tasklist->can_blink); if (child->tasklist->all_blinking && !xfce_tasklist_button_visible (child, active_ws)) diff --git a/plugins/tasklist/tasklist.c b/plugins/tasklist/tasklist.c index fdea304..3422185 100644 --- a/plugins/tasklist/tasklist.c +++ b/plugins/tasklist/tasklist.c @@ -142,6 +142,7 @@ tasklist_plugin_construct (XfcePanelPlugin *panel_plugin) { "window-scrolling", G_TYPE_BOOLEAN }, { "wrap-windows", G_TYPE_BOOLEAN }, { "include-all-blinking", G_TYPE_BOOLEAN }, + { "allow-blinking", G_TYPE_BOOLEAN }, { "middle-click", G_TYPE_UINT }, { NULL } }; -- 1.9.1