X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Ftint.c;h=94ec86ce6eb9c24e92346085d47f94b6aceb2527;hb=101ed479957ad40d2579faddb858a62a554007a3;hp=baaaf0326928a82b3a478d29304042830b9bc267;hpb=3ad3e76e075ac8c26668c6ae967758f397855aad;p=chaz%2Ftint2 diff --git a/src/tint.c b/src/tint.c index baaaf03..94ec86c 100644 --- a/src/tint.c +++ b/src/tint.c @@ -359,7 +359,6 @@ void event_property_notify (XEvent *e) for (i=0 ; i < nb_panel ; i++) { set_panel_background(&panel1[i]); } - refresh_systray(); panel_refresh = 1; } } @@ -391,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; } } @@ -511,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 @@ -548,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) { @@ -639,6 +650,10 @@ load_config: if (panel_refresh) { panel_refresh = 0; + if (refresh_systray) { + panel = (Panel*)systray.area.panel; + XSetWindowBackgroundPixmap (server.dsp, panel->main_win, None); + } for (i=0 ; i < nb_panel ; i++) { panel = &panel1[i]; @@ -649,6 +664,15 @@ load_config: XCopyArea(server.dsp, panel->temp_pmap, panel->main_win, server.gc, 0, 0, panel->area.width, panel->area.height, 0, 0); } XFlush (server.dsp); + + if (refresh_systray) { + refresh_systray = 0; + panel = (Panel*)systray.area.panel; + // tint2 doen't draw systray icons. it just redraw background. + XSetWindowBackgroundPixmap (server.dsp, panel->main_win, panel->temp_pmap); + // force icon's refresh + refresh_systray_icon(); + } } } }