diff options
author | aiju <devnull@localhost> | 2014-07-31 11:36:24 +0200 |
---|---|---|
committer | aiju <devnull@localhost> | 2014-07-31 11:36:24 +0200 |
commit | 709e78b9f9a76658cc6c704176ebf8f5821ee9d2 (patch) | |
tree | 89b0e66fd11d691dbef6c5fed98f3b62d157bd5a /sys/src/cmd/spred/pal.c | |
parent | 98d518cc8c1ff7d1440ebffb9f546d3e0e149d60 (diff) |
spred: scrolling and other bugfixes
Diffstat (limited to 'sys/src/cmd/spred/pal.c')
-rw-r--r-- | sys/src/cmd/spred/pal.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/sys/src/cmd/spred/pal.c b/sys/src/cmd/spred/pal.c index fcc57726f..69995c25c 100644 --- a/sys/src/cmd/spred/pal.c +++ b/sys/src/cmd/spred/pal.c @@ -177,7 +177,7 @@ palredraw(Pal *p) } void -palsize(Pal *p, int sz) +palsize(Pal *p, int sz, int ch) { int i; @@ -185,14 +185,14 @@ palsize(Pal *p, int sz) return; p->cols = realloc(p->cols, sz * sizeof(*p->cols)); p->ims = realloc(p->ims, sz * sizeof(*p->ims)); - if(sz > p->ncol){ - memset(p->cols + p->ncol, 0, sz); - for(i = p->ncol; i < sz; i++) + if(sz > p->ncol) + for(i = p->ncol; i < sz; i++){ + p->cols[i] = 0; p->ims[i] = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, 0); - } + } p->ncol = sz; - p->change = 1; - quitok = 0; + if(ch) + change(p); palredraw(p); } @@ -226,8 +226,7 @@ palset(Pal *p, int s, u32int c) p->cols[s] = c; freeimage(p->ims[s]); p->ims[s] = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, c << 8 | 0xff); - p->change = 1; - quitok = 0; + change(p); palredraw(p); } |