From 727a52cc9f72618344dd50905099c492b7d34bcc Mon Sep 17 00:00:00 2001 From: Thierry Lorthiois Date: Thu, 10 Sep 2009 21:00:50 +0000 Subject: [PATCH] cleanup --- src/panel.h | 2 ++ src/tint.c | 19 ++++++++++--------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/panel.h b/src/panel.h index 698b744..b1ca46c 100644 --- a/src/panel.h +++ b/src/panel.h @@ -81,6 +81,8 @@ typedef struct { // -------------------------------------------------- // taskbar point to the first taskbar in panel.area.list. // number of tasbar == nb_desktop + // taskbar[i] is used to loop over taskbar, + // while panel->area.list is used to loop over all panel's objects Taskbar *taskbar; int nb_desktop; diff --git a/src/tint.c b/src/tint.c index 70c6f5b..33f5e67 100644 --- a/src/tint.c +++ b/src/tint.c @@ -134,25 +134,26 @@ void cleanup() Taskbar *click_taskbar (Panel *panel, int x, int y) { - GSList *l0; - Taskbar *tskbar = NULL; + Taskbar *tskbar; + int i; + if (panel_horizontal) { - for (l0 = panel->area.list; l0 ; l0 = l0->next) { - tskbar = l0->data; + for (i=0; i < panel->nb_desktop ; i++) { + tskbar = &panel->taskbar[i]; if (!tskbar->area.on_screen) continue; if (x >= tskbar->area.posx && x <= (tskbar->area.posx + tskbar->area.width)) - break; + return tskbar; } } else { - for (l0 = panel->area.list; l0 ; l0 = l0->next) { - tskbar = l0->data; + for (i=0; i < panel->nb_desktop ; i++) { + tskbar = &panel->taskbar[i]; if (!tskbar->area.on_screen) continue; if (y >= tskbar->area.posy && y <= (tskbar->area.posy + tskbar->area.height)) - break; + return tskbar; } } - return tskbar; + return NULL; } -- 2.44.0