X-Git-Url: http://pileus.org/git/?p=wmpus;a=blobdiff_plain;f=wm-wmii.c;h=ad114ebe49ccd5f218dcee3d30e9c2ff6d519cfd;hp=aab29217d453ee6de3dd5523db07a55fd80d2881;hb=c5d281c2e042c1153109dd46b74ef3d41fcacd93;hpb=ed3dbd05944250855712283a1c10419bf15f7c12 diff --git a/wm-wmii.c b/wm-wmii.c index aab2921..ad114eb 100644 --- a/wm-wmii.c +++ b/wm-wmii.c @@ -588,15 +588,14 @@ static void tag_switch(int name) printf("tag_switch: %d\n", name); tag_t *old = wm_tag; if ((wm_col == NULL || wm_row == NULL) && wm_flt == NULL) { - list_t *ltag = list_find(wm->tags, old); - wm->tags = list_remove(wm->tags, ltag, 1); while (old->dpys) { dpy_t *dpy = old->dpys->data; while (dpy->cols) dpy->cols = list_remove(dpy->cols, dpy->cols, 1); old->dpys = list_remove(old->dpys, old->dpys, 1); } - free(old); + list_t *ltag = list_find(wm->tags, old); + wm->tags = list_remove(wm->tags, ltag, 1); } wm_tag = tag_find(name); } @@ -719,7 +718,7 @@ int wm_handle_key(win_t *win, Key_t key, mod_t mod, ptr_t ptr) if (move_mode != none && mod.up) return set_move(win,ptr,none), 1; if (key == key_mouse1 && !mod.up && win->h == STACK) - return wm_update(), 0; + return set_focus(win), wm_update(), 0; return 0; } @@ -790,7 +789,7 @@ int wm_handle_key(win_t *win, Key_t key, mod_t mod, ptr_t ptr) } /* Focus change */ - if (key == key_enter) + if (key == key_enter && win->h != STACK) return set_focus(win), 1; if (key_mouse0 <= key && key <= key_mouse7)