[wiki] [sites] [dwm][cantogglefloating] single client fix || Georgios Oxinos

From: <git_AT_suckless.org>
Date: Fri, 05 Feb 2021 21:11:55 +0100

commit d9fce82372dd08acbb05640b1bb9e57ca968f2e7
Author: Georgios Oxinos <oxinosg_AT_gmail.com>
Date: Fri Feb 5 21:11:46 2021 +0100

    [dwm][cantogglefloating] single client fix

diff --git a/dwm.suckless.org/patches/cantogglefloating/dwm-cantogglefloating-20210125-fc30936.diff b/dwm.suckless.org/patches/cantogglefloating/dwm-cantogglefloating-20210205-f42c25c.diff
similarity index 82%
rename from dwm.suckless.org/patches/cantogglefloating/dwm-cantogglefloating-20210125-fc30936.diff
rename to dwm.suckless.org/patches/cantogglefloating/dwm-cantogglefloating-20210205-f42c25c.diff
index 623bcce2..7b306bd8 100644
--- a/dwm.suckless.org/patches/cantogglefloating/dwm-cantogglefloating-20210125-fc30936.diff
+++ b/dwm.suckless.org/patches/cantogglefloating/dwm-cantogglefloating-20210205-f42c25c.diff
_AT_@ -1,13 +1,13 @@
-From fc309367ecf8388a77f899d7f007524a84ed3ab7 Mon Sep 17 00:00:00 2001
+From f42c25cf04c10cd042f36346423256aae4e4b80c Mon Sep 17 00:00:00 2001
 From: Georgios Oxinos <georgios.oxinos.extern_AT_elinvar.de>
-Date: Mon, 25 Jan 2021 10:24:45 +0100
-Subject: [PATCH] [dwm][patch] patch that allows disabling focus on floating
- clients
+Date: Fri, 5 Feb 2021 21:06:04 +0100
+Subject: [PATCH] [dwm][cantogglefloating] patch that allows disabling focus on
+ floating clients
 
 ---
  config.def.h | 1 +
- dwm.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++-----
- 2 files changed, 59 insertions(+), 5 deletions(-)
+ dwm.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++++----
+ 2 files changed, 63 insertions(+), 5 deletions(-)
 
 diff --git a/config.def.h b/config.def.h
 index 1c0b587..005fb5d 100644
_AT_@ -22,7 +22,7 @@ index 1c0b587..005fb5d 100644
          { MODKEY, XK_Tab, view, {0} },
          { MODKEY|ShiftMask, XK_c, killclient, {0} },
 diff --git a/dwm.c b/dwm.c
-index 4465af1..d6417d6 100644
+index 664c527..a80f7b6 100644
 --- a/dwm.c
 +++ b/dwm.c
 _AT_@ -92,7 +92,7 @@ struct Client {
_AT_@ -42,7 +42,7 @@ index 4465af1..d6417d6 100644
          int monitor;
  } Rule;
  
-_AT_@ -191,6 +192,7 @@ static Monitor *recttomon(int x, int y, int w, int h);
+_AT_@ -192,6 +193,7 @@ static Monitor *recttomon(int x, int y, int w, int h);
  static void resize(Client *c, int x, int y, int w, int h, int interact);
  static void resizeclient(Client *c, int x, int y, int w, int h);
  static void resizemouse(const Arg *arg);
_AT_@ -50,7 +50,7 @@ index 4465af1..d6417d6 100644
  static void restack(Monitor *m);
  static void run(void);
  static void scan(void);
-_AT_@ -211,6 +213,7 @@ static void tagmon(const Arg *arg);
+_AT_@ -212,6 +214,7 @@ static void tagmon(const Arg *arg);
  static void tile(Monitor *);
  static void togglebar(const Arg *arg);
  static void togglefloating(const Arg *arg);
_AT_@ -58,16 +58,16 @@ index 4465af1..d6417d6 100644
  static void toggletag(const Arg *arg);
  static void toggleview(const Arg *arg);
  static void unfocus(Client *c, int setfocus);
-_AT_@ -788,6 +791,8 @@ focus(Client *c)
+_AT_@ -789,6 +792,8 @@ focus(Client *c)
          if (selmon->sel && selmon->sel != c)
                  unfocus(selmon->sel, 0);
          if (c) {
-+ if (c->cantfocus)
-+ return;
++ if (c->cantfocus)
++ return;
                  if (c->mon != selmon)
                          selmon = c->mon;
                  if (c->isurgent)
-_AT_@ -837,16 +842,16 @@ focusstack(const Arg *arg)
+_AT_@ -838,16 +843,16 @@ focusstack(const Arg *arg)
          if (!selmon->sel)
                  return;
          if (arg->i > 0) {
_AT_@ -88,7 +88,7 @@ index 4465af1..d6417d6 100644
                                          c = i;
          }
          if (c) {
-_AT_@ -1716,6 +1721,54 @@ togglefloating(const Arg *arg)
+_AT_@ -1719,6 +1724,58 @@ togglefloating(const Arg *arg)
          if (selmon->sel->isfloating)
                  resize(selmon->sel, selmon->sel->x, selmon->sel->y,
                          selmon->sel->w, selmon->sel->h, 0);
_AT_@ -121,9 +121,13 @@ index 4465af1..d6417d6 100644
 + unsigned int i, n, y;
 + Client *c, *tmp;
 +
-+ for (n = 0, c = selmon->clients; c; c = c->next, n++);
-+ if (n == 0)
++ for (n = 0, c = selmon->clients; c; c = c->next)
++ if (c && !c->isfloating)
++ n++;
++ if (n == 0) {
++ resetcanfocusfloating();
 + return;
++ }
 +
 + for (i = 0, y = 0, c = selmon->clients; c; c = c->next, i++)
 + if (c->isfloating) {
diff --git a/dwm.suckless.org/patches/cantogglefloating/index.md b/dwm.suckless.org/patches/cantogglefloating/index.md
index 6ed032a5..10fb1e3e 100644
--- a/dwm.suckless.org/patches/cantogglefloating/index.md
+++ b/dwm.suckless.org/patches/cantogglefloating/index.md
_AT__AT_ -9,7 +9,7 @@ Inspired by [canfocusrule](https://dwm.suckless.org/patches/canfocusrule/) patch
 
 Download
 --------
-* [dwm-cantogglefloating-20210125-fc30936.diff](dwm-cantogglefloating-20210125-fc30936.diff)
+* [dwm-cantogglefloating-20210205-f42c25c.diff](dwm-cantogglefloating-20210205-f42c25c.diff)
 
 Authors
 -------
Received on Fri Feb 05 2021 - 21:11:55 CET

This archive was generated by hypermail 2.3.0 : Fri Feb 05 2021 - 21:12:52 CET