From: Thierry Lorthiois Date: Sat, 20 Jun 2009 14:41:06 +0000 (+0000) Subject: allow to choose the number of blink for urgent task X-Git-Url: https://git.brokenzipper.com/gitweb?a=commitdiff_plain;h=28c230d74637bc2fc28ae8d15f3007aec0c49798;p=chaz%2Ftint2 allow to choose the number of blink for urgent task --- diff --git a/ChangeLog b/ChangeLog index d48a481..2687011 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +2009-06-20 +- 'urgent_nb_of_blink' allow to choose the number of blink + 2009-06-19 - change systray code. fixed issue 91. diff --git a/src/config.c b/src/config.c index f70b78a..9405146 100644 --- a/src/config.c +++ b/src/config.c @@ -83,6 +83,7 @@ void init_config() panel_config = calloc(1, sizeof(Panel)); // window manager's menu default value == false wm_menu = 0; + max_tick_urgent = 7; } @@ -318,6 +319,8 @@ void add_entry (char *key, char *value) } else if (strcmp (key, "wm_menu") == 0) wm_menu = atoi (value); + else if (strcmp (key, "urgent_nb_of_blink") == 0) + max_tick_urgent = (atoi (value) * 2) + 1; /* Battery */ #ifdef ENABLE_BATTERY diff --git a/src/panel.c b/src/panel.c index 825a382..161d902 100644 --- a/src/panel.c +++ b/src/panel.c @@ -47,6 +47,8 @@ int panel_refresh; Task *task_active; Task *task_drag; Task *task_urgent; +int tick_urgent; +int max_tick_urgent; Panel *panel1 = 0; int nb_panel; diff --git a/src/panel.h b/src/panel.h index dbae95d..a8247a9 100644 --- a/src/panel.h +++ b/src/panel.h @@ -47,6 +47,8 @@ extern int panel_refresh; extern Task *task_active; extern Task *task_drag; extern Task *task_urgent; +extern int tick_urgent; +extern int max_tick_urgent; typedef struct { diff --git a/src/tint.c b/src/tint.c index 6f85b68..da98965 100644 --- a/src/tint.c +++ b/src/tint.c @@ -390,6 +390,7 @@ void event_property_notify (XEvent *e) else if (at == server.atom._NET_WM_STATE) { if (window_is_urgent (win)) { task_urgent = tsk; + tick_urgent = 0; time_precision = 1; } } @@ -510,8 +511,11 @@ void event_timer() // urgent task if (task_urgent) { - task_urgent->area.is_active = !task_urgent->area.is_active; - task_urgent->area.redraw = 1; + if (tick_urgent < max_tick_urgent) { + task_urgent->area.is_active = !task_urgent->area.is_active; + task_urgent->area.redraw = 1; + tick_urgent++; + } } // update battery @@ -547,8 +551,16 @@ int main (int argc, char *argv[]) load_config: i = 0; init_config(); - if (c != -1) + if (c != -1) { i = config_read_file (optarg); + c = getopt (argc, argv, "j:"); + if (c != -1) { + // usage: tint2 [-c] -j for internal use + printf("jpeg file %s\n", optarg); + cleanup(); + exit(0); + } + } if (!i) i = config_read (); if (!i) {