wmii

git clone git://oldgit.suckless.org/wmii/
Log | Files | Refs | README | LICENSE

commit 517f0ec3e1c60abee9e2ef2cf0094950cb05a28b
parent cadc01b5c19b715c767553ea93149c399ea300ad
Author: Kris Maglione <jg@suckless.org>
Date:   Sat, 18 Oct 2008 21:27:53 -0400

Use the physical screen rectangle when calculating window movement

Diffstat:
cmd/wmii/bar.c | 6++++--
cmd/wmii/dat.h | 3++-
cmd/wmii/fs.c | 6++++--
cmd/wmii/mouse.c | 8++++----
4 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/cmd/wmii/bar.c b/cmd/wmii/bar.c @@ -86,12 +86,13 @@ bar_create(Bar **bp, const char *name) { utflcpy(b->name, name, sizeof b->name); b->col = def.normcolor; - /* FIXME: Kludge. */ for(sp=screens; (s = *sp); sp++) { i = bp - s->bar; if(i < nelem(s->bar)) - b->bar = i; + break; } + b->bar = i; + b->screen = s; for(; *bp; bp = &bp[0]->next) if(strcmp(bp[0]->name, name) >= 0) @@ -167,6 +168,7 @@ bar_draw(WMScreen *s) { r = rectsubpt(s->brect, s->brect.min); fill(disp.ibuf, r, def.normcolor.bg); + border(disp.ibuf, r, 1, def.normcolor.border); foreach_bar(s, b) { align = Center; if(b == s->bar[BRight]) diff --git a/cmd/wmii/dat.h b/cmd/wmii/dat.h @@ -150,8 +150,9 @@ struct Bar { char name[256]; int bar; ushort id; - Rectangle r; CTuple col; + Rectangle r; + WMScreen* screen; }; struct Regex { diff --git a/cmd/wmii/fs.c b/cmd/wmii/fs.c @@ -633,6 +633,7 @@ fs_create(Ixp9Req *r) { void fs_remove(Ixp9Req *r) { IxpFileId *f; + WMScreen *s; f = r->fid->aux; if(!ixp_srv_verifyfile(f, lookup_file)) { @@ -646,8 +647,9 @@ fs_remove(Ixp9Req *r) { respond(r, Enoperm); return; case FsFBar: + s = f->p.bar->screen; bar_destroy(f->next->p.bar_p, f->p.bar); - bar_draw(screen); + bar_draw(s); respond(r, nil); break; } @@ -701,7 +703,7 @@ fs_clunk(Ixp9Req *r) { q = f->p.bar->text; utflcpy(q, (char*)m.pos, sizeof ((Bar*)0)->text); - bar_draw(screen); + bar_draw(f->p.bar->screen); break; } respond(r, nil); diff --git a/cmd/wmii/mouse.c b/cmd/wmii/mouse.c @@ -403,14 +403,14 @@ mouse_resize(Client *c, Align align, bool grabmod) { pt = addpt(d, f->r.min); warppointer(pt); }else { - hrx = (double)(Dx(screen->r) + hrx = (double)(Dx(scr.rect) + Dx(frect) - 2 * labelh(def.font)) - / Dx(screen->r); - hry = (double)(Dy(screen->r) + / Dx(scr.rect); + hry = (double)(Dy(scr.rect) + Dy(frect) - 3 * labelh(def.font)) - / Dy(screen->r); + / Dy(scr.rect); pt.x = frect.max.x - labelh(def.font); pt.y = frect.max.y - labelh(def.font);