wmii

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

commit 98d451e44533559ca465cadc9931795988c5a88e
parent d6f67b3be521e8d5c3aa1fad79c4e70562243553
Author: garbeam <garbeam@localhost>
Date:   Wed, 11 Jan 2006 19:15:16 +0200

some changes before last refactoring for 9P in wm/


Diffstat:
cmd/wm/client.c | 1-
cmd/wm/event.c | 6+++---
cmd/wm/frame.c | 5+++++
cmd/wm/page.c | 26+++++++++++++-------------
cmd/wm/wm.c | 2+-
cmd/wm/wm.h | 8++++----
6 files changed, 26 insertions(+), 22 deletions(-)

diff --git a/cmd/wm/client.c b/cmd/wm/client.c @@ -32,7 +32,6 @@ focus_client(Client * c) Client *old = sel_client(); if(old && (old != c)) { - fprintf(stderr, "%s", "grabbing everything for window\n"); ungrab_client(old, AnyModifier, AnyButton); grab_client(old, AnyModifier, AnyButton); } diff --git a/cmd/wm/event.c b/cmd/wm/event.c @@ -213,10 +213,10 @@ handle_maprequest(XEvent * e) } /* attach heuristic support */ - if(runinpage && (runinpage->page != selpage)) { - RunInPage *r = runinpage; + if(attachqueue && (attachqueue->page != selpage)) { + AttachQueue *r = attachqueue; focus_page(r->page); - runinpage = runinpage->next; + attachqueue = attachqueue->next; free(r); } diff --git a/cmd/wm/frame.c b/cmd/wm/frame.c @@ -289,6 +289,11 @@ attach_client_to_frame(Frame * f, Client * client) client->next = nil; c->next = client; } + if(f->sel) { + ungrab_client(f->sel, AnyModifier, AnyButton); + grab_client(f->sel, AnyModifier, AnyButton); + } + f->sel = client; f->nclients++; client->frame = f; resize_frame(f, &f->rect, 0); diff --git a/cmd/wm/page.c b/cmd/wm/page.c @@ -65,17 +65,17 @@ alloc_page() void destroy_page(Page * p) { - RunInPage *o, *n; + AttachQueue *o, *n; - while(runinpage->page == p) { - n = runinpage->next; - free(runinpage); - runinpage = n; + while(attachqueue->page == p) { + n = attachqueue->next; + free(attachqueue); + attachqueue = n; } - o = runinpage; + o = attachqueue; n = nil; - if(runinpage) - n = runinpage->next; + if(attachqueue) + n = attachqueue->next; while(n) { if(n->page == p) { o->next = n->next; @@ -198,13 +198,13 @@ handle_after_write_page(IXPServer * s, File * file) static void xexec(void *obj, char *arg) { - RunInPage *r; + AttachQueue *r; - if(!runinpage) - r = runinpage = cext_emallocz(sizeof(RunInPage)); + if(!attachqueue) + r = attachqueue = cext_emallocz(sizeof(AttachQueue)); else { - for(r = runinpage; r && r->next; r = r->next); - r->next = cext_emallocz(sizeof(RunInPage)); + for(r = attachqueue; r && r->next; r = r->next); + r->next = cext_emallocz(sizeof(AttachQueue)); r = r->next; } r->page = obj; diff --git a/cmd/wm/wm.c b/cmd/wm/wm.c @@ -898,7 +898,7 @@ main(int argc, char *argv[]) ndetached = npages = 0; detached = nil; layouts = nil; - runinpage = nil; + attachqueue = nil; init_atoms(); init_cursors(); diff --git a/cmd/wm/wm.h b/cmd/wm/wm.h @@ -88,15 +88,15 @@ enum { #define CLIENT_MASK (StructureNotifyMask | PropertyChangeMask | ButtonPressMask) typedef struct Page Page; -typedef struct RunInPage RunInPage; +typedef struct AttachQueue AttachQueue; typedef struct Layout Layout; typedef struct Area Area; typedef struct Frame Frame; typedef struct Client Client; -struct RunInPage { +struct AttachQueue { Page *page; - RunInPage *next; + AttachQueue *next; }; struct Page { @@ -165,7 +165,7 @@ struct Client { /* global variables */ Page *pages; Page *selpage; -RunInPage *runinpage; +AttachQueue *attachqueue; size_t npages; Client *detached; size_t ndetached;