commit ed27c6b646a85c6fb690a701bda50c8ba4ac94e1
parent 576075e75f86b83fdc9c45d7d30d8ee1f861be87
Author: Anselm R. Garbe <garbeam@wmii.de>
Date: Wed, 18 Jan 2006 16:02:29 +0200
fixed focus-on-click, next is click-through
Diffstat:
4 files changed, 13 insertions(+), 23 deletions(-)
diff --git a/cmd/wm/client.c b/cmd/wm/client.c
@@ -62,12 +62,12 @@ void
grab_client(Client * c, unsigned long mod, unsigned int button)
{
XGrabButton(dpy, button, mod, c->win, False,
- ButtonPressMask, GrabModeSync, GrabModeAsync, None, None);
+ ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None);
if((mod != AnyModifier) && num_lock_mask) {
XGrabButton(dpy, button, mod | num_lock_mask, c->win, False,
- ButtonPressMask, GrabModeSync, GrabModeAsync, None, None);
+ ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None);
XGrabButton(dpy, button, mod | num_lock_mask | LockMask, c->win,
- True, ButtonPressMask, GrabModeSync, GrabModeAsync, None, None);
+ False, ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None);
}
}
diff --git a/cmd/wm/layout_column.c b/cmd/wm/layout_column.c
@@ -141,7 +141,6 @@ attach_frame(Layout *l, Column * col, Frame * new)
c->next = cell;
cell->prev = c;
}
- col->sel = cell;
col->ncells++;
for(f = acme->frames; f && f->next; f = f->next);
@@ -162,20 +161,16 @@ detach_frame(Layout *l, Frame * old)
Cell *cell = old->aux;
Column *col = cell->col;
- if(col->sel == cell) {
- if(cell->prev)
- col->sel = cell->prev;
- else
- col->sel = nil;
- }
if(cell->prev)
cell->prev->next = cell->next;
else
col->cells = cell->next;
if(cell->next)
cell->next->prev = cell->prev;
- if(!col->sel)
+
+ if(col->sel == cell)
col->sel = col->cells;
+
free(cell);
col->ncells--;
diff --git a/cmd/wm/layout_float.c b/cmd/wm/layout_float.c
@@ -90,7 +90,6 @@ attach_frame(Layout *l, Frame * new)
new->prev = f;
}
attach_frame_to_layout(l, new);
- fl->sel = new;
fl->nframes++;
}
@@ -99,20 +98,16 @@ detach_frame(Layout *l, Frame * old)
{
Float *fl = l->aux;
- if(fl->sel == old) {
- if(old->prev)
- fl->sel = old->prev;
- else
- fl->sel = nil;
- }
if(old->prev)
old->prev->next = old->next;
else
fl->frames = old->next;
if(old->next)
old->next->prev = old->prev;
- if(!fl->sel)
+
+ if(fl->sel == old)
fl->sel = fl->frames;
+
detach_frame_from_layout(old);
fl->nframes--;
}
diff --git a/cmd/wm/page.c b/cmd/wm/page.c
@@ -129,12 +129,12 @@ focus_page(Page * p)
unmap_layout(selpage->floating);
}
}
- else
- return;
+ if(p != selpage) {
+ map_layout(p->managed, False);
+ map_layout(p->floating, False);
+ }
selpage = p;
- map_layout(p->managed, False);
- map_layout(p->floating, False);
def[WM_SEL_PAGE]->content = p->file[P_PREFIX]->content;
invoke_wm_event(def[WM_EVENT_PAGE_UPDATE]);
focus_layout(p->sel);