}
else if (type == UnmapNotify) {
if ((win = win_find(dpy,xe->xunmap.window,0)) &&
- win->sys->state == ST_SHOW) {
+ win->sys->state != ST_HIDE) {
if (!strut_del(root, win))
wm_remove(win);
else
printf("sys_show: hide\n");
XUnmapWindow(win->sys->dpy, win->sys->xid);
return;
+ case ST_CLOSE:
+ printf("sys_show: close\n");
+ XDestroyWindow(win->sys->dpy, win->sys->xid);
+ return;
}
}
ST_SHADE, // show titlebar only
ST_ICON, // iconified/minimized
ST_HIDE, // completely hidden
+ ST_CLOSE, // close the window
} state_t;
/* Basic window type */
if (ev == EV_F6) return print_txt(), 1;
if (ev == 'q') return sys_exit(), 1;
}
+ if (mod.MODKEY && mod.shift) {
+ if (ev == 'c') return sys_show(win, ST_CLOSE), 1;
+ }
/* Floating layer */
if (ev == ' ') {
wm->tags = list_insert(NULL, wm->tag);
event_t ev_e[] = {EV_ENTER, EV_FOCUS};
- event_t ev_s[] = {'h', 'j', 'k', 'l', 'q', ' ',
+ event_t ev_s[] = {'h', 'j', 'k', 'l', 'c', 'q', ' ',
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
event_t ev_m[] = {'h', 'j', 'k', 'l', 'd', 's', 'm', 't', ' ',
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',