#include <cairo.h>
#include <cairo-xlib.h>
#include <pango/pangocairo.h>
-#include <unistd.h>
-#include <signal.h>
#include <stdlib.h>
#include "window.h"
#include "taskbar.h"
#include "clock.h"
#include "timer.h"
+#include "common.h"
char *time1_format;
clock->area.parent = p;
clock->area.panel = p;
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;
}
-void resize_clock (void *obj)
+int resize_clock (void *obj)
{
Clock *clock = obj;
PangoLayout *layout;
- int time_width, date_width, new_width;
+ int time_width, date_width, new_width, ret = 0;
clock->area.redraw = 1;
time_width = date_width = 0;
strftime(buf_date, sizeof(buf_date), time2_format, clock_gettime_for_tz(time2_timezone));
// vertical panel doen't adjust width
- if (!panel_horizontal) return;
+ if (!panel_horizontal) return ret;
//printf(" resize_clock\n");
cairo_surface_t *cs;
clock->area.width = new_width + 1;
// resize other objects on panel
- panel->area.resize = 1;
-#ifdef ENABLE_BATTERY
- panel->battery.area.resize = 1;
-#endif
- systray.area.resize = 1;
+ ret = 1;
panel_refresh = 1;
}
clock->area.posx = panel->area.width - clock->area.width - panel->area.paddingxlr - panel->area.bg->border.width;
cairo_destroy (c);
cairo_surface_destroy (cs);
XFreePixmap (server.dsp, pmap);
+ return ret;
}
command = clock_rclick_command;
break;
}
- if (command) {
- pid_t pid;
- pid = fork();
- if (pid == 0) {
- // change for the fork the signal mask
-// sigset_t sigset;
-// sigprocmask(SIG_SETMASK, &sigset, 0);
-// sigprocmask(SIG_UNBLOCK, &sigset, 0);
- execl("/bin/sh", "/bin/sh", "-c", command, NULL);
- _exit(0);
- }
- }
+ tint_exec(command);
}