void window_change_server(WINDOW_REC *window, void *server)
{
+ if (server != NULL && SERVER(server)->disconnected)
+ return;
+
window->active_server = server;
signal_emit("window server changed", 2, window, server);
}
GSList *tmp;
/* prefer active window if possible */
- if (WINDOW_LEVEL_MATCH(active_win, server, level))
+ if (active_win != NULL &&
+ WINDOW_LEVEL_MATCH(active_win, server, level))
return active_win;
for (tmp = windows; tmp != NULL; tmp = tmp->next) {