]> Pileus Git - lackey/blobdiff - src/view.c
Fix some resize issues
[lackey] / src / view.c
index 691154d07481d724cee3b01f06062e5d9e523bc4..437e69c1ec693e260afedf6d14988e31b40a5c10 100644 (file)
@@ -174,6 +174,29 @@ void todo_line(WINDOW *win, todo_t *todo, int y, int x, int w, int full)
        mvwprintw(win, y, x, "%s", desc);
 }
 
+/* Curses functions */
+void wmvresize(WINDOW *win, int top, int left, int rows, int cols)
+{
+       int y = getpary(win);
+       if (top < y)
+               mvderwin(win, top, left);
+       wresize(win, rows, cols);
+       if (top > y)
+               mvderwin(win, top, left);
+}
+
+void wshrink(WINDOW *win, int top)
+{
+       int x    = getparx(win);
+       int y    = getpary(win);
+       int r    = getmaxy(win);
+       int c    = getmaxx(win);
+       int rows = r + (y - top);
+       if (top  <  y) mvderwin(win, top, x);
+       if (rows != r) wresize(win, rows, c);
+       if (top  >  y) mvderwin(win, top, x);
+}
+
 /* View init */
 void view_init(void)
 {
@@ -183,6 +206,8 @@ void view_init(void)
                        views[i].win = newwin(LINES-hdr, COLS, hdr, 0);
                        views[i].init(views[i].win);
                }
+               if (views[i].size)
+                       views[i].size(LINES-hdr, COLS);
        }
 }