summaryrefslogtreecommitdiff
path: root/patches_new
diff options
context:
space:
mode:
Diffstat (limited to 'patches_new')
-rw-r--r--patches_new/dwm-noborderflicker-20211227-8657affa2a61.diff42
-rw-r--r--patches_new/dwm-resizecorners-6.2.diff68
-rw-r--r--patches_new/dwm-sticky-6.4.diff141
3 files changed, 0 insertions, 251 deletions
diff --git a/patches_new/dwm-noborderflicker-20211227-8657affa2a61.diff b/patches_new/dwm-noborderflicker-20211227-8657affa2a61.diff
deleted file mode 100644
index df2aeb3..0000000
--- a/patches_new/dwm-noborderflicker-20211227-8657affa2a61.diff
+++ /dev/null
@@ -1,42 +0,0 @@
-diff --git dwm.c dwm.c
-index a96f33c..34d1321 100644
---- dwm.c
-+++ dwm.c
-@@ -236,6 +236,7 @@ static int xerrorstart(Display *dpy, XErrorEvent *ee);
- static void zoom(const Arg *arg);
-
- /* variables */
-+static Client *lastfocused = NULL;
- static const char broken[] = "broken";
- static char stext[256];
- static int screen;
-@@ -799,7 +800,11 @@ focus(Client *c)
- detachstack(c);
- attachstack(c);
- grabbuttons(c, 1);
-+ /* set new focused border first to avoid flickering */
- XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColBorder].pixel);
-+ /* lastfocused may be us if another window was unmanaged */
-+ if (lastfocused && lastfocused != c)
-+ XSetWindowBorder(dpy, lastfocused->win, scheme[SchemeNorm][ColBorder].pixel);
- setfocus(c);
- } else {
- XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
-@@ -1758,7 +1763,7 @@ unfocus(Client *c, int setfocus)
- if (!c)
- return;
- grabbuttons(c, 0);
-- XSetWindowBorder(dpy, c->win, scheme[SchemeNorm][ColBorder].pixel);
-+ lastfocused = c;
- if (setfocus) {
- XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
- XDeleteProperty(dpy, root, netatom[NetActiveWindow]);
-@@ -1784,6 +1789,8 @@ unmanage(Client *c, int destroyed)
- XSetErrorHandler(xerror);
- XUngrabServer(dpy);
- }
-+ if (lastfocused == c)
-+ lastfocused = NULL;
- free(c);
- focus(NULL);
- updateclientlist();
diff --git a/patches_new/dwm-resizecorners-6.2.diff b/patches_new/dwm-resizecorners-6.2.diff
deleted file mode 100644
index 016351c..0000000
--- a/patches_new/dwm-resizecorners-6.2.diff
+++ /dev/null
@@ -1,68 +0,0 @@
-diff -r -u a/dwm.c b/dwm.c
---- a/dwm.c 2019-02-02 07:55:28.000000000 -0500
-+++ b/dwm.c 2022-01-17 22:38:33.614493243 -0500
-@@ -1291,9 +1291,14 @@
- resizemouse(const Arg *arg)
- {
- int ocx, ocy, nw, nh;
-+ int ocx2, ocy2, nx, ny;
- Client *c;
- Monitor *m;
- XEvent ev;
-+ int horizcorner, vertcorner;
-+ int di;
-+ unsigned int dui;
-+ Window dummy;
- Time lasttime = 0;
-
- if (!(c = selmon->sel))
-@@ -1303,10 +1308,18 @@
- restack(selmon);
- ocx = c->x;
- ocy = c->y;
-+ ocx2 = c->x + c->w;
-+ ocy2 = c->y + c->h;
- if (XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync,
- None, cursor[CurResize]->cursor, CurrentTime) != GrabSuccess)
- return;
-- XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c->h + c->bw - 1);
-+ if (!XQueryPointer (dpy, c->win, &dummy, &dummy, &di, &di, &nx, &ny, &dui))
-+ return;
-+ horizcorner = nx < c->w / 2;
-+ vertcorner = ny < c->h / 2;
-+ XWarpPointer (dpy, None, c->win, 0, 0, 0, 0,
-+ horizcorner ? (-c->bw) : (c->w + c->bw -1),
-+ vertcorner ? (-c->bw) : (c->h + c->bw -1));
- do {
- XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask, &ev);
- switch(ev.type) {
-@@ -1320,8 +1333,11 @@
- continue;
- lasttime = ev.xmotion.time;
-
-- nw = MAX(ev.xmotion.x - ocx - 2 * c->bw + 1, 1);
-- nh = MAX(ev.xmotion.y - ocy - 2 * c->bw + 1, 1);
-+ nx = horizcorner ? ev.xmotion.x : c->x;
-+ ny = vertcorner ? ev.xmotion.y : c->y;
-+ nw = MAX(horizcorner ? (ocx2 - nx) : (ev.xmotion.x - ocx - 2 * c->bw + 1), 1);
-+ nh = MAX(vertcorner ? (ocy2 - ny) : (ev.xmotion.y - ocy - 2 * c->bw + 1), 1);
-+
- if (c->mon->wx + nw >= selmon->wx && c->mon->wx + nw <= selmon->wx + selmon->ww
- && c->mon->wy + nh >= selmon->wy && c->mon->wy + nh <= selmon->wy + selmon->wh)
- {
-@@ -1330,11 +1346,13 @@
- togglefloating(NULL);
- }
- if (!selmon->lt[selmon->sellt]->arrange || c->isfloating)
-- resize(c, c->x, c->y, nw, nh, 1);
-+ resize(c, nx, ny, nw, nh, 1);
- break;
- }
- } while (ev.type != ButtonRelease);
-- XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c->h + c->bw - 1);
-+ XWarpPointer(dpy, None, c->win, 0, 0, 0, 0,
-+ horizcorner ? (-c->bw) : (c->w + c->bw - 1),
-+ vertcorner ? (-c->bw) : (c->h + c->bw - 1));
- XUngrabPointer(dpy, CurrentTime);
- while (XCheckMaskEvent(dpy, EnterWindowMask, &ev));
- if ((m = recttomon(c->x, c->y, c->w, c->h)) != selmon) {
diff --git a/patches_new/dwm-sticky-6.4.diff b/patches_new/dwm-sticky-6.4.diff
deleted file mode 100644
index 2c26343..0000000
--- a/patches_new/dwm-sticky-6.4.diff
+++ /dev/null
@@ -1,141 +0,0 @@
-From d47ba0b8aab26ffb2569c0d05df24fdd61b3f4b0 Mon Sep 17 00:00:00 2001
-From: aymey <fabianpaci@gmail.com>
-Date: Mon, 5 Dec 2022 22:57:41 +1100
-Subject: [PATCH] Sticky windows respect EWMH
-
----
- dwm.c | 51 ++++++++++++++++++++++++++++++++++++++++++++-------
- 1 file changed, 44 insertions(+), 7 deletions(-)
-
-diff --git a/dwm.c b/dwm.c
-index 253aba7..a9157bf 100644
---- a/dwm.c
-+++ b/dwm.c
-@@ -49,7 +49,7 @@
- #define CLEANMASK(mask) (mask & ~(numlockmask|LockMask) & (ShiftMask|ControlMask|Mod1Mask|Mod2Mask|Mod3Mask|Mod4Mask|Mod5Mask))
- #define INTERSECT(x,y,w,h,m) (MAX(0, MIN((x)+(w),(m)->wx+(m)->ww) - MAX((x),(m)->wx)) \
- * MAX(0, MIN((y)+(h),(m)->wy+(m)->wh) - MAX((y),(m)->wy)))
--#define ISVISIBLE(C) ((C->tags & C->mon->tagset[C->mon->seltags]))
-+#define ISVISIBLE(C) ((C->tags & C->mon->tagset[C->mon->seltags]) || C->issticky)
- #define LENGTH(X) (sizeof X / sizeof X[0])
- #define MOUSEMASK (BUTTONMASK|PointerMotionMask)
- #define WIDTH(X) ((X)->w + 2 * (X)->bw)
-@@ -61,7 +61,7 @@
- enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
- enum { SchemeNorm, SchemeSel }; /* color schemes */
- enum { NetSupported, NetWMName, NetWMState, NetWMCheck,
-- NetWMFullscreen, NetActiveWindow, NetWMWindowType,
-+ NetWMFullscreen, NetWMSticky, NetActiveWindow, NetWMWindowType,
- NetWMWindowTypeDialog, NetClientList, NetLast }; /* EWMH atoms */
- enum { WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast }; /* default atoms */
- enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle,
-@@ -92,7 +92,7 @@ struct Client {
- int basew, baseh, incw, inch, maxw, maxh, minw, minh, hintsvalid;
- int bw, oldbw;
- unsigned int tags;
-- int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen;
-+ int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen, issticky;
- Client *next;
- Client *snext;
- Monitor *mon;
-@@ -200,6 +200,7 @@ static void sendmon(Client *c, Monitor *m);
- static void setclientstate(Client *c, long state);
- static void setfocus(Client *c);
- static void setfullscreen(Client *c, int fullscreen);
-+static void setsticky(Client *c, int sticky);
- static void setlayout(const Arg *arg);
- static void setmfact(const Arg *arg);
- static void setup(void);
-@@ -212,6 +213,7 @@ static void tagmon(const Arg *arg);
- static void tile(Monitor *m);
- static void togglebar(const Arg *arg);
- static void togglefloating(const Arg *arg);
-+static void togglesticky(const Arg *arg);
- static void toggletag(const Arg *arg);
- static void toggleview(const Arg *arg);
- static void unfocus(Client *c, int setfocus);
-@@ -526,6 +528,10 @@ clientmessage(XEvent *e)
- || cme->data.l[2] == netatom[NetWMFullscreen])
- setfullscreen(c, (cme->data.l[0] == 1 /* _NET_WM_STATE_ADD */
- || (cme->data.l[0] == 2 /* _NET_WM_STATE_TOGGLE */ && !c->isfullscreen)));
-+
-+ if (cme->data.l[1] == netatom[NetWMSticky]
-+ || cme->data.l[2] == netatom[NetWMSticky])
-+ setsticky(c, (cme->data.l[0] == 1 || (cme->data.l[0] == 2 && !c->issticky)));
- } else if (cme->message_type == netatom[NetActiveWindow]) {
- if (c != selmon->sel && !c->isurgent)
- seturgent(c, 1);
-@@ -1498,6 +1504,23 @@ setfullscreen(Client *c, int fullscreen)
- }
- }
-
-+void
-+setsticky(Client *c, int sticky)
-+{
-+
-+ if(sticky && !c->issticky) {
-+ XChangeProperty(dpy, c->win, netatom[NetWMState], XA_ATOM, 32,
-+ PropModeReplace, (unsigned char *) &netatom[NetWMSticky], 1);
-+ c->issticky = 1;
-+ } else if(!sticky && c->issticky){
-+ XChangeProperty(dpy, c->win, netatom[NetWMState], XA_ATOM, 32,
-+ PropModeReplace, (unsigned char *)0, 0);
-+ c->issticky = 0;
-+ arrange(c->mon);
-+ }
-+}
-+
-+
- void
- setlayout(const Arg *arg)
- {
-@@ -1560,6 +1583,7 @@ setup(void)
- netatom[NetWMState] = XInternAtom(dpy, "_NET_WM_STATE", False);
- netatom[NetWMCheck] = XInternAtom(dpy, "_NET_SUPPORTING_WM_CHECK", False);
- netatom[NetWMFullscreen] = XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", False);
-+ netatom[NetWMSticky] = XInternAtom(dpy, "_NET_WM_STATE_STICKY", False);
- netatom[NetWMWindowType] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE", False);
- netatom[NetWMWindowTypeDialog] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE_DIALOG", False);
- netatom[NetClientList] = XInternAtom(dpy, "_NET_CLIENT_LIST", False);
-@@ -1719,6 +1743,15 @@ togglefloating(const Arg *arg)
- arrange(selmon);
- }
-
-+void
-+togglesticky(const Arg *arg)
-+{
-+ if (!selmon->sel)
-+ return;
-+ setsticky(selmon->sel, !selmon->sel->issticky);
-+ arrange(selmon);
-+}
-+
- void
- toggletag(const Arg *arg)
- {
-@@ -2009,10 +2042,13 @@ updatewindowtype(Client *c)
- Atom state = getatomprop(c, netatom[NetWMState]);
- Atom wtype = getatomprop(c, netatom[NetWMWindowType]);
-
-- if (state == netatom[NetWMFullscreen])
-- setfullscreen(c, 1);
-- if (wtype == netatom[NetWMWindowTypeDialog])
-- c->isfloating = 1;
-+ if (state == netatom[NetWMFullscreen])
-+ setfullscreen(c, 1);
-+ if (state == netatom[NetWMSticky]) {
-+ setsticky(c, 1);
-+ }
-+ if (wtype == netatom[NetWMWindowTypeDialog])
-+ c->isfloating = 1;
- }
-
- void
-@@ -2147,3 +2183,4 @@ main(int argc, char *argv[])
- XCloseDisplay(dpy);
- return EXIT_SUCCESS;
- }
-+
---
-2.38.1
-