commit 145403949df5569a3b660befd5a2bc98bd71ad06
Author: Rob Pilling <[email protected]>
Date:   Tue Jul 28 18:43:02 2020 +0100

    [dwm][patch][alwaysontop] fix alwaysontop clients spanning monitors

diff --git a/dwm.suckless.org/patches/alwaysontop/alwaysontop-6.2.diff 
b/dwm.suckless.org/patches/alwaysontop/alwaysontop-6.2.diff
index 8c092ec5..21b1be1d 100644
--- a/dwm.suckless.org/patches/alwaysontop/alwaysontop-6.2.diff
+++ b/dwm.suckless.org/patches/alwaysontop/alwaysontop-6.2.diff
@@ -1,14 +1,14 @@
-From 05444e0cc72422b05000ddf748a572ee83bed9f4 Mon Sep 17 00:00:00 2001
+From 965f36e67825a790074c6860c52ccebb3791daa4 Mon Sep 17 00:00:00 2001
 From: Rob Pilling <[email protected]>
 Date: Mon, 27 Jul 2020 20:11:08 +0100
 Subject: [PATCH] alwaysontop
 
 ---
  config.h |  1 +
- dwm.c    | 41 +++++++++++++++++++++++++++++++++++++++--
- 2 files changed, 40 insertions(+), 2 deletions(-)
+ dwm.c    | 43 +++++++++++++++++++++++++++++++++++++++++--
+ 2 files changed, 42 insertions(+), 2 deletions(-)
 
-diff --git a/config.def.h b/config.def.h
+diff --git a/config.h b/config.h
 index 7283a2d..c10bd8b 100644
 --- a/config.h
 +++ b/config.h
@@ -21,7 +21,7 @@ index 7283a2d..c10bd8b 100644
        { MODKEY|ShiftMask,             XK_0,      tag,            {.ui = ~0 } 
},
        { MODKEY,                       XK_comma,  focusmon,       {.i = -1 } },
 diff --git a/dwm.c b/dwm.c
-index cc36b03..1b1b491 100644
+index cc36b03..cbd0dca 100644
 --- a/dwm.c
 +++ b/dwm.c
 @@ -92,7 +92,7 @@ struct Client {
@@ -54,23 +54,25 @@ index cc36b03..1b1b491 100644
                } else {
                        drw_setscheme(drw, scheme[SchemeNorm]);
                        drw_rect(drw, x, 0, w, bh, 1, 1);
-@@ -1430,6 +1434,15 @@ restack(Monitor *m)
+@@ -1430,6 +1434,17 @@ restack(Monitor *m)
                return;
        if (m->sel->isfloating || !m->lt[m->sellt]->arrange)
                XRaiseWindow(dpy, m->sel->win);
 +
 +      /* raise the aot window */
-+      for(c = m->clients; c; c = c->next){
-+              if(c->isalwaysontop){
-+                      XRaiseWindow(dpy, c->win);
-+                      break;
++      for(Monitor *m_search = mons; m_search; m_search = m_search->next){
++              for(c = m_search->clients; c; c = c->next){
++                      if(c->isalwaysontop){
++                              XRaiseWindow(dpy, c->win);
++                              break;
++                      }
 +              }
 +      }
 +
        if (m->lt[m->sellt]->arrange) {
                wc.stack_mode = Below;
                wc.sibling = m->barwin;
-@@ -1803,6 +1816,30 @@ togglefloating(const Arg *arg)
+@@ -1803,6 +1818,30 @@ togglefloating(const Arg *arg)
        arrange(selmon);
  }
  


Reply via email to