URI: 
       dwm-push-20201112-61bb8b2.diff - sites - public wiki contents of suckless.org
  HTML git clone git://git.suckless.org/sites
   DIR Log
   DIR Files
   DIR Refs
       ---
       dwm-push-20201112-61bb8b2.diff (1994B)
       ---
            1 From b2faf234f21e61327ded730024db37bb36635e30 Mon Sep 17 00:00:00 2001
            2 From: Alex Cole <ajzcole@airmail.cc>
            3 Date: Thu, 12 Nov 2020 17:36:52 +1300
            4 Subject: [PATCH] Push patch added
            5 
            6 ---
            7  dwm.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            8  1 file changed, 56 insertions(+)
            9 
           10 diff --git a/dwm.c b/dwm.c
           11 index 664c527..039ab00 100644
           12 --- a/dwm.c
           13 +++ b/dwm.c
           14 @@ -186,7 +186,10 @@ static void motionnotify(XEvent *e);
           15  static void movemouse(const Arg *arg);
           16  static Client *nexttiled(Client *c);
           17  static void pop(Client *);
           18 +static Client *prevtiled(Client *c);
           19  static void propertynotify(XEvent *e);
           20 +static void pushdown(const Arg *arg);
           21 +static void pushup(const Arg *arg);
           22  static void quit(const Arg *arg);
           23  static Monitor *recttomon(int x, int y, int w, int h);
           24  static void resize(Client *c, int x, int y, int w, int h, int interact);
           25 @@ -1209,6 +1212,16 @@ pop(Client *c)
           26          arrange(c->mon);
           27  }
           28  
           29 +Client *
           30 +prevtiled(Client *c) {
           31 +        Client *p, *r;
           32 +
           33 +        for(p = selmon->clients, r = NULL; p && p != c; p = p->next)
           34 +                if(!p->isfloating && ISVISIBLE(p))
           35 +                        r = p;
           36 +        return r;
           37 +}
           38 +
           39  void
           40  propertynotify(XEvent *e)
           41  {
           42 @@ -1246,6 +1259,49 @@ propertynotify(XEvent *e)
           43          }
           44  }
           45  
           46 +void
           47 +pushdown(const Arg *arg) {
           48 +        Client *sel = selmon->sel, *c;
           49 +
           50 +        if(!sel || sel->isfloating)
           51 +                return;
           52 +        if((c = nexttiled(sel->next))) {
           53 +                detach(sel);
           54 +                sel->next = c->next;
           55 +                c->next = sel;
           56 +        } else {
           57 +                detach(sel);
           58 +                attach(sel);
           59 +        }
           60 +        focus(sel);
           61 +        arrange(selmon);
           62 +}
           63 +
           64 +void
           65 +pushup(const Arg *arg) {
           66 +        Client *sel = selmon->sel, *c;
           67 +
           68 +        if(!sel || sel->isfloating)
           69 +                return;
           70 +        if((c = prevtiled(sel))) {
           71 +                detach(sel);
           72 +                sel->next = c;
           73 +                if(selmon->clients == c)
           74 +                        selmon->clients = sel;
           75 +                else {
           76 +                        for(c = selmon->clients; c->next != sel->next; c = c->next);
           77 +                        c->next = sel;
           78 +                }
           79 +        } else {
           80 +                for(c = sel; c->next; c = c->next);
           81 +                detach(sel);
           82 +                sel->next = NULL;
           83 +                c->next = sel;
           84 +        }
           85 +        focus(sel);
           86 +        arrange(selmon);
           87 +}
           88 +
           89  void
           90  quit(const Arg *arg)
           91  {
           92 -- 
           93 2.29.2
           94