X-Git-Url: https://plomlompom.com/repos/%7B%7B%20web_path%20%7D%7D/decks/%7B%7Bdeck_id%7D%7D/cards/%7B%7Bcard_id%7D%7D/static/git-logo.png?a=blobdiff_plain;ds=sidebyside;f=windows.c;h=87b8bbd39fcdbe692653a9156404f6c15056158e;hb=e171d44eb7b833ea659469deed860e566faa4d03;hp=099eff58c0626861ac4419f47756c610f8beccaf;hpb=018565cc4592702368c948c579bcca3f35d5ca04;p=plomrogue diff --git a/windows.c b/windows.c index 099eff5..87b8bbd 100644 --- a/windows.c +++ b/windows.c @@ -58,12 +58,15 @@ void suspend_window (struct WinMeta * win_meta, struct Win * win) { if (win_meta->chain_end != win) { // Let chain element next to win know its new predecessor. win->next->prev = win->prev; if (win_meta->active == win) // If win was active, shift active window pointer to - win_meta->active = win->next; // the next chain element, if that is a window ... - update_windows(win_meta, win->next); } + win_meta->active = win->next; } // the next chain element, if that is a window ... else { win_meta->chain_end = win->prev; if (win_meta->active == win) // ... or else to the previous element. win_meta->active = win->prev; } + if (0 != win->prev) + update_windows(win_meta, win->prev); + else if (0 != win->next) + update_windows(win_meta, win->next); win->prev = 0; win->next = 0; }