diff -bcr wmii-3.1.orig/cmd/wm/view.c wmii-3.1.new/cmd/wm/view.c *** wmii-3.1.orig/cmd/wm/view.c 2006-06-17 04:44:30.000000000 -0700 --- wmii-3.1.new/cmd/wm/view.c 2006-09-17 01:02:07.000000000 -0700 *************** *** 167,176 **** void select_view(char *arg) { ! View *v = view_of_name(arg); ! if(!v) ! return; ! focus_view(v); } static Bool --- 167,174 ---- void select_view(char *arg) { ! focus_view(get_view(arg)); ! update_views(); } static Bool *************** *** 342,348 **** { unsigned int i; for(i = 0; i < view.size; i++) ! if(is_empty(view.data[i])) return view.data[i]; return nil; } --- 340,346 ---- { unsigned int i; for(i = 0; i < view.size; i++) ! if(is_empty(view.data[i]) && view.data[i] != view.data[sel]) return view.data[i]; return nil; } *************** *** 372,382 **** } } ! while((v = next_empty_view())) { ! if(v == old) ! old = nil; destroy_view(v); - } if(old) focus_view(old); --- 370,377 ---- } } ! while((v = next_empty_view())) destroy_view(v); if(old) focus_view(old);