add sloppy_focus option to allow click-to-focus
This commit is contained in:
parent
bcebd5e1ce
commit
d25d5b921f
|
@ -251,6 +251,7 @@ screen <integer> [MULTI]
|
||||||
general
|
general
|
||||||
{
|
{
|
||||||
allow_lower_floats=<{true,false}>
|
allow_lower_floats=<{true,false}>
|
||||||
|
sloppy_focus=<{true,false}>
|
||||||
border=<integer>
|
border=<integer>
|
||||||
focus_move_pointer=<{true,false}>
|
focus_move_pointer=<{true,false}>
|
||||||
font=<font>
|
font=<font>
|
||||||
|
|
2
config.c
2
config.c
|
@ -345,6 +345,7 @@ config_parse_screen(cfg_t *cfg, int screen)
|
||||||
virtscreen->opacity_unfocused = cfg_getint(cfg_general, "opacity_unfocused");
|
virtscreen->opacity_unfocused = cfg_getint(cfg_general, "opacity_unfocused");
|
||||||
virtscreen->focus_move_pointer = cfg_getbool(cfg_general, "focus_move_pointer");
|
virtscreen->focus_move_pointer = cfg_getbool(cfg_general, "focus_move_pointer");
|
||||||
virtscreen->allow_lower_floats = cfg_getbool(cfg_general, "allow_lower_floats");
|
virtscreen->allow_lower_floats = cfg_getbool(cfg_general, "allow_lower_floats");
|
||||||
|
virtscreen->sloppy_focus = cfg_getbool(cfg_general, "sloppy_focus");
|
||||||
virtscreen->font = XftFontOpenName(globalconf.display,
|
virtscreen->font = XftFontOpenName(globalconf.display,
|
||||||
phys_screen,
|
phys_screen,
|
||||||
cfg_getstr(cfg_general, "font"));
|
cfg_getstr(cfg_general, "font"));
|
||||||
|
@ -477,6 +478,7 @@ config_parse(const char *confpatharg)
|
||||||
CFG_INT((char *) "opacity_unfocused", 100, CFGF_NONE),
|
CFG_INT((char *) "opacity_unfocused", 100, CFGF_NONE),
|
||||||
CFG_BOOL((char *) "focus_move_pointer", cfg_false, CFGF_NONE),
|
CFG_BOOL((char *) "focus_move_pointer", cfg_false, CFGF_NONE),
|
||||||
CFG_BOOL((char *) "allow_lower_floats", cfg_false, CFGF_NONE),
|
CFG_BOOL((char *) "allow_lower_floats", cfg_false, CFGF_NONE),
|
||||||
|
CFG_BOOL((char *) "sloppy_focus", cfg_true, CFGF_NONE),
|
||||||
CFG_STR((char *) "font", (char *) "mono-12", CFGF_NONE),
|
CFG_STR((char *) "font", (char *) "mono-12", CFGF_NONE),
|
||||||
CFG_END()
|
CFG_END()
|
||||||
};
|
};
|
||||||
|
|
2
config.h
2
config.h
|
@ -241,6 +241,8 @@ typedef struct
|
||||||
Bool allow_lower_floats;
|
Bool allow_lower_floats;
|
||||||
/** Respect resize hints */
|
/** Respect resize hints */
|
||||||
Bool resize_hints;
|
Bool resize_hints;
|
||||||
|
/** Sloppy focus: focus follow mouse */
|
||||||
|
Bool sloppy_focus;
|
||||||
/** Normal colors */
|
/** Normal colors */
|
||||||
XColor colors_normal[ColLast];
|
XColor colors_normal[ColLast];
|
||||||
/** Selected colors */
|
/** Selected colors */
|
||||||
|
|
4
event.c
4
event.c
|
@ -232,10 +232,10 @@ handle_event_enternotify(XEvent * e)
|
||||||
|
|
||||||
if(ev->mode != NotifyNormal || ev->detail == NotifyInferior)
|
if(ev->mode != NotifyNormal || ev->detail == NotifyInferior)
|
||||||
return;
|
return;
|
||||||
if((c = get_client_bywin(globalconf.clients, ev->window)))
|
if((c = get_client_bywin(globalconf.clients, ev->window)) && globalconf.screens[c->screen].sloppy_focus)
|
||||||
{
|
{
|
||||||
curtags = get_current_tags(c->screen);
|
|
||||||
focus(c, ev->same_screen, c->screen);
|
focus(c, ev->same_screen, c->screen);
|
||||||
|
curtags = get_current_tags(c->screen);
|
||||||
if (c->isfloating || curtags[0]->layout->arrange == layout_floating)
|
if (c->isfloating || curtags[0]->layout->arrange == layout_floating)
|
||||||
window_grabbuttons(get_phys_screen(c->screen), c->win, True, False);
|
window_grabbuttons(get_phys_screen(c->screen), c->win, True, False);
|
||||||
p_delete(&curtags);
|
p_delete(&curtags);
|
||||||
|
|
Loading…
Reference in New Issue