aboutsummaryrefslogtreecommitdiffstats
path: root/dwm-zoomswap-6.2.diff
diff options
context:
space:
mode:
authorJoe <bousset.rudy@gmail.com>2022-08-25 16:37:07 +0200
committerJoe <bousset.rudy@gmail.com>2022-08-25 16:37:07 +0200
commit6e883f1bcf4342143f03da1d06ca4fa22bcc0368 (patch)
treea57a9dbbce8a9c1dbc2d2301c47793fcd9d86afa /dwm-zoomswap-6.2.diff
parentup (diff)
downloaddwm-6e883f1bcf4342143f03da1d06ca4fa22bcc0368.tar.gz
dwm-6e883f1bcf4342143f03da1d06ca4fa22bcc0368.tar.bz2
dwm-6e883f1bcf4342143f03da1d06ca4fa22bcc0368.tar.xz
dwm-6e883f1bcf4342143f03da1d06ca4fa22bcc0368.tar.zst
dwm-6e883f1bcf4342143f03da1d06ca4fa22bcc0368.zip
up
Diffstat (limited to 'dwm-zoomswap-6.2.diff')
-rw-r--r--dwm-zoomswap-6.2.diff95
1 files changed, 0 insertions, 95 deletions
diff --git a/dwm-zoomswap-6.2.diff b/dwm-zoomswap-6.2.diff
deleted file mode 100644
index 3c658e6..0000000
--- a/dwm-zoomswap-6.2.diff
+++ /dev/null
@@ -1,95 +0,0 @@
-From 3867ef5a68e15a4faff377ddbc8371853de4a800 Mon Sep 17 00:00:00 2001
-From: aleks <aleks.stier@icloud.com>
-Date: Sat, 19 Oct 2019 00:56:21 +0200
-Subject: [PATCH] Put master to exact position of zoomed client
-
-The default behaviour when zooming a client is to put the previous
-master on top of the client-stack. This patch puts the master to the
-exact position of the zoomed client in the stack.
----
- dwm.c | 44 ++++++++++++++++++++++++++++++++++++++++----
- 1 file changed, 40 insertions(+), 4 deletions(-)
-
-diff --git a/dwm.c b/dwm.c
-index 4465af1..1719b36 100644
---- a/dwm.c
-+++ b/dwm.c
-@@ -165,6 +165,7 @@ static void drawbar(Monitor *m);
- static void drawbars(void);
- static void enternotify(XEvent *e);
- static void expose(XEvent *e);
-+static Client *findbefore(Client *c);
- static void focus(Client *c);
- static void focusin(XEvent *e);
- static void focusmon(const Arg *arg);
-@@ -235,6 +236,7 @@ static int xerrorstart(Display *dpy, XErrorEvent *ee);
- static void zoom(const Arg *arg);
-
- /* variables */
-+static Client *prevzoom = NULL;
- static const char broken[] = "broken";
- static char stext[256];
- static int screen;
-@@ -780,6 +782,16 @@ expose(XEvent *e)
- drawbar(m);
- }
-
-+Client *
-+findbefore(Client *c)
-+{
-+ Client *tmp;
-+ if (c == selmon->clients)
-+ return NULL;
-+ for (tmp = selmon->clients; tmp && tmp->next != c; tmp = tmp->next);
-+ return tmp;
-+}
-+
- void
- focus(Client *c)
- {
-@@ -2114,14 +2126,38 @@ void
- zoom(const Arg *arg)
- {
- Client *c = selmon->sel;
-+ Client *at = NULL, *cold, *cprevious = NULL;
-
- if (!selmon->lt[selmon->sellt]->arrange
- || (selmon->sel && selmon->sel->isfloating))
- return;
-- if (c == nexttiled(selmon->clients))
-- if (!c || !(c = nexttiled(c->next)))
-- return;
-- pop(c);
-+ if (c == nexttiled(selmon->clients)) {
-+ at = findbefore(prevzoom);
-+ if (at)
-+ cprevious = nexttiled(at->next);
-+ if (!cprevious || cprevious != prevzoom) {
-+ prevzoom = NULL;
-+ if (!c || !(c = nexttiled(c->next)))
-+ return;
-+ } else
-+ c = cprevious;
-+ }
-+ cold = nexttiled(selmon->clients);
-+ if (c != cold && !at)
-+ at = findbefore(c);
-+ detach(c);
-+ attach(c);
-+ /* swap windows instead of pushing the previous one down */
-+ if (c != cold && at) {
-+ prevzoom = cold;
-+ if (cold && at != cold) {
-+ detach(cold);
-+ cold->next = at->next;
-+ at->next = cold;
-+ }
-+ }
-+ focus(c);
-+ arrange(c->mon);
- }
-
- int
---
-2.23.0
-