// Create and populate WinMeta struct with sane default values.
struct WinMeta win_meta;
win_meta.screen = screen;
- win_meta.height = screen->_maxy + 1;
- win_meta.width = screen->_maxx + 1;
+ win_meta.height = getmaxy(screen);
+ win_meta.width = getmaxx(screen);
win_meta.chain_start = 0;
win_meta.chain_end = 0;
win_meta.pad_offset = 0;
mvwaddch(wgetparent(win->curses_win), getbegy(win->curses_win) - 1, x, '-');
mvwaddch(wgetparent(win->curses_win), getbegy(win->curses_win) + win->height, x, '-'); }
char min_title_length_visible = 3; // 1 char minimal, plus 2 chars for decoration left/right of title
- if (win->width > min_title_length_visible) {
- int title_length = strlen(win->title);
- int title_offset = (((win->width) - (title_length + 2)) / 2); // + 2 is for decoration
- int length_visible = strnlen(win->title, win->width - min_title_length_visible);
+ if (win->width >= min_title_length_visible) {
+ int title_offset = 0;
+ if (win->width > strlen(win->title) + 2)
+ title_offset = (win->width - (strlen(win->title) + 2)) / 2; // + 2 is for decoration
+ int length_visible = strnlen(win->title, win->width - 2);
char title[length_visible + 3];
char decoration = ' ';
if (1 == active)
if (0 != win->next) {
draw_windows_borders (win->next, win_active, corners, ccount + 1); } }
-void draw_window(struct Win * win) {
-// Draw window content if visible.
- if (win->height > 1 && win->width > 1) ;
- win->draw(win); }
-
void draw_windows (struct Win * win) {
// Draw contents of all windows in window chain from win on.
- draw_window(win);
+ win->draw(win);
if (0 != win->next) {
draw_windows (win->next); } }