summaryrefslogtreecommitdiff
path: root/dwm/patch/games.c
diff options
context:
space:
mode:
Diffstat (limited to 'dwm/patch/games.c')
-rwxr-xr-xdwm/patch/games.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/dwm/patch/games.c b/dwm/patch/games.c
new file mode 100755
index 0000000..49961c2
--- /dev/null
+++ b/dwm/patch/games.c
@@ -0,0 +1,32 @@
+void
+minimize(Client *c)
+{
+ if (!c || HIDDEN(c))
+ return;
+
+ Window w = c->win;
+ static XWindowAttributes ra, ca;
+
+ /* More or less taken directly from blackbox's hide() function */
+ XGrabServer(dpy);
+ XGetWindowAttributes(dpy, root, &ra);
+ XGetWindowAttributes(dpy, w, &ca);
+ /* Prevent UnmapNotify events */
+ XSelectInput(dpy, root, ra.your_event_mask & ~SubstructureNotifyMask);
+ XSelectInput(dpy, w, ca.your_event_mask & ~StructureNotifyMask);
+ XUnmapWindow(dpy, w);
+ setclientstate(c, IconicState);
+ XSelectInput(dpy, root, ra.your_event_mask);
+ XSelectInput(dpy, w, ca.your_event_mask);
+ XUngrabServer(dpy);
+}
+
+void
+unminimize(Client *c)
+{
+ if (!c || !HIDDEN(c))
+ return;
+
+ XMapWindow(dpy, c->win);
+ setclientstate(c, NormalState);
+}