diff options
| author | Abhinav <abhinav.prsai@gmail.com> | 2025-05-31 13:12:32 +0100 |
|---|---|---|
| committer | Abhinav <abhinav.prsai@gmail.com> | 2025-05-31 13:12:32 +0100 |
| commit | 3a1674608199a450f8dca541a80cce12334923e3 (patch) | |
| tree | fc4fbd26de2430e2fe1b8afa9f0ba4a3dc01f19f /src/sxwm.c | |
| parent | 17d90488c53326f2e52706d5dc2761799775b5e7 (diff) | |
added option for new windows to take focus
Diffstat (limited to 'src/sxwm.c')
| -rw-r--r-- | src/sxwm.c | 13 |
1 files changed, 12 insertions, 1 deletions
@@ -14,6 +14,7 @@ * (C) Abhinav Prasai 2025 */ +#include <X11/X.h> #include <err.h> #include <stdio.h> #include <limits.h> @@ -828,10 +829,19 @@ void hdl_map_req(XEvent *xev) tile(); else if (c->floating) XRaiseWindow(dpy, w); + + if (user_config.new_win_focus) { + focused = c; + XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime); + send_wm_take_focus(c->win); + } + XMapWindow(dpy, w); for (Client *c = workspaces[current_ws]; c; c = c->next) if (c->win == w) c->mapped = True; + + update_borders(); } @@ -1044,6 +1054,7 @@ void init_defaults(void) default_config.resize_master_amt = 5; default_config.snap_distance = 5; default_config.bindsn = 0; + default_config.new_win_focus = True; for (unsigned long i = 0; i < LENGTH(binds); i++) { default_config.binds[i].mods = binds[i].mods; @@ -1778,4 +1789,4 @@ int main(int ac, char **av) printf("sxwm: starting...\n"); run(); return 0; -}
\ No newline at end of file +} |
