From db58aac6a88f369fc109005548ad9170ee8b7720 Mon Sep 17 00:00:00 2001 From: gotmor Date: Sun, 13 Jun 2010 16:36:34 +0000 Subject: added support for nested ^ca() commands, thanks to Devin J. Pohly git-svn-id: http://dzen.googlecode.com/svn/trunk@268 f2baff5b-bf2c-0410-a398-912abdc3d8b2 --- draw.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'draw.c') diff --git a/draw.c b/draw.c index ccefed0..24f7cf8 100644 --- a/draw.c +++ b/draw.c @@ -739,12 +739,19 @@ parse_line(const char *line, int lnr, int align, int reverse, int nodraw) { sens_areas[sens_areas_cnt].start_y = py; sens_areas[sens_areas_cnt].end_y = py; max_y = py; + sens_areas[sens_areas_cnt].active = 0; + sens_areas_cnt++; } } else { - if(sens_areas_cnt < MAX_CLICKABLE_AREAS) { - sens_areas[sens_areas_cnt].end_x = px; - sens_areas[sens_areas_cnt].end_y = max_y; - sens_areas_cnt++; + /* find most recent unclosed area */ + for(i = sens_areas_cnt - 1; i >= 0; i--) + if(!sens_areas[i].active) + break; + if(i >= 0 && i < MAX_CLICKABLE_AREAS) { + sens_areas[i].end_x = px; + sens_areas[i].end_y = max_y; + sens_areas[i].active = 1; + } } } -- cgit v1.2.3-54-g00ecf