Fix: update window list on hide(), show(), destroy()