Client: add autofree option in client section (Feature #9 requested by lidstah (and tamtam)) See default wmfsrc
This commit is contained in:
12
src/client.c
12
src/client.c
@@ -719,7 +719,7 @@ client_manage(Window w, XWindowAttributes *wa, Bool ar)
|
|||||||
free(t);
|
free(t);
|
||||||
|
|
||||||
client_attach(c);
|
client_attach(c);
|
||||||
client_set_wanted_tag(c);
|
client_set_rules(c);
|
||||||
client_get_name(c);
|
client_get_name(c);
|
||||||
client_raise(c);
|
client_raise(c);
|
||||||
client_focus(c);
|
client_focus(c);
|
||||||
@@ -972,11 +972,11 @@ client_swap(Client *c1, Client *c2)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Set the wanted tag of a client
|
/** Set the wanted tag or autofree of a client
|
||||||
*\param c Client pointer
|
*\param c Client pointer
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
client_set_wanted_tag(Client *c)
|
client_set_rules(Client *c)
|
||||||
{
|
{
|
||||||
XClassHint xch = { 0 };
|
XClassHint xch = { 0 };
|
||||||
int i, j, k;
|
int i, j, k;
|
||||||
@@ -989,6 +989,12 @@ client_set_wanted_tag(Client *c)
|
|||||||
|
|
||||||
XGetClassHint(dpy, c->win, &xch);
|
XGetClassHint(dpy, c->win, &xch);
|
||||||
|
|
||||||
|
/* Auto free */
|
||||||
|
if((xch.res_name && strstr(conf.client.autofree, xch.res_name))
|
||||||
|
|| (xch.res_class && strstr(conf.client.autofree, xch.res_class)))
|
||||||
|
c->flags |= FreeFlag;
|
||||||
|
|
||||||
|
/* Wanted tag */
|
||||||
for(i = 0; i < screen_count(); ++i)
|
for(i = 0; i < screen_count(); ++i)
|
||||||
for(j = 1; j < conf.ntag[i] + 1; ++j)
|
for(j = 1; j < conf.ntag[i] + 1; ++j)
|
||||||
if(tags[i][j].clients)
|
if(tags[i][j].clients)
|
||||||
|
|||||||
@@ -269,6 +269,7 @@ conf_client_section(void)
|
|||||||
conf.client.mod |= char_to_modkey(fetch_opt_first(sec, "Alt", "modifier").str, key_list);
|
conf.client.mod |= char_to_modkey(fetch_opt_first(sec, "Alt", "modifier").str, key_list);
|
||||||
conf.client.set_new_win_master = fetch_opt_first(sec, "true", "set_new_win_master").bool;
|
conf.client.set_new_win_master = fetch_opt_first(sec, "true", "set_new_win_master").bool;
|
||||||
conf.client.padding = fetch_opt_first(sec, "0", "padding").num;
|
conf.client.padding = fetch_opt_first(sec, "0", "padding").num;
|
||||||
|
conf.client.autofree = fetch_opt_first(sec, "", "autofree").str;
|
||||||
|
|
||||||
mouse = fetch_section(sec, "mouse");
|
mouse = fetch_section(sec, "mouse");
|
||||||
|
|
||||||
|
|||||||
@@ -396,6 +396,7 @@ typedef struct
|
|||||||
Bool place_at_mouse;
|
Bool place_at_mouse;
|
||||||
Bool border_shadow;
|
Bool border_shadow;
|
||||||
int borderheight;
|
int borderheight;
|
||||||
|
char *autofree;
|
||||||
uint bordernormal;
|
uint bordernormal;
|
||||||
uint borderfocus;
|
uint borderfocus;
|
||||||
uint resizecorner_normal;
|
uint resizecorner_normal;
|
||||||
|
|||||||
@@ -187,7 +187,7 @@ void client_raise(Client *c);
|
|||||||
void client_unhide(Client *c);
|
void client_unhide(Client *c);
|
||||||
void client_unmanage(Client *c);
|
void client_unmanage(Client *c);
|
||||||
void client_unmap(Client *c);
|
void client_unmap(Client *c);
|
||||||
void client_set_wanted_tag(Client *c);
|
void client_set_rules(Client *c);
|
||||||
void client_update_attributes(Client *c);
|
void client_update_attributes(Client *c);
|
||||||
void uicb_client_raise(uicb_t);
|
void uicb_client_raise(uicb_t);
|
||||||
void uicb_client_next(uicb_t);
|
void uicb_client_next(uicb_t);
|
||||||
|
|||||||
@@ -127,8 +127,12 @@
|
|||||||
# Space between tiled clients
|
# Space between tiled clients
|
||||||
padding = 0
|
padding = 0
|
||||||
|
|
||||||
|
# Modifier for mouse use
|
||||||
modifier = "Alt"
|
modifier = "Alt"
|
||||||
|
|
||||||
|
# Set automatic free client
|
||||||
|
# autofree = "xterm|MPlayer"
|
||||||
|
|
||||||
[mouse] button = "1" func = "client_raise" [/mouse]
|
[mouse] button = "1" func = "client_raise" [/mouse]
|
||||||
[mouse] button = "1" func = "mouse_move" [/mouse]
|
[mouse] button = "1" func = "mouse_move" [/mouse]
|
||||||
[mouse] button = "3" func = "client_raise" [/mouse]
|
[mouse] button = "3" func = "client_raise" [/mouse]
|
||||||
|
|||||||
Reference in New Issue
Block a user