diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-09-07 20:07:00 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-09-07 20:07:00 +0200 |
commit | 0182cc9db88b4da0a15ad6ee407fa03a3f3ce5b1 (patch) | |
tree | f9bfeb4c41a6f0e2a701cb4eaf47291afcabbc3d /sys/src/cmd/acme/wind.c | |
parent | ebf2c5cd6997eb7a200ff7d79734ff0dfd43a748 (diff) |
acme: avoid useless tagline/window redraw if not needed
window resize is only neccesary if tagline changed.
Diffstat (limited to 'sys/src/cmd/acme/wind.c')
-rw-r--r-- | sys/src/cmd/acme/wind.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/src/cmd/acme/wind.c b/sys/src/cmd/acme/wind.c index da62518ed..bea06dd92 100644 --- a/sys/src/cmd/acme/wind.c +++ b/sys/src/cmd/acme/wind.c @@ -387,6 +387,8 @@ wintype(Window *w, Text *t, Rune r) int i; texttype(t, r); + if(t->what == Tag) + w->tagsafe = FALSE; if(t->what == Body) for(i=0; i<t->file->ntext; i++) textscrdraw(t->file->text[i]); @@ -447,6 +449,7 @@ winsettag1(Window *w) old = runemalloc(w->tag.file->nc+1); bufread(w->tag.file, 0, old, w->tag.file->nc); old[w->tag.file->nc] = '\0'; + w->tagsafe = FALSE; } new = runemalloc(w->body.file->nname+100); i = 0; @@ -509,6 +512,7 @@ winsettag1(Window *w) w->tag.q1 = q1+bar; } } + w->tagsafe = FALSE; } free(old); free(new); @@ -526,9 +530,8 @@ winsettag1(Window *w) br.max.x = br.min.x + Dx(b->r); br.max.y = br.min.y + Dy(b->r); draw(screen, br, b, nil, b->r.min); - - w->tagsafe = 0; - winresize(w, w->r, TRUE); + if(w->tagsafe == FALSE) + winresize(w, w->r, TRUE); } void |