81 lines
2.2 KiB
Text
Executable file
81 lines
2.2 KiB
Text
Executable file
--- dwm.c 2025-01-16 21:07:02.942737362 +0100
|
|
+++ dwm.c 2024-06-25 01:55:26.771203825 +0200
|
|
@@ -49,7 +48,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->swallowed == NULL && (C->tags & C->mon->tagset[C->mon->seltags]))
|
|
+#define ISVISIBLE(C) ((C->tags & C->mon->tagset[C->mon->seltags]))
|
|
#define LENGTH(X) (sizeof X / sizeof X[0])
|
|
#define MOUSEMASK (BUTTONMASK|PointerMotionMask)
|
|
#define WIDTH(X) ((X)->w + 2 * (X)->bw)
|
|
@@ -400,69 +386,6 @@ arrangemon(Monitor *m)
|
|
m->lt[m->sellt]->arrange(m);
|
|
}
|
|
|
|
-pid_t
|
|
-wintopid(Window window) {
|
|
- XResClientIdSpec spec;
|
|
- spec.client = window;
|
|
- spec.mask = XRES_CLIENT_ID_XID;
|
|
-
|
|
- long count;
|
|
- XResClientIdValue *output;
|
|
- XResQueryClientIds(dpy, 1, &spec, &count, &output);
|
|
-
|
|
- pid_t pid = -1;
|
|
-
|
|
- for (int i = 0; i < count; ++i)
|
|
- if (output[i].spec.mask == XRES_CLIENT_ID_PID_MASK) {
|
|
- pid = *(pid_t *)output[i].value;
|
|
- break;
|
|
- }
|
|
-
|
|
- XResClientIdsDestroy(count, output);
|
|
-
|
|
- return pid;
|
|
-}
|
|
-
|
|
-void
|
|
-copyclientpos(Client *dst, Client *src) {
|
|
- dst->bw = src->bw;
|
|
- resizeclient(dst, src->x, src->y, src->w, src->h);
|
|
- dst->oldx = src->oldx;
|
|
- dst->oldy = src->oldy;
|
|
- dst->oldw = src->oldw;
|
|
- dst->oldh = src->oldh;
|
|
- dst->oldbw = src->oldbw;
|
|
- dst->oldstate = src->oldstate;
|
|
- dst->isfullscreen = src->isfullscreen;
|
|
- dst->isfloating = src->isfloating;
|
|
- dst->tags = src->tags;
|
|
- dst->mon = src->mon;
|
|
-}
|
|
-
|
|
-void
|
|
-checkswallowed(Client *c) {
|
|
- pid_t pid = wintopid(c->win);
|
|
-
|
|
- if(pid < 0) return;
|
|
- for(SwallowDef *sd = swallowlist; sd != NULL; sd = sd->next) {
|
|
- if(pid == sd->pid) {
|
|
- c->swallower = sd->swallower;
|
|
- copyclientpos(c, sd->swallower);
|
|
-
|
|
- c->next_swallowed = c->swallower->swallowed;
|
|
- c->swallower->swallowed = c;
|
|
-
|
|
- c->next = c->swallower->next;
|
|
- c->swallower->next = c;
|
|
-
|
|
- c->snext = c->swallower->snext;
|
|
- c->swallower->snext = c;
|
|
-
|
|
- return;
|
|
- }
|
|
- }
|
|
-}
|
|
-
|
|
void
|
|
attach(Client *c)
|
|
{
|