diff options
author | Acid Bong <acid-bong@cock.lt> | 2022-10-19 13:30:04 +0300 |
---|---|---|
committer | Acid Bong <acid-bong@cock.lt> | 2022-10-19 13:30:04 +0300 |
commit | d106e4c852402c25c6fa9f81b286dfa747886f3b (patch) | |
tree | 06067b0be0f2878c2f7e440a7c2d461bb7c7270d /patches/8-focusonclick-20200110-61bb8b2.diff | |
parent | f44fcd4f15932c08ca0d2e1b995a4707c476a564 (diff) | |
download | dwm-d106e4c852402c25c6fa9f81b286dfa747886f3b.tar.gz |
personal focusonclick patch
Diffstat (limited to 'patches/8-focusonclick-20200110-61bb8b2.diff')
-rw-r--r-- | patches/8-focusonclick-20200110-61bb8b2.diff | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/patches/8-focusonclick-20200110-61bb8b2.diff b/patches/8-focusonclick-20200110-61bb8b2.diff new file mode 100644 index 0000000..b6ba2bb --- /dev/null +++ b/patches/8-focusonclick-20200110-61bb8b2.diff @@ -0,0 +1,130 @@ +From f44fcd4f15932c08ca0d2e1b995a4707c476a564 Mon Sep 17 00:00:00 2001 +From: Acid Bong <acid-bong@cock.lt> +Date: Wed, 19 Oct 2022 13:28:19 +0300 +Subject: [PATCH] patch: focusonclick (my fav) + +--- + config.def.h | 1 + + dwm.c | 47 ++++------------------------------------------- + 2 files changed, 5 insertions(+), 43 deletions(-) + +diff --git a/config.def.h b/config.def.h +index 1de3c06..eddbc03 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -9,6 +9,7 @@ static const unsigned int systrayonleft = 0; /* 0: systray in the right corne + static const unsigned int systrayspacing = 2; /* systray spacing */ + static const int systraypinningfailfirst = 1; /* 1: if pinning fails, display systray on the first monitor, False: display systray on the last monitor*/ + static const int showsystray = 1; /* 0 means no systray */ ++static const int focusonwheel = 0; + static const int showbar = 1; /* 0 means no bar */ + static const int topbar = 1; /* 0 means bottom bar */ + static const char *fonts[] = { "monospace:size=10" }; +diff --git a/dwm.c b/dwm.c +index 40ac0df..412f04f 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -186,7 +186,6 @@ static void detachstack(Client *c); + static Monitor *dirtomon(int dir); + static void drawbar(Monitor *m); + static void drawbars(void); +-static void enternotify(XEvent *e); + static void expose(XEvent *e); + static void focus(Client *c); + static void focusin(XEvent *e); +@@ -206,7 +205,6 @@ static void manage(Window w, XWindowAttributes *wa); + static void mappingnotify(XEvent *e); + static void maprequest(XEvent *e); + static void monocle(Monitor *m); +-static void motionnotify(XEvent *e); + static void movemouse(const Arg *arg); + static Client *nexttiled(Client *c); + static void pop(Client *c); +@@ -284,13 +282,11 @@ static void (*handler[LASTEvent]) (XEvent *) = { + [ConfigureRequest] = configurerequest, + [ConfigureNotify] = configurenotify, + [DestroyNotify] = destroynotify, +- [EnterNotify] = enternotify, + [Expose] = expose, + [FocusIn] = focusin, + [KeyPress] = keypress, + [MappingNotify] = mappingnotify, + [MapRequest] = maprequest, +- [MotionNotify] = motionnotify, + [PropertyNotify] = propertynotify, + [ResizeRequest] = resizerequest, + [UnmapNotify] = unmapnotify +@@ -462,7 +458,8 @@ buttonpress(XEvent *e) + + click = ClkRootWin; + /* focus monitor if necessary */ +- if ((m = wintomon(ev->window)) && m != selmon) { ++ if ((m = wintomon(ev->window)) && m != selmon ++ && (focusonwheel || (ev->button != Button4 && ev->button != Button5))) { + unfocus(selmon->sel, 1); + selmon = m; + focus(NULL); +@@ -482,8 +479,8 @@ buttonpress(XEvent *e) + else + click = ClkWinTitle; + } else if ((c = wintoclient(ev->window))) { +- focus(c); +- restack(selmon); ++ if (focusonwheel || (ev->button != Button4 && ev->button != Button5)) ++ focus(c); + XAllowEvents(dpy, ReplayPointer, CurrentTime); + click = ClkClientWin; + } +@@ -859,25 +856,6 @@ drawbars(void) + drawbar(m); + } + +-void +-enternotify(XEvent *e) +-{ +- Client *c; +- Monitor *m; +- XCrossingEvent *ev = &e->xcrossing; +- +- if ((ev->mode != NotifyNormal || ev->detail == NotifyInferior) && ev->window != root) +- return; +- c = wintoclient(ev->window); +- m = c ? c->mon : wintomon(ev->window); +- if (m != selmon) { +- unfocus(selmon->sel, 1); +- selmon = m; +- } else if (!c || c == selmon->sel) +- return; +- focus(c); +-} +- + void + expose(XEvent *e) + { +@@ -1257,23 +1235,6 @@ monocle(Monitor *m) + resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, 0); + } + +-void +-motionnotify(XEvent *e) +-{ +- static Monitor *mon = NULL; +- Monitor *m; +- XMotionEvent *ev = &e->xmotion; +- +- if (ev->window != root) +- return; +- if ((m = recttomon(ev->x_root, ev->y_root, 1, 1)) != mon && mon) { +- unfocus(selmon->sel, 1); +- selmon = m; +- focus(NULL); +- } +- mon = m; +-} +- + void + movemouse(const Arg *arg) + { +-- +2.38.0 + |