mirror of https://github.com/0intro/wmii
added better area selection
This commit is contained in:
parent
862713890a
commit
8b9326aa2a
|
@ -306,7 +306,7 @@ void attach_client(Client * c)
|
|||
if (c && c->trans) {
|
||||
Client *t = win_to_client(c->trans);
|
||||
if (t && t->frame)
|
||||
a = t->frame->area;
|
||||
a = cext_list_get_item(&t->frame->area->page->areas, 0);
|
||||
}
|
||||
cext_attach_item(&a->clients, c);
|
||||
a->layout->attach(a, c);
|
||||
|
|
|
@ -258,11 +258,11 @@ static void handle_enternotify(XEvent * e)
|
|||
c = win_to_client(ev->window);
|
||||
if (c && c->frame) {
|
||||
Frame *old = get_sel_frame();
|
||||
if (old != c->frame) {
|
||||
c->frame->area->layout->select(c->frame, False);
|
||||
if (old && old != c->frame)
|
||||
draw_frame(old, nil);
|
||||
draw_frame(c->frame, nil);
|
||||
}
|
||||
sel_area(c->frame->area);
|
||||
c->frame->area->layout->select(c->frame, False);
|
||||
draw_frame(c->frame, nil);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -96,6 +96,7 @@ static void arrange_col(Area *a)
|
|||
{
|
||||
Acme *acme = a->aux;
|
||||
cext_list_iterate(&acme->columns, a, iter_arrange_column);
|
||||
XSync(dpy, False);
|
||||
}
|
||||
|
||||
static void iter_attach_col(void *client, void *area)
|
||||
|
@ -152,9 +153,9 @@ static Bool attach_col(Area *a, Client *c)
|
|||
attach_client_to_frame(f, c);
|
||||
if (a->page == get_sel_page())
|
||||
XMapWindow(dpy, f->win);
|
||||
select_col(f, True);
|
||||
col->refresh = True;
|
||||
arrange_col(a);
|
||||
select_col(f, True);
|
||||
return True;
|
||||
}
|
||||
|
||||
|
@ -271,8 +272,7 @@ static void drop_moving(Frame *f, XRectangle *new, XPoint *pt)
|
|||
f->aux = tgt;
|
||||
tgt->refresh = src->refresh = True;
|
||||
cext_stack_top_item(&acme->columns, tgt);
|
||||
iter_arrange_column(tgt, f->area);
|
||||
iter_arrange_column(src, f->area);
|
||||
arrange_col(f->area);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -11,8 +11,11 @@
|
|||
|
||||
static void handle_after_write_page(IXPServer * s, File * f);
|
||||
|
||||
static void select_area(void *obj, char *arg);
|
||||
|
||||
/* action table for /?/ namespace */
|
||||
Action page_acttbl[] = {
|
||||
{"select", select_area},
|
||||
{0, 0}
|
||||
};
|
||||
|
||||
|
@ -37,6 +40,7 @@ Page *alloc_page()
|
|||
p->file[P_CTL] = ixp_create(ixps, buf);
|
||||
p->file[P_CTL]->after_write = handle_after_write_page;
|
||||
alloc_area(p, &rect, "float");
|
||||
alloc_area(p, &rect, def[WM_LAYOUT]->content);
|
||||
cext_attach_item(&pages, p);
|
||||
def[WM_SEL_PAGE]->content = p->file[P_PREFIX]->content;
|
||||
invoke_wm_event(def[WM_EVENT_PAGE_UPDATE]);
|
||||
|
@ -155,3 +159,17 @@ Page *get_sel_page()
|
|||
{
|
||||
return cext_stack_get_top_item(&pages);
|
||||
}
|
||||
|
||||
static void select_area(void *obj, char *arg)
|
||||
{
|
||||
Page *p = obj;
|
||||
Area *a = cext_stack_get_top_item(&p->areas);
|
||||
|
||||
if (!strncmp(arg, "prev", 5))
|
||||
a = cext_list_get_prev_item(&p->areas, a);
|
||||
else if (!strncmp(arg, "next", 5))
|
||||
a = cext_list_get_next_item(&p->areas, a);
|
||||
else
|
||||
a = cext_list_get_item(&p->areas, blitz_strtonum(arg, 0, cext_sizeof(&p->areas) - 1));
|
||||
sel_area(a);
|
||||
}
|
||||
|
|
|
@ -92,7 +92,7 @@ enum {
|
|||
|
||||
#define PROTO_DEL 1
|
||||
#define BORDER_WIDTH 3
|
||||
#define LAYOUT "float"
|
||||
#define LAYOUT "column"
|
||||
#define GAP 5
|
||||
|
||||
#define ROOT_MASK (SubstructureRedirectMask | ButtonPressMask | ButtonReleaseMask)
|
||||
|
|
11
rc/wmiirc
11
rc/wmiirc
|
@ -129,7 +129,7 @@ kbind normal $MODKEY-t 'extern xterm ''+sb'' -bg ''#000000'' -fg ''#ffffff'' -cr
|
|||
kbind normal $MODKEY-d 'wmiir write /wm/ctl detach'
|
||||
kbind normal $MODKEY-a 'wmiir write /wm/ctl attach'
|
||||
kbind normal $MODKEY-S-a 'wmiir write /wm/ctl ''detached clients'''
|
||||
kbind normal $MODKEY-S-c 'wmiir write /wm/sel/layout/sel/geometry 0,0,east,south-20; wmiir write /wm/sel/layout/sel/name column'
|
||||
kbind normal $MODKEY-S-c 'wmiir write /wm/sel/layout/1/geometry 0,0,east,south-20; wmiir write /wm/sel/layout/1/name column'
|
||||
kbind normal $MODKEY-S-n 'wmiir write /wm/sel/layout/sel/ctl new'
|
||||
kbind normal $MODKEY-S-d 'wmiir write /wm/sel/layout/sel/ctl destroy'
|
||||
kbind normal $MODKEY-S-f 'wmiir write /wm/sel/layout/sel/name float'
|
||||
|
@ -137,13 +137,14 @@ kbind normal $MODKEY-Return 'wmiir write /wm/sel/ctl ''select zoomed'''
|
|||
kbind normal $MODKEY-C-y 'wmiir write /wm/ctl new'
|
||||
kbind normal $MODKEY-u 'wmiir write /wm/sel/layout/sel/frame/sel/locked 0'
|
||||
kbind normal $MODKEY-S-u 'wmiir write /wm/sel/layout/sel/frame/sel/locked 1'
|
||||
kbind normal $MODKEY-$WESTKEY 'wmiir write /wm/ctl ''select prev'''
|
||||
kbind normal $MODKEY-$EASTKEY 'wmiir write /wm/ctl ''select next'''
|
||||
kbind normal $MODKEY-$WESTKEY 'wmiir write /wm/sel/layout/sel/ctl ''select west'''
|
||||
kbind normal $MODKEY-$EASTKEY 'wmiir write /wm/sel/layout/sel/ctl ''select east'''
|
||||
kbind normal $MODKEY-Tab 'wmiir write /wm/sel/layout/sel/ctl ''select next'''
|
||||
kbind normal $MODKEY-$SOUTHKEY 'wmiir write /wm/sel/layout/sel/ctl ''select next'''
|
||||
kbind normal $MODKEY-$NORTHKEY 'wmiir write /wm/sel/layout/sel/ctl ''select prev'''
|
||||
kbind normal $MODKEY-S-$WESTKEY 'wmiir write /wm/sel/layout/sel/ctl ''select west'''
|
||||
kbind normal $MODKEY-S-$EASTKEY 'wmiir write /wm/sel/layout/sel/ctl ''select east'''
|
||||
kbind normal $MODKEY-S-$WESTKEY 'wmiir write /wm/ctl ''select prev'''
|
||||
kbind normal $MODKEY-S-$EASTKEY 'wmiir write /wm/ctl ''select next'''
|
||||
kbind normal $MODKEY-Space 'wmiir write /wm/sel/ctl ''select next'''
|
||||
kbind normal $MODKEY-S-Tab 'wmiir write /wm/sel/layout/sel/frame/sel/ctl ''select next'''
|
||||
kbind normal $MODKEY-S-$SOUTHKEY 'wmiir write /wm/sel/layout/sel/frame/sel/ctl ''select next'''
|
||||
kbind normal $MODKEY-S-$NORTHKEY 'wmiir write /wm/sel/layout/sel/frame/sel/ctl ''select prev'''
|
||||
|
|
Loading…
Reference in New Issue