for (list_t *lrow = col->rows; lrow; lrow = lrow->next) {
row_t *row = lrow->data;
win_t *win = row->win;
- printf(" win: <%-9p [%p>>%p] >%-9p focus=%d%d - %4dpx \n",
+ printf(" row: <%-9p [%p>>%p] >%-9p focus=%d%d - %4dpx \n",
lrow->prev, lrow, win, lrow->next,
col->row == row, wm_focus == win, win->h);
} }
if (ev == 'q') return sys_exit(), 1;
if (ev == 'f') return wm_handle_state(win, win->state,
win->state == ST_FULL ? ST_SHOW : ST_FULL);
+ if (ev == 'g') return wm_handle_state(win, win->state,
+ win->state == ST_MAX ? ST_SHOW : ST_MAX);
}
if (mod.MODKEY && mod.shift) {
if (ev == 'c') return sys_show(win, ST_CLOSE), 1;
row_t *row = NULL;
flt_t *flt = NULL;
+ printf("wm_handle_state - %p %x -> %x\n", win, prev, next);
+
search(wm_tag, win, NULL, NULL, &row, &flt);
+ if (!row && !flt && next == ST_SHOW)
+ return wm_insert(win), 1;
+ if ((row || flt) && next == ST_HIDE)
+ return wm_remove(win), 1;
+
if (row) row->state = next;
if (flt) flt->state = next;
return wm_update();
/* Initialize window */
- win->wm = new0(win_wm_t);
sys_watch(win, EV_ENTER, MOD());
sys_watch(win, EV_FOCUS, MOD());
return wm_update();
for (list_t *tag = wm->tags; tag; tag = tag->next)
cut_win(win, tag->data);
- free(win->wm);
set_focus(wm_focus);
wm_update();
print_txt();
event_t ev_s[] = {'h', 'j', 'k', 'l', 'c', 'q', ' ',
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
EV_MOUSE1, EV_MOUSE3};
- event_t ev_m[] = {'h', 'j', 'k', 'l', 'd', 's', 'm', 't', 'f', ' ',
+ event_t ev_m[] = {'h', 'j', 'k', 'l', 'd', 's', 'm', 't', 'f', 'g', ' ',
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
EV_F1, EV_F2, EV_F3, EV_F4, EV_F5, EV_F6,
EV_F7, EV_F8, EV_F9, EV_F10, EV_F11, EV_F12,
while (dpy->cols) { col_t *col = dpy->cols->data;
while (col->rows) { row_t *row = col->rows->data;
sys_show(row->win, ST_SHOW);
- free(row->win->wm);
col->rows = list_remove(col->rows, col->rows, 1); }
dpy->cols = list_remove(dpy->cols, dpy->cols, 1); }
while (dpy->flts) { flt_t *flt = dpy->flts->data;
sys_show(flt->win, ST_SHOW);
- free(flt->win->wm);
dpy->flts = list_remove(dpy->flts, dpy->flts, 1); }
tag->dpys = list_remove(tag->dpys, tag->dpys, 1); }
wm->tags = list_remove( wm->tags, wm->tags, 1); }