aboutsummaryrefslogtreecommitdiffstats
path: root/draw.c
diff options
context:
space:
mode:
authorgotmor <gotmor@f2baff5b-bf2c-0410-a398-912abdc3d8b2>2008-01-19 19:31:53 +0000
committergotmor <gotmor@f2baff5b-bf2c-0410-a398-912abdc3d8b2>2008-01-19 19:31:53 +0000
commit291c242beb335520bd669a1f43dc3d11363a9624 (patch)
tree00aba774e8baf43e76bcafbbab12f4160021038d /draw.c
parent48daa9a11253bee8c2eeebf2c1d56daab08b3da5 (diff)
downloaddzen-291c242beb335520bd669a1f43dc3d11363a9624.tar.gz
dzen-291c242beb335520bd669a1f43dc3d11363a9624.zip
reset set_posy only if requested
git-svn-id: http://dzen.googlecode.com/svn/trunk@208 f2baff5b-bf2c-0410-a398-912abdc3d8b2
Diffstat (limited to 'draw.c')
-rw-r--r--draw.c51
1 files changed, 32 insertions, 19 deletions
diff --git a/draw.c b/draw.c
index babbef0..b93ffa4 100644
--- a/draw.c
+++ b/draw.c
@@ -459,7 +459,7 @@ parse_line(const char *line, int lnr, int align, int reverse, int nodraw) {
(dzen.line_height - recth)/2 + recty;
px = rectx == 0 ? px : rectx+px;
setcolor(pm, px, rectw, lastfg, lastbg, reverse, nobg);
- /*printf("R2: px=%d py=%d rectw=%d recth=%d\n", px,
+ /*printf("R1: setpy=%d px=%d py=%d rectw=%d recth=%d\n", set_posy, px,
set_posy ? py : ((int)recty<0 ? dzen.line_height + recty : recty),
rectw, recth);
*/
@@ -508,13 +508,16 @@ parse_line(const char *line, int lnr, int align, int reverse, int nodraw) {
case pos:
if(tval[0]) {
- set_posy = get_pos_vals(tval, &n_posx, &n_posy);
+ int r=0;
+ if( (r=get_pos_vals(tval, &n_posx, &n_posy)) == 1 && !set_posy)
+ set_posy=0;
+ else
+ set_posy=1;
- if(set_posy != 2)
+ if(r != 2)
px = px+n_posx<0? 0 : px + n_posx;
- if(set_posy != 1)
+ if(r != 1)
py += n_posy;
- set_posy = set_posy == 3 || set_posy == 2 ? 1 : 0;
} else {
set_posy = 0;
py = (dzen.line_height - dzen.font.height) / 2;
@@ -523,13 +526,17 @@ parse_line(const char *line, int lnr, int align, int reverse, int nodraw) {
case abspos:
if(tval[0]) {
- set_posy = get_pos_vals(tval, &n_posx, &n_posy);
+ int r=0;
+ if( (r=get_pos_vals(tval, &n_posx, &n_posy)) == 1 && !set_posy)
+ set_posy=0;
+ else
+ set_posy=1;
+
n_posx = n_posx < 0 ? n_posx*-1 : n_posx;
- if(set_posy != 2)
+ if(r != 2)
px = n_posx;
- if(set_posy != 1)
+ if(r != 1)
py = n_posy;
- set_posy = set_posy == 3 || set_posy == 2 ? 1 : 0;
} else {
set_posy = 0;
py = (dzen.line_height - dzen.font.height) / 2;
@@ -664,7 +671,7 @@ parse_line(const char *line, int lnr, int align, int reverse, int nodraw) {
(dzen.line_height - recth)/2 + recty;
px = (rectx == 0) ? px : rectx+px;
setcolor(pm, px, rectw, lastfg, lastbg, reverse, nobg);
- /*printf("R2: px=%d py=%d rectw=%d recth=%d\n", px,
+ /*printf("R2: setpy=%d px=%d py=%d rectw=%d recth=%d\n", set_posy, px,
set_posy ? py : ((int)recty<0 ? dzen.line_height + recty : recty),
rectw, recth);
*/
@@ -712,13 +719,16 @@ parse_line(const char *line, int lnr, int align, int reverse, int nodraw) {
case pos:
if(tval[0]) {
- set_posy = get_pos_vals(tval, &n_posx, &n_posy);
+ int r=0;
+ if( (r=get_pos_vals(tval, &n_posx, &n_posy)) == 1 && !set_posy)
+ set_posy=0;
+ else
+ set_posy=1;
- if(set_posy != 2)
+ if(r != 2)
px = px+n_posx<0? 0 : px + n_posx;
- if(set_posy != 1)
+ if(r != 1)
py += n_posy;
- set_posy = set_posy == 3 || set_posy == 2 ? 1 : 0;
} else {
set_posy = 0;
py = (dzen.line_height - dzen.font.height) / 2;
@@ -727,18 +737,21 @@ parse_line(const char *line, int lnr, int align, int reverse, int nodraw) {
case abspos:
if(tval[0]) {
- set_posy = get_pos_vals(tval, &n_posx, &n_posy);
+ int r=0;
+ if( (r=get_pos_vals(tval, &n_posx, &n_posy)) == 1 && !set_posy)
+ set_posy=0;
+ else
+ set_posy=1;
+
n_posx = n_posx < 0 ? n_posx*-1 : n_posx;
- if(set_posy != 2)
+ if(r != 2)
px = n_posx;
- if(set_posy != 1)
+ if(r != 1)
py = n_posy;
- set_posy = set_posy == 3 || set_posy == 2 ? 1 : 0;
} else {
set_posy = 0;
py = (dzen.line_height - dzen.font.height) / 2;
}
-
break;
case ibg: