From 4e0318919dd726f485ea3a495ff0989f69f35630 Mon Sep 17 00:00:00 2001 From: Nicholas Noll Date: Sat, 6 Jun 2020 19:56:41 -0700 Subject: hand added swallow patch --- sys/cmd/dwm/dwm.h | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) (limited to 'sys/cmd/dwm/dwm.h') diff --git a/sys/cmd/dwm/dwm.h b/sys/cmd/dwm/dwm.h index d8bfbb3..070717e 100644 --- a/sys/cmd/dwm/dwm.h +++ b/sys/cmd/dwm/dwm.h @@ -20,6 +20,8 @@ #include #include #include +#include +#include #include #include @@ -125,9 +127,11 @@ struct Client { int basew, baseh, incw, inch, maxw, maxh, minw, minh; int bw, oldbw; uint tags; - int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen; + int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen, isterm, noswallow; + pid_t pid; Client *next; Client *snext; + Client *swallowing; Monitor *mon; Window win; }; @@ -172,15 +176,14 @@ struct Rule { char *title; uint tags; int isfloating; + int isterm; + int noswallow; int monitor; }; /* draw.c */ typedef struct { - union { - Cursor; - Cursor cursor; - }; + Cursor cursor; } Cur; typedef struct Fnt { @@ -191,7 +194,7 @@ typedef struct Fnt { struct Fnt *next; } Fnt; -typedef XftColor Color; +typedef XftColor Clr; typedef struct { uint w, h; @@ -200,14 +203,15 @@ typedef struct { Window root; Drawable drawable; GC gc; - Color *scheme; - Font *fonts; + Clr *scheme; + Fnt *fonts; } Drw; /* global state */ extern char broken[]; extern char stext[256]; +extern int scanner; extern int screen; extern int sw, sh; extern int bh, blw; @@ -216,10 +220,12 @@ extern int (*xerrorxlib)(Display *, XErrorEvent *); extern uint numlockmask; extern void (*handler[LASTEvent]) (XEvent *); +extern xcb_connection_t *xcon; + extern Atom wmatom[WMLast], netatom[NetLast]; extern int running; -extern Cur *cursor[MouseLast]; -extern Color **scheme; +extern Cur *cursor[MouseLast]; +extern Clr **scheme; extern Display *dpy; extern Drw *drw; extern Monitor *mons, *selmon; @@ -296,9 +302,12 @@ void setup(void); void seturgent(Client *c, int urg); void showhide(Client *c); void sigchld(int unused); +void swallow(Client *p, Client *c); +Client *swallowing(Window w); void spawn(Arg *arg); void tag(Arg *arg); void tagmon(Arg *arg); +Client *termof(Client *c); void tile(Monitor *); void togglebar(Arg *arg); void togglefocus(Arg *arg); @@ -308,6 +317,7 @@ void toggleview(Arg *arg); void unfocus(Client *c, int setfocus); void unmanage(Client *c, int destroyed); void unmapnotify(XEvent *e); +void unswallow(Client *c); void updatebarpos(Monitor *m); void updatebars(void); void updateclientlist(void); @@ -319,6 +329,7 @@ void updatetitle(Client *c); void updatewindowtype(Client *c); void updatewmhints(Client *c); void view(Arg *arg); +pid_t winpid(Window w); Client *wintoclient(Window w); Monitor *wintomon(Window w); int xerror(Display *dpy, XErrorEvent *ee); @@ -342,8 +353,8 @@ uint drw_fontset_getwidth(Drw *drw, char *text); void drw_font_getexts(Fnt *font, char *text, uint len, uint *w, uint *h); /* Colorscheme abstraction */ -void drw_clr_create(Drw *drw, Color *dest, char *clrname); -Color *drw_scm_create(Drw *drw, char *clrnames[], size_t clrcount); +void drw_clr_create(Drw *drw, Clr *dest, char *clrname); +Clr *drw_scm_create(Drw *drw, char *clrnames[], size_t clrcount); /* Cursor abstraction */ Cur *drw_cur_create(Drw *drw, int shape); @@ -351,7 +362,7 @@ void drw_cur_free(Drw *drw, Cur *cursor); /* Drawing context manipulation */ void drw_setfontset(Drw *drw, Fnt *set); -void drw_setscheme(Drw *drw, Color *scm); +void drw_setscheme(Drw *drw, Clr *scm); /* Drawing functions */ void drw_rect(Drw *drw, int x, int y, uint w, uint h, int filled, int invert); @@ -363,3 +374,5 @@ void drw_map(Drw *drw, Window win, int x, int y, uint w, uint h); /* util.c */ void fatal(char *fmt, ...); void *ecalloc(size_t nmemb, size_t size); +pid_t getparentproc(pid_t p); +pid_t isdescendent(pid_t p, pid_t c); -- cgit v1.2.1