home · contact · privacy
Fixed bug: Pad did not get shrunk with window suspension, leading to obsolete scrolla...
[plomrogue] / windows.c
index 47c1a44b9d1f8950b286f23a4ad2d0f0f1f34c1e..87b8bbd39fcdbe692653a9156404f6c15056158e 100644 (file)
--- 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; }
 
@@ -215,7 +218,7 @@ void draw_all_windows (struct WinMeta * win_meta) {
     if (win_meta->pad_offset + win_meta->width < getmaxx(win_meta->pad) - 1)
       for (y = 0; y < win_meta->height; y++)
         draw_vertical_scroll_hint(win_meta, win_meta->pad_offset + win_meta->width - 1,
-                                  getmaxx(win_meta->pad) - (win_meta->pad_offset + win_meta->width + 1), '>');
+                                  getmaxx(win_meta->pad) - (win_meta->pad_offset + win_meta->width), '>');
     pnoutrefresh(win_meta->pad, 0, win_meta->pad_offset, 0, 0, win_meta->height, win_meta->width - 1); }
   doupdate(); }