+Taskbar *click_taskbar (Panel *panel, XEvent *e)
+{
+ GSList *l0;
+ Taskbar *tskbar = NULL;
+ if (panel_horizontal) {
+ int x = e->xbutton.x;
+ for (l0 = panel->area.list; l0 ; l0 = l0->next) {
+ tskbar = l0->data;
+ if (!tskbar->area.on_screen) continue;
+ if (x >= tskbar->area.posx && x <= (tskbar->area.posx + tskbar->area.width))
+ break;
+ }
+ }
+ else {
+ int y = e->xbutton.y;
+ for (l0 = panel->area.list; l0 ; l0 = l0->next) {
+ tskbar = l0->data;
+ if (!tskbar->area.on_screen) continue;
+ if (y >= tskbar->area.posy && y <= (tskbar->area.posy + tskbar->area.height))
+ break;
+ }
+ }
+ return tskbar;
+}
+
+
+Task *click_task (Panel *panel, XEvent *e)
+{
+ GSList *l0;
+ Taskbar *tskbar;
+
+ if ( (tskbar = click_taskbar(panel, e)) ) {
+ if (panel_horizontal) {
+ int x = e->xbutton.x;
+ Task *tsk;
+ for (l0 = tskbar->area.list; l0 ; l0 = l0->next) {
+ tsk = l0->data;
+ if (x >= tsk->area.posx && x <= (tsk->area.posx + tsk->area.width)) {
+ return tsk;
+ }
+ }
+ }
+ else {
+ int y = e->xbutton.y;
+ Task *tsk;
+ for (l0 = tskbar->area.list; l0 ; l0 = l0->next) {
+ tsk = l0->data;
+ if (y >= tsk->area.posy && y <= (tsk->area.posy + tsk->area.height)) {
+ return tsk;
+ }
+ }
+ }
+ }
+ return NULL;
+}
+
+
+int click_padding(Panel *panel, XEvent *e)
+{
+ if (panel_horizontal) {
+ if (e->xbutton.x < panel->area.paddingxlr || e->xbutton.x > panel->area.width-panel->area.paddingxlr)
+ return 1;
+ }
+ else {
+ if (e->xbutton.y < panel->area.paddingxlr || e->xbutton.y > panel->area.height-panel->area.paddingxlr)
+ return 1;
+ }
+ return 0;
+}
+
+
+int click_clock(Panel *panel, XEvent *e)
+{
+ Clock clk = panel->clock;
+ if (panel_horizontal) {
+ if (clk.area.on_screen && e->xbutton.x >= clk.area.posx && e->xbutton.x <= (clk.area.posx + clk.area.width))
+ return TRUE;
+ } else {
+ if (clk.area.on_screen && e->xbutton.y >= clk.area.posy && e->xbutton.y <= (clk.area.posy + clk.area.height))
+ return TRUE;
+ }
+ return FALSE;
+}
+
+