]> Pileus Git - wmpus/blobdiff - wm-wmii.c
Misc debugging
[wmpus] / wm-wmii.c
index aab29217d453ee6de3dd5523db07a55fd80d2881..ad114ebe49ccd5f218dcee3d30e9c2ff6d519cfd 100644 (file)
--- 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)