for (i=0 ; i < nb_panel ; i++) {
if (battery_state.percentage >= percentage_hide) {
if (panel1[i].battery.area.on_screen == 1) {
- panel1[i].battery.area.on_screen = 0;
- panel1[i].area.resize = 1;
+ hide(&panel1[i].battery.area);
panel_refresh = 1;
}
}
else {
if (panel1[i].battery.area.on_screen == 0) {
- panel1[i].battery.area.on_screen = 1;
+ show(&panel1[i].battery.area);
+ panel_refresh = 1;
}
}
if (panel1[i].battery.area.on_screen == 1) {
battery->area._draw_foreground = draw_battery;
battery->area.size_mode = SIZE_BY_CONTENT;
battery->area._resize = resize_battery;
- battery->area.resize = 1;
- battery->area.redraw = 1;
- battery->area.on_screen = 1;
}
}
else {
int new_size = bat_percentage_height + bat_time_height + (2 * (battery->area.paddingxlr + battery->area.bg->border.width));
- if (new_size != battery->area.height) {
+ if (new_size > battery->area.height || new_size < (battery->area.height-2)) {
battery->area.height = new_size;
battery->bat1_posy = ((battery->area.height - bat_percentage_height) / 2) - ((bat_time_height_ink + 2) / 2);
battery->bat2_posy = battery->bat1_posy + bat_percentage_height + 2 - (bat_percentage_height - bat_percentage_height_ink)/2 - (bat_time_height - bat_time_height_ink)/2;
ret = 1;
}
}
-
return ret;
}
clock->area._draw_foreground = draw_clock;
clock->area.size_mode = SIZE_BY_CONTENT;
clock->area._resize = resize_clock;
- clock->area.resize = 1;
- clock->area.redraw = 1;
// check consistency
if (time1_format == 0)
return;
+ clock->area.resize = 1;
clock->area.on_screen = 1;
if (time_tooltip_format) {
clock->area.redraw = 1;
+ date_height = date_width = 0;
strftime(buf_time, sizeof(buf_time), time1_format, clock_gettime_for_tz(time1_timezone));
get_text_size2(time1_font_desc, &time_height_ink, &time_height, &time_width, panel->area.height, panel->area.width, buf_time, strlen(buf_time));
if (time2_format) {
count++;
}
if (count == 0)
- systray.area.on_screen = 0;
+ hide(&systray.area);
else
- systray.area.on_screen = 1;
+ show(&systray.area);
refresh_systray = 0;
}
traywin->damage = 0;
if (systray.area.on_screen == 0)
- systray.area.on_screen = 1;
+ show(&systray.area);
if (systray.sort == 3)
systray.list_icons = g_slist_prepend(systray.list_icons, traywin);
if (!((TrayWindow*)l->data)->hide)
count++;
}
- if (count == 0) {
- systray.area.on_screen = 0;
- systray.area.width = 0;
- }
+ if (count == 0)
+ hide(&systray.area);
+
// changed in systray
systray.area.resize = 1;
panel_refresh = 1;
if (a->_resize(a)) {
// 'size' changed => 'resize = 1' on the parent and redraw object
((Area*)a->parent)->resize = 1;
- a->redraw = 1;
}
+ a->redraw = 1;
}
}
}
set_redraw(l->data);
}
+void hide(Area *a)
+{
+ Area *parent = (Area*)a->parent;
+
+ a->on_screen = 0;
+ parent->resize = 1;
+ if (panel_horizontal)
+ a->width = 0;
+ else
+ a->height = 0;
+}
+
+void show(Area *a)
+{
+ Area *parent = (Area*)a->parent;
+
+ a->on_screen = 1;
+ parent->resize = 1;
+ a->resize = 1;
+}
void draw (Area *a)
{
// set 'redraw' on an area and childs
void set_redraw (Area *a);
+// hide/unhide area
+void hide(Area *a);
+void show(Area *a);
+
// draw pixmap
void draw (Area *a);
void draw_background (Area *a, cairo_t *c);