Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@ -19,6 +19,8 @@ Browsing patches? There is a [map of patches](https://coggle.it/diagram/X9IiSSM6
|
|||||||
|
|
||||||
### Changelog:
|
### Changelog:
|
||||||
|
|
||||||
|
2024-01-31 - Added the placedir patch
|
||||||
|
|
||||||
2023-12-22 - Added the do-not-die-on-color-allocation-failure patch
|
2023-12-22 - Added the do-not-die-on-color-allocation-failure patch
|
||||||
|
|
||||||
2023-12-01 - Added the sendmoncenter patch
|
2023-12-01 - Added the sendmoncenter patch
|
||||||
@ -601,6 +603,9 @@ Browsing patches? There is a [map of patches](https://coggle.it/diagram/X9IiSSM6
|
|||||||
- [pertag](https://dwm.suckless.org/patches/pertag/)
|
- [pertag](https://dwm.suckless.org/patches/pertag/)
|
||||||
- adds nmaster, mfact, layouts and more per tag rather than per monitor
|
- adds nmaster, mfact, layouts and more per tag rather than per monitor
|
||||||
|
|
||||||
|
- [placedir](https://github.com/bakkeby/patches/wiki/placedir)
|
||||||
|
- allows tiled windows to be moved in any direction (up, down, left, right)
|
||||||
|
|
||||||
- [placemouse](https://github.com/bakkeby/patches/wiki/placemouse)
|
- [placemouse](https://github.com/bakkeby/patches/wiki/placemouse)
|
||||||
- lets the user change the position of a client in the stack using the mouse.
|
- lets the user change the position of a client in the stack using the mouse.
|
||||||
|
|
||||||
|
35
README.org
35
README.org
@ -123,6 +123,7 @@
|
|||||||
- [[#only-one-rule-match][Only One Rule Match]]
|
- [[#only-one-rule-match][Only One Rule Match]]
|
||||||
- [[#only-quit-on-empty][Only Quit On Empty]]
|
- [[#only-quit-on-empty][Only Quit On Empty]]
|
||||||
- [[#per-tag][Per Tag]]
|
- [[#per-tag][Per Tag]]
|
||||||
|
- [[#place-direction][Place Direction]]
|
||||||
- [[#place-mouse][Place Mouse]]
|
- [[#place-mouse][Place Mouse]]
|
||||||
- [[#push][Push]]
|
- [[#push][Push]]
|
||||||
- [[#renamed-scratchpads][Renamed Scratchpads]]
|
- [[#renamed-scratchpads][Renamed Scratchpads]]
|
||||||
@ -306,6 +307,8 @@ Browsing patches? There is a [[https://coggle.it/diagram/X9IiSSM6PTWOM9Wz][map o
|
|||||||
|
|
||||||
** Changelog
|
** Changelog
|
||||||
|
|
||||||
|
2024-01-31 - Added the placedir patch
|
||||||
|
|
||||||
2023-12-22 - Added the do-not-die-on-color-allocation-failure patch
|
2023-12-22 - Added the do-not-die-on-color-allocation-failure patch
|
||||||
|
|
||||||
2023-12-01 - Added the sendmoncenter patch
|
2023-12-01 - Added the sendmoncenter patch
|
||||||
@ -835,6 +838,9 @@ Browsing patches? There is a [[https://coggle.it/diagram/X9IiSSM6PTWOM9Wz][map o
|
|||||||
- [[https://dwm.suckless.org/patches/pertag/][pertag]]
|
- [[https://dwm.suckless.org/patches/pertag/][pertag]]
|
||||||
- adds nmaster, mfact, layouts and more per tag rather than per monitor
|
- adds nmaster, mfact, layouts and more per tag rather than per monitor
|
||||||
|
|
||||||
|
- [[https://github.com/bakkeby/patches/wiki/placedir][placedir]]
|
||||||
|
- allows tiled windows to be moved in any direction (up, down, left, right)
|
||||||
|
|
||||||
- [[https://github.com/bakkeby/patches/wiki/placemouse][placemouse]]
|
- [[https://github.com/bakkeby/patches/wiki/placemouse][placemouse]]
|
||||||
- lets the user change the position of a client in the stack using the mouse.
|
- lets the user change the position of a client in the stack using the mouse.
|
||||||
|
|
||||||
@ -2541,6 +2547,16 @@ This controls whether or not to also store bar position on a per tag basis, or l
|
|||||||
#define PERTAGBAR_PATCH 0
|
#define PERTAGBAR_PATCH 0
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
*** Place Direction
|
||||||
|
|
||||||
|
Similar to the focusdir patch this patch allow users to move a window in any direction in the tiled stack (up, down, left, right).
|
||||||
|
|
||||||
|
https://github.com/bakkeby/patches/wiki/placedir
|
||||||
|
|
||||||
|
#+BEGIN_SRC c :tangle patches.def.h
|
||||||
|
#define PLACEDIR_PATCH 0
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
*** Place Mouse
|
*** Place Mouse
|
||||||
|
|
||||||
This patch lets you change the position of a client in the stack using the mouse.
|
This patch lets you change the position of a client in the stack using the mouse.
|
||||||
@ -4848,6 +4864,13 @@ static const Key keys[] = {
|
|||||||
{ MODKEY, XK_Down, focusdir, {.i = 3 } }, // down
|
{ MODKEY, XK_Down, focusdir, {.i = 3 } }, // down
|
||||||
#endif // FOCUSDIR_PATCH
|
#endif // FOCUSDIR_PATCH
|
||||||
|
|
||||||
|
#if PLACEDIR_PATCH
|
||||||
|
{ MODKEY|ControlMask, XK_Left, placedir, {.i = 0 } }, // left
|
||||||
|
{ MODKEY|ControlMask, XK_Right, placedir, {.i = 1 } }, // right
|
||||||
|
{ MODKEY|ControlMask, XK_Up, placedir, {.i = 2 } }, // up
|
||||||
|
{ MODKEY|ControlMask, XK_Down, placedir, {.i = 3 } }, // down
|
||||||
|
#endif // PLACEDIR_PATCH
|
||||||
|
|
||||||
#if SWAPFOCUS_PATCH && PERTAG_PATCH
|
#if SWAPFOCUS_PATCH && PERTAG_PATCH
|
||||||
{ MODKEY, XK_s, swapfocus, {.i = -1 } },
|
{ MODKEY, XK_s, swapfocus, {.i = -1 } },
|
||||||
#endif // SWAPFOCUS_PATCH
|
#endif // SWAPFOCUS_PATCH
|
||||||
@ -4978,8 +5001,8 @@ static const Key keys[] = {
|
|||||||
#endif // SHIFTVIEW_CLIENTS_PATCH
|
#endif // SHIFTVIEW_CLIENTS_PATCH
|
||||||
|
|
||||||
#if SHIFTBOTH_PATCH
|
#if SHIFTBOTH_PATCH
|
||||||
{ MODKEY|ControlMask, XK_Left, shiftboth, { .i = -1 } }, // note keybinding conflict with focusadjacenttag tagandviewtoleft
|
{ MODKEY|ControlMask, XK_Left, shiftboth, { .i = -1 } }, // note keybinding conflict with focusadjacenttag tagandviewtoleft placedir
|
||||||
{ MODKEY|ControlMask, XK_Right, shiftboth, { .i = +1 } }, // note keybinding conflict with focusadjacenttag tagandviewtoright
|
{ MODKEY|ControlMask, XK_Right, shiftboth, { .i = +1 } }, // note keybinding conflict with focusadjacenttag tagandviewtoright placedir
|
||||||
#endif // SHIFTBOTH_PATCH
|
#endif // SHIFTBOTH_PATCH
|
||||||
|
|
||||||
#if SHIFTSWAPTAGS_PATCH && SWAPTAGS_PATCH
|
#if SHIFTSWAPTAGS_PATCH && SWAPTAGS_PATCH
|
||||||
@ -5117,8 +5140,8 @@ static const Key keys[] = {
|
|||||||
{ MODKEY, XK_Right, viewtoright, {0} }, // note keybinding conflict with focusdir
|
{ MODKEY, XK_Right, viewtoright, {0} }, // note keybinding conflict with focusdir
|
||||||
{ MODKEY|ShiftMask, XK_Left, tagtoleft, {0} }, // note keybinding conflict with shifttag
|
{ MODKEY|ShiftMask, XK_Left, tagtoleft, {0} }, // note keybinding conflict with shifttag
|
||||||
{ MODKEY|ShiftMask, XK_Right, tagtoright, {0} }, // note keybinding conflict with shifttag
|
{ MODKEY|ShiftMask, XK_Right, tagtoright, {0} }, // note keybinding conflict with shifttag
|
||||||
{ MODKEY|ControlMask, XK_Left, tagandviewtoleft, {0} },
|
{ MODKEY|ControlMask, XK_Left, tagandviewtoleft, {0} }, // note keybinding conflict with placedir
|
||||||
{ MODKEY|ControlMask, XK_Right, tagandviewtoright, {0} },
|
{ MODKEY|ControlMask, XK_Right, tagandviewtoright, {0} }, // note keybinding conflict with placedir
|
||||||
#endif // FOCUSADJACENTTAG_PATCH
|
#endif // FOCUSADJACENTTAG_PATCH
|
||||||
|
|
||||||
#if TAGALL_PATCH
|
#if TAGALL_PATCH
|
||||||
@ -5163,8 +5186,8 @@ static const Key keys[] = {
|
|||||||
#if BAR_TAGGRID_PATCH
|
#if BAR_TAGGRID_PATCH
|
||||||
{ MODKEY|ControlMask, XK_Up, switchtag, { .ui = SWITCHTAG_UP | SWITCHTAG_VIEW } },
|
{ MODKEY|ControlMask, XK_Up, switchtag, { .ui = SWITCHTAG_UP | SWITCHTAG_VIEW } },
|
||||||
{ MODKEY|ControlMask, XK_Down, switchtag, { .ui = SWITCHTAG_DOWN | SWITCHTAG_VIEW } },
|
{ MODKEY|ControlMask, XK_Down, switchtag, { .ui = SWITCHTAG_DOWN | SWITCHTAG_VIEW } },
|
||||||
{ MODKEY|ControlMask, XK_Right, switchtag, { .ui = SWITCHTAG_RIGHT | SWITCHTAG_VIEW } },
|
{ MODKEY|ControlMask, XK_Right, switchtag, { .ui = SWITCHTAG_RIGHT | SWITCHTAG_VIEW } }, // note keybinding conflict with placedir
|
||||||
{ MODKEY|ControlMask, XK_Left, switchtag, { .ui = SWITCHTAG_LEFT | SWITCHTAG_VIEW } },
|
{ MODKEY|ControlMask, XK_Left, switchtag, { .ui = SWITCHTAG_LEFT | SWITCHTAG_VIEW } }, // note keybinding conflict with placedir
|
||||||
{ MODKEY|Mod1Mask, XK_Up, switchtag, { .ui = SWITCHTAG_UP | SWITCHTAG_TAG | SWITCHTAG_VIEW } },
|
{ MODKEY|Mod1Mask, XK_Up, switchtag, { .ui = SWITCHTAG_UP | SWITCHTAG_TAG | SWITCHTAG_VIEW } },
|
||||||
{ MODKEY|Mod1Mask, XK_Down, switchtag, { .ui = SWITCHTAG_DOWN | SWITCHTAG_TAG | SWITCHTAG_VIEW } },
|
{ MODKEY|Mod1Mask, XK_Down, switchtag, { .ui = SWITCHTAG_DOWN | SWITCHTAG_TAG | SWITCHTAG_VIEW } },
|
||||||
{ MODKEY|Mod1Mask, XK_Right, switchtag, { .ui = SWITCHTAG_RIGHT | SWITCHTAG_TAG | SWITCHTAG_VIEW } },
|
{ MODKEY|Mod1Mask, XK_Right, switchtag, { .ui = SWITCHTAG_RIGHT | SWITCHTAG_TAG | SWITCHTAG_VIEW } },
|
||||||
|
19
config.def.h
19
config.def.h
@ -973,6 +973,13 @@ static const Key keys[] = {
|
|||||||
{ MODKEY, XK_Down, focusdir, {.i = 3 } }, // down
|
{ MODKEY, XK_Down, focusdir, {.i = 3 } }, // down
|
||||||
#endif // FOCUSDIR_PATCH
|
#endif // FOCUSDIR_PATCH
|
||||||
|
|
||||||
|
#if PLACEDIR_PATCH
|
||||||
|
{ MODKEY|ControlMask, XK_Left, placedir, {.i = 0 } }, // left
|
||||||
|
{ MODKEY|ControlMask, XK_Right, placedir, {.i = 1 } }, // right
|
||||||
|
{ MODKEY|ControlMask, XK_Up, placedir, {.i = 2 } }, // up
|
||||||
|
{ MODKEY|ControlMask, XK_Down, placedir, {.i = 3 } }, // down
|
||||||
|
#endif // PLACEDIR_PATCH
|
||||||
|
|
||||||
#if SWAPFOCUS_PATCH && PERTAG_PATCH
|
#if SWAPFOCUS_PATCH && PERTAG_PATCH
|
||||||
{ MODKEY, XK_s, swapfocus, {.i = -1 } },
|
{ MODKEY, XK_s, swapfocus, {.i = -1 } },
|
||||||
#endif // SWAPFOCUS_PATCH
|
#endif // SWAPFOCUS_PATCH
|
||||||
@ -1103,8 +1110,8 @@ static const Key keys[] = {
|
|||||||
#endif // SHIFTVIEW_CLIENTS_PATCH
|
#endif // SHIFTVIEW_CLIENTS_PATCH
|
||||||
|
|
||||||
#if SHIFTBOTH_PATCH
|
#if SHIFTBOTH_PATCH
|
||||||
{ MODKEY|ControlMask, XK_Left, shiftboth, { .i = -1 } }, // note keybinding conflict with focusadjacenttag tagandviewtoleft
|
{ MODKEY|ControlMask, XK_Left, shiftboth, { .i = -1 } }, // note keybinding conflict with focusadjacenttag tagandviewtoleft placedir
|
||||||
{ MODKEY|ControlMask, XK_Right, shiftboth, { .i = +1 } }, // note keybinding conflict with focusadjacenttag tagandviewtoright
|
{ MODKEY|ControlMask, XK_Right, shiftboth, { .i = +1 } }, // note keybinding conflict with focusadjacenttag tagandviewtoright placedir
|
||||||
#endif // SHIFTBOTH_PATCH
|
#endif // SHIFTBOTH_PATCH
|
||||||
|
|
||||||
#if SHIFTSWAPTAGS_PATCH && SWAPTAGS_PATCH
|
#if SHIFTSWAPTAGS_PATCH && SWAPTAGS_PATCH
|
||||||
@ -1242,8 +1249,8 @@ static const Key keys[] = {
|
|||||||
{ MODKEY, XK_Right, viewtoright, {0} }, // note keybinding conflict with focusdir
|
{ MODKEY, XK_Right, viewtoright, {0} }, // note keybinding conflict with focusdir
|
||||||
{ MODKEY|ShiftMask, XK_Left, tagtoleft, {0} }, // note keybinding conflict with shifttag
|
{ MODKEY|ShiftMask, XK_Left, tagtoleft, {0} }, // note keybinding conflict with shifttag
|
||||||
{ MODKEY|ShiftMask, XK_Right, tagtoright, {0} }, // note keybinding conflict with shifttag
|
{ MODKEY|ShiftMask, XK_Right, tagtoright, {0} }, // note keybinding conflict with shifttag
|
||||||
{ MODKEY|ControlMask, XK_Left, tagandviewtoleft, {0} },
|
{ MODKEY|ControlMask, XK_Left, tagandviewtoleft, {0} }, // note keybinding conflict with placedir
|
||||||
{ MODKEY|ControlMask, XK_Right, tagandviewtoright, {0} },
|
{ MODKEY|ControlMask, XK_Right, tagandviewtoright, {0} }, // note keybinding conflict with placedir
|
||||||
#endif // FOCUSADJACENTTAG_PATCH
|
#endif // FOCUSADJACENTTAG_PATCH
|
||||||
|
|
||||||
#if TAGALL_PATCH
|
#if TAGALL_PATCH
|
||||||
@ -1288,8 +1295,8 @@ static const Key keys[] = {
|
|||||||
#if BAR_TAGGRID_PATCH
|
#if BAR_TAGGRID_PATCH
|
||||||
{ MODKEY|ControlMask, XK_Up, switchtag, { .ui = SWITCHTAG_UP | SWITCHTAG_VIEW } },
|
{ MODKEY|ControlMask, XK_Up, switchtag, { .ui = SWITCHTAG_UP | SWITCHTAG_VIEW } },
|
||||||
{ MODKEY|ControlMask, XK_Down, switchtag, { .ui = SWITCHTAG_DOWN | SWITCHTAG_VIEW } },
|
{ MODKEY|ControlMask, XK_Down, switchtag, { .ui = SWITCHTAG_DOWN | SWITCHTAG_VIEW } },
|
||||||
{ MODKEY|ControlMask, XK_Right, switchtag, { .ui = SWITCHTAG_RIGHT | SWITCHTAG_VIEW } },
|
{ MODKEY|ControlMask, XK_Right, switchtag, { .ui = SWITCHTAG_RIGHT | SWITCHTAG_VIEW } }, // note keybinding conflict with placedir
|
||||||
{ MODKEY|ControlMask, XK_Left, switchtag, { .ui = SWITCHTAG_LEFT | SWITCHTAG_VIEW } },
|
{ MODKEY|ControlMask, XK_Left, switchtag, { .ui = SWITCHTAG_LEFT | SWITCHTAG_VIEW } }, // note keybinding conflict with placedir
|
||||||
{ MODKEY|Mod1Mask, XK_Up, switchtag, { .ui = SWITCHTAG_UP | SWITCHTAG_TAG | SWITCHTAG_VIEW } },
|
{ MODKEY|Mod1Mask, XK_Up, switchtag, { .ui = SWITCHTAG_UP | SWITCHTAG_TAG | SWITCHTAG_VIEW } },
|
||||||
{ MODKEY|Mod1Mask, XK_Down, switchtag, { .ui = SWITCHTAG_DOWN | SWITCHTAG_TAG | SWITCHTAG_VIEW } },
|
{ MODKEY|Mod1Mask, XK_Down, switchtag, { .ui = SWITCHTAG_DOWN | SWITCHTAG_TAG | SWITCHTAG_VIEW } },
|
||||||
{ MODKEY|Mod1Mask, XK_Right, switchtag, { .ui = SWITCHTAG_RIGHT | SWITCHTAG_TAG | SWITCHTAG_VIEW } },
|
{ MODKEY|Mod1Mask, XK_Right, switchtag, { .ui = SWITCHTAG_RIGHT | SWITCHTAG_TAG | SWITCHTAG_VIEW } },
|
||||||
|
@ -21,7 +21,7 @@ alttab()
|
|||||||
|
|
||||||
/* redraw tab */
|
/* redraw tab */
|
||||||
XRaiseWindow(dpy, alttabwin);
|
XRaiseWindow(dpy, alttabwin);
|
||||||
drawtab(ntabs, 0, m);
|
drawalttab(ntabs, 0, m);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -66,7 +66,7 @@ alttabend()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
drawtab(int nwins, int first, Monitor *m)
|
drawalttab(int nwins, int first, Monitor *m)
|
||||||
{
|
{
|
||||||
Client *c;
|
Client *c;
|
||||||
int i, h;
|
int i, h;
|
||||||
@ -178,7 +178,7 @@ alttabstart(const Arg *arg)
|
|||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
drawtab(ntabs, 1, m);
|
drawalttab(ntabs, 1, m);
|
||||||
|
|
||||||
struct timespec ts = { .tv_sec = 0, .tv_nsec = 1000000 };
|
struct timespec ts = { .tv_sec = 0, .tv_nsec = 1000000 };
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
static void drawtab(int nwins, int first, Monitor *m);
|
static void drawalttab(int nwins, int first, Monitor *m);
|
||||||
static void alttabstart(const Arg *arg);
|
static void alttabstart(const Arg *arg);
|
||||||
static void alttabend();
|
static void alttabend();
|
||||||
|
@ -208,6 +208,9 @@
|
|||||||
#if PERTAG_PATCH
|
#if PERTAG_PATCH
|
||||||
#include "pertag.c"
|
#include "pertag.c"
|
||||||
#endif
|
#endif
|
||||||
|
#if PLACEDIR_PATCH
|
||||||
|
#include "placedir.c"
|
||||||
|
#endif
|
||||||
#if PLACEMOUSE_PATCH
|
#if PLACEMOUSE_PATCH
|
||||||
#include "placemouse.c"
|
#include "placemouse.c"
|
||||||
#endif
|
#endif
|
||||||
|
@ -207,6 +207,9 @@
|
|||||||
#if PERTAG_PATCH
|
#if PERTAG_PATCH
|
||||||
#include "pertag.h"
|
#include "pertag.h"
|
||||||
#endif
|
#endif
|
||||||
|
#if PLACEDIR_PATCH
|
||||||
|
#include "placedir.h"
|
||||||
|
#endif
|
||||||
#if PLACEMOUSE_PATCH
|
#if PLACEMOUSE_PATCH
|
||||||
#include "placemouse.h"
|
#include "placemouse.h"
|
||||||
#endif
|
#endif
|
||||||
|
96
patch/placedir.c
Normal file
96
patch/placedir.c
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
void
|
||||||
|
placedir(const Arg *arg)
|
||||||
|
{
|
||||||
|
Client *s = selmon->sel, *f = NULL, *c, *next, *fprior, *sprior;
|
||||||
|
|
||||||
|
if (!s || s->isfloating)
|
||||||
|
return;
|
||||||
|
|
||||||
|
unsigned int score = -1;
|
||||||
|
unsigned int client_score;
|
||||||
|
int dist;
|
||||||
|
int dirweight = 20;
|
||||||
|
|
||||||
|
next = s->next;
|
||||||
|
if (!next)
|
||||||
|
next = s->mon->clients;
|
||||||
|
for (c = next; c != s; c = next) {
|
||||||
|
|
||||||
|
next = c->next;
|
||||||
|
if (!next)
|
||||||
|
next = s->mon->clients;
|
||||||
|
|
||||||
|
if (!ISVISIBLE(c)) // || HIDDEN(c)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
switch (arg->i) {
|
||||||
|
case 0: // left
|
||||||
|
dist = s->x - c->x - c->w;
|
||||||
|
client_score =
|
||||||
|
dirweight * MIN(abs(dist), abs(dist + s->mon->ww)) +
|
||||||
|
abs(s->y - c->y);
|
||||||
|
break;
|
||||||
|
case 1: // right
|
||||||
|
dist = c->x - s->x - s->w;
|
||||||
|
client_score =
|
||||||
|
dirweight * MIN(abs(dist), abs(dist + s->mon->ww)) +
|
||||||
|
abs(c->y - s->y);
|
||||||
|
break;
|
||||||
|
case 2: // up
|
||||||
|
dist = s->y - c->y - c->h;
|
||||||
|
client_score =
|
||||||
|
dirweight * MIN(abs(dist), abs(dist + s->mon->wh)) +
|
||||||
|
abs(s->x - c->x);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
case 3: // down
|
||||||
|
dist = c->y - s->y - s->h;
|
||||||
|
client_score =
|
||||||
|
dirweight * MIN(abs(dist), abs(dist + s->mon->wh)) +
|
||||||
|
abs(c->x - s->x);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (((arg->i == 0 || arg->i == 2) && client_score <= score) || client_score < score) {
|
||||||
|
score = client_score;
|
||||||
|
f = c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (f && f != s) {
|
||||||
|
for (fprior = f->mon->clients; fprior && fprior->next != f; fprior = fprior->next);
|
||||||
|
for (sprior = s->mon->clients; sprior && sprior->next != s; sprior = sprior->next);
|
||||||
|
|
||||||
|
if (s == fprior) {
|
||||||
|
next = f->next;
|
||||||
|
if (sprior)
|
||||||
|
sprior->next = f;
|
||||||
|
else
|
||||||
|
f->mon->clients = f;
|
||||||
|
f->next = s;
|
||||||
|
s->next = next;
|
||||||
|
} else if (f == sprior) {
|
||||||
|
next = s->next;
|
||||||
|
if (fprior)
|
||||||
|
fprior->next = s;
|
||||||
|
else
|
||||||
|
s->mon->clients = s;
|
||||||
|
s->next = f;
|
||||||
|
f->next = next;
|
||||||
|
} else { // clients are not adjacent to each other
|
||||||
|
next = f->next;
|
||||||
|
f->next = s->next;
|
||||||
|
s->next = next;
|
||||||
|
if (fprior)
|
||||||
|
fprior->next = s;
|
||||||
|
else
|
||||||
|
s->mon->clients = s;
|
||||||
|
if (sprior)
|
||||||
|
sprior->next = f;
|
||||||
|
else
|
||||||
|
f->mon->clients = f;
|
||||||
|
}
|
||||||
|
|
||||||
|
arrange(f->mon);
|
||||||
|
}
|
||||||
|
}
|
1
patch/placedir.h
Normal file
1
patch/placedir.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
static void placedir(const Arg *arg);
|
@ -241,6 +241,8 @@
|
|||||||
|
|
||||||
#define PERTAGBAR_PATCH 0
|
#define PERTAGBAR_PATCH 0
|
||||||
|
|
||||||
|
#define PLACEDIR_PATCH 0
|
||||||
|
|
||||||
#define PLACEMOUSE_PATCH 1
|
#define PLACEMOUSE_PATCH 1
|
||||||
|
|
||||||
#define PUSH_PATCH 0
|
#define PUSH_PATCH 0
|
||||||
|
Reference in New Issue
Block a user