summaryrefslogtreecommitdiff
path: root/dwm/patch/bar_holdbar.c
diff options
context:
space:
mode:
Diffstat (limited to 'dwm/patch/bar_holdbar.c')
-rwxr-xr-xdwm/patch/bar_holdbar.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/dwm/patch/bar_holdbar.c b/dwm/patch/bar_holdbar.c
new file mode 100755
index 0000000..7597a38
--- /dev/null
+++ b/dwm/patch/bar_holdbar.c
@@ -0,0 +1,43 @@
+void
+holdbar(const Arg *arg)
+{
+ if (selmon->showbar)
+ return;
+ Bar *bar;
+ selmon->showbar = 2;
+ updatebarpos(selmon);
+ for (bar = selmon->bar; bar; bar = bar->next)
+ XMoveResizeWindow(dpy, bar->win, bar->bx, bar->by, bar->bw, bar->bh);
+ drawbar(selmon);
+}
+
+void
+keyrelease(XEvent *e)
+{
+ Bar *bar;
+ if (XEventsQueued(dpy, QueuedAfterReading)) {
+ XEvent ne;
+ XPeekEvent(dpy, &ne);
+
+ if (ne.type == KeyPress && ne.xkey.time == e->xkey.time &&
+ ne.xkey.keycode == e->xkey.keycode) {
+ XNextEvent(dpy, &ne);
+ return;
+ }
+ }
+ if (e->xkey.keycode == XKeysymToKeycode(dpy, HOLDKEY) && selmon->showbar == 2) {
+ selmon->showbar = 0;
+ updatebarpos(selmon);
+ for (bar = selmon->bar; bar; bar = bar->next)
+ XMoveResizeWindow(dpy, bar->win, bar->bx, bar->by, bar->bw, bar->bh);
+ #if BAR_SYSTRAY_PATCH
+ if (!selmon->showbar && systray)
+ XMoveWindow(dpy, systray->win, -32000, -32000);
+ #endif // BAR_SYSTRAY_PATCH
+ arrange(selmon);
+ }
+ #if COMBO_PATCH
+ combo = 0;
+ #endif // COMBO_PATCH
+}
+