summaryrefslogtreecommitdiff
path: root/dwm.c.rej
diff options
context:
space:
mode:
Diffstat (limited to 'dwm.c.rej')
-rw-r--r--dwm.c.rej164
1 files changed, 164 insertions, 0 deletions
diff --git a/dwm.c.rej b/dwm.c.rej
new file mode 100644
index 0000000..3505670
--- /dev/null
+++ b/dwm.c.rej
@@ -0,0 +1,164 @@
+--- dwm.c
++++ dwm.c
+@@ -1076,8 +1004,6 @@ manage(Window w, XWindowAttributes *wa)
+ c->mon->sel = c;
+ arrange(c->mon);
+ XMapWindow(dpy, c->win);
+- if (term)
+- swallow(term, c);
+ focus(NULL);
+ }
+
+@@ -1780,12 +1692,9 @@ unmanage(Client *c, int destroyed)
+ XUngrabServer(dpy);
+ }
+ free(c);
+-
+- if (!s) {
+- arrange(m);
+- focus(NULL);
+- updateclientlist();
+- }
++ focus(NULL);
++ updateclientlist();
++ arrange(m);
+ }
+
+ void
+@@ -2049,136 +1958,6 @@ view(const Arg *arg)
+ arrange(selmon);
+ }
+
+-pid_t
+-winpid(Window w)
+-{
+-
+- pid_t result = 0;
+-
+-#ifdef __linux__
+- xcb_res_client_id_spec_t spec = {0};
+- spec.client = w;
+- spec.mask = XCB_RES_CLIENT_ID_MASK_LOCAL_CLIENT_PID;
+-
+- xcb_generic_error_t *e = NULL;
+- xcb_res_query_client_ids_cookie_t c = xcb_res_query_client_ids(xcon, 1, &spec);
+- xcb_res_query_client_ids_reply_t *r = xcb_res_query_client_ids_reply(xcon, c, &e);
+-
+- if (!r)
+- return (pid_t)0;
+-
+- xcb_res_client_id_value_iterator_t i = xcb_res_query_client_ids_ids_iterator(r);
+- for (; i.rem; xcb_res_client_id_value_next(&i)) {
+- spec = i.data->spec;
+- if (spec.mask & XCB_RES_CLIENT_ID_MASK_LOCAL_CLIENT_PID) {
+- uint32_t *t = xcb_res_client_id_value_value(i.data);
+- result = *t;
+- break;
+- }
+- }
+-
+- free(r);
+-
+- if (result == (pid_t)-1)
+- result = 0;
+-
+-#endif /* __linux__ */
+-
+-#ifdef __OpenBSD__
+- Atom type;
+- int format;
+- unsigned long len, bytes;
+- unsigned char *prop;
+- pid_t ret;
+-
+- if (XGetWindowProperty(dpy, w, XInternAtom(dpy, "_NET_WM_PID", 0), 0, 1, False, AnyPropertyType, &type, &format, &len, &bytes, &prop) != Success || !prop)
+- return 0;
+-
+- ret = *(pid_t*)prop;
+- XFree(prop);
+- result = ret;
+-
+-#endif /* __OpenBSD__ */
+- return result;
+-}
+-
+-pid_t
+-getparentprocess(pid_t p)
+-{
+- unsigned int v = 0;
+-
+-#ifdef __linux__
+- FILE *f;
+- char buf[256];
+- snprintf(buf, sizeof(buf) - 1, "/proc/%u/stat", (unsigned)p);
+-
+- if (!(f = fopen(buf, "r")))
+- return 0;
+-
+- fscanf(f, "%*u %*s %*c %u", &v);
+- fclose(f);
+-#endif /* __linux__*/
+-
+-#ifdef __OpenBSD__
+- int n;
+- kvm_t *kd;
+- struct kinfo_proc *kp;
+-
+- kd = kvm_openfiles(NULL, NULL, NULL, KVM_NO_FILES, NULL);
+- if (!kd)
+- return 0;
+-
+- kp = kvm_getprocs(kd, KERN_PROC_PID, p, sizeof(*kp), &n);
+- v = kp->p_ppid;
+-#endif /* __OpenBSD__ */
+-
+- return (pid_t)v;
+-}
+-
+-int
+-isdescprocess(pid_t p, pid_t c)
+-{
+- while (p != c && c != 0)
+- c = getparentprocess(c);
+-
+- return (int)c;
+-}
+-
+-Client *
+-termforwin(const Client *w)
+-{
+- Client *c;
+- Monitor *m;
+-
+- if (!w->pid || w->isterminal)
+- return NULL;
+-
+- for (m = mons; m; m = m->next) {
+- for (c = m->clients; c; c = c->next) {
+- if (c->isterminal && !c->swallowing && c->pid && isdescprocess(c->pid, w->pid))
+- return c;
+- }
+- }
+-
+- return NULL;
+-}
+-
+-Client *
+-swallowingclient(Window w)
+-{
+- Client *c;
+- Monitor *m;
+-
+- for (m = mons; m; m = m->next) {
+- for (c = m->clients; c; c = c->next) {
+- if (c->swallowing && c->swallowing->win == w)
+- return c;
+- }
+- }
+-
+- return NULL;
+-}
+-
+ Client *
+ wintoclient(Window w)
+ {