aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--draw.c48
-rw-r--r--main.c7
2 files changed, 31 insertions, 24 deletions
diff --git a/draw.c b/draw.c
index edb7a7c..8fe6b2c 100644
--- a/draw.c
+++ b/draw.c
@@ -668,17 +668,19 @@ parse_line(const char *line, int lnr, int align, int reverse, int nodraw) {
font_was_set = 1;
break;
case ca:
- if(tval[0]) {
- if(sens_areas_cnt < MAX_CLICKABLE_AREAS) {
- get_sens_area(tval,
- &sens_areas[sens_areas_cnt].button,
- sens_areas[sens_areas_cnt].cmd);
- sens_areas[sens_areas_cnt].start_x = px;
- }
- } else {
- if(sens_areas_cnt < MAX_CLICKABLE_AREAS) {
- sens_areas[sens_areas_cnt].end_x = px;
- sens_areas_cnt++;
+ if(lnr == -1) {
+ if(tval[0]) {
+ if(sens_areas_cnt < MAX_CLICKABLE_AREAS) {
+ get_sens_area(tval,
+ &sens_areas[sens_areas_cnt].button,
+ sens_areas[sens_areas_cnt].cmd);
+ sens_areas[sens_areas_cnt].start_x = px;
+ }
+ } else {
+ if(sens_areas_cnt < MAX_CLICKABLE_AREAS) {
+ sens_areas[sens_areas_cnt].end_x = px;
+ sens_areas_cnt++;
+ }
}
}
break;
@@ -945,17 +947,19 @@ parse_line(const char *line, int lnr, int align, int reverse, int nodraw) {
font_was_set = 1;
break;
case ca:
- if(tval[0]) {
- if(sens_areas_cnt < MAX_CLICKABLE_AREAS) {
- get_sens_area(tval,
- &sens_areas[sens_areas_cnt].button,
- sens_areas[sens_areas_cnt].cmd);
- sens_areas[sens_areas_cnt].start_x = px;
- }
- } else {
- if(sens_areas_cnt < MAX_CLICKABLE_AREAS) {
- sens_areas[sens_areas_cnt].end_x = px;
- sens_areas_cnt++;
+ if(lnr == -1) {
+ if(tval[0]) {
+ if(sens_areas_cnt < MAX_CLICKABLE_AREAS) {
+ get_sens_area(tval,
+ &sens_areas[sens_areas_cnt].button,
+ sens_areas[sens_areas_cnt].cmd);
+ sens_areas[sens_areas_cnt].start_x = px;
+ }
+ } else {
+ if(sens_areas_cnt < MAX_CLICKABLE_AREAS) {
+ sens_areas[sens_areas_cnt].end_x = px;
+ sens_areas_cnt++;
+ }
}
}
break;
diff --git a/main.c b/main.c
index 3a320b1..511c047 100644
--- a/main.c
+++ b/main.c
@@ -642,13 +642,16 @@ handle_xev(void) {
}
/* clickable areas */
- for(i=0; i<20; i++) {
+ for(i=0; i<MAX_CLICKABLE_AREAS; i++) {
if(ev.xbutton.window == dzen.title_win.win &&
ev.xbutton.button == sens_areas[i].button &&
(ev.xbutton.x >= sens_areas[i].start_x+xorig &&
- ev.xbutton.x <= sens_areas[i].end_x+xorig))
+ ev.xbutton.x <= sens_areas[i].end_x+xorig)) {
spawn(sens_areas[i].cmd);
+ break;
+ }
}
+
switch(ev.xbutton.button) {
case Button1:
do_action(button1);