for (i=0 ; i < nb_panel ; i++) {
set_panel_background(&panel1[i]);
}
- refresh_systray();
panel_refresh = 1;
}
}
else if (at == server.atom._NET_WM_STATE) {
if (window_is_urgent (win)) {
task_urgent = tsk;
+ tick_urgent = 0;
time_precision = 1;
}
}
// 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
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] <config_file> -j <jpeg_file> for internal use
+ printf("jpeg file %s\n", optarg);
+ cleanup();
+ exit(0);
+ }
+ }
if (!i)
i = config_read ();
if (!i) {
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];
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();
+ }
}
}
}