bar_holdbar.c (997B)
1 void 2 holdbar(const Arg *arg) 3 { 4 if (selmon->showbar) 5 return; 6 Bar *bar; 7 selmon->showbar = 2; 8 updatebarpos(selmon); 9 for (bar = selmon->bar; bar; bar = bar->next) 10 XMoveResizeWindow(dpy, bar->win, bar->bx, bar->by, bar->bw, bar->bh); 11 drawbar(selmon); 12 } 13 14 void 15 keyrelease(XEvent *e) 16 { 17 Bar *bar; 18 if (XEventsQueued(dpy, QueuedAfterReading)) { 19 XEvent ne; 20 XPeekEvent(dpy, &ne); 21 22 if (ne.type == KeyPress && ne.xkey.time == e->xkey.time && 23 ne.xkey.keycode == e->xkey.keycode) { 24 XNextEvent(dpy, &ne); 25 return; 26 } 27 } 28 if (e->xkey.keycode == XKeysymToKeycode(dpy, HOLDKEY) && selmon->showbar == 2) { 29 selmon->showbar = 0; 30 updatebarpos(selmon); 31 for (bar = selmon->bar; bar; bar = bar->next) 32 XMoveResizeWindow(dpy, bar->win, bar->bx, bar->by, bar->bw, bar->bh); 33 #if BAR_SYSTRAY_PATCH 34 if (!selmon->showbar && systray) 35 XMoveWindow(dpy, systray->win, -32000, -32000); 36 #endif // BAR_SYSTRAY_PATCH 37 arrange(selmon); 38 } 39 #if COMBO_PATCH 40 combo = 0; 41 #endif // COMBO_PATCH 42 } 43