myvxwm

[fork] my vxwm config (optimised for my T480)
git clone https://git.lukeonline.net/repos/myvxwm
Log | Files | Refs | README | LICENSE

windowmap.c (997B)


      1 void
      2 window_set_state(Display *dpy, Window win, long state)
      3 {
      4 	long data[] = { state, None };
      5 
      6 	XChangeProperty(dpy, win, wmatom[WMState], wmatom[WMState], 32,
      7 		PropModeReplace, (unsigned char*)data, 2);
      8 }
      9 
     10 void
     11 window_map(Display *dpy, Client *c, int deiconify)
     12 {
     13 	Window win = c->win;
     14 
     15 	if (deiconify)
     16 		window_set_state(dpy, win, NormalState);
     17 
     18 	XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h);
     19 	XMapWindow(dpy, win);
     20 	focus(NULL);
     21 }
     22 
     23 void
     24 window_unmap(Display *dpy, Window win, Window root, int iconify)
     25 {
     26 	static XWindowAttributes ca, ra;
     27 
     28 	XGetWindowAttributes(dpy, root, &ra);
     29 	XGetWindowAttributes(dpy, win, &ca);
     30 
     31 	/* Prevent UnmapNotify events */
     32 	XSelectInput(dpy, root, ra.your_event_mask & ~SubstructureNotifyMask);
     33 	XSelectInput(dpy, win, ca.your_event_mask & ~StructureNotifyMask);
     34 
     35 	XUnmapWindow(dpy, win);
     36   focus(NULL);
     37 	if (iconify)
     38 		window_set_state(dpy, win, IconicState);
     39 
     40 	XSelectInput(dpy, root, ra.your_event_mask);
     41 	XSelectInput(dpy, win, ca.your_event_mask);
     42 }