projects
/
apps
/
madtty.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix resize bug.
[apps/madtty.git]
/
madtty
/
madtty.c
diff --git
a/madtty/madtty.c
b/madtty/madtty.c
index
95ea5e2
..
251780f
100644
(file)
--- a/
madtty/madtty.c
+++ b/
madtty/madtty.c
@@
-856,6
+856,8
@@
void madtty_resize(madtty_t *t, int rows, int cols)
lines[row].attr = realloc(lines[row].attr, sizeof(uint16_t) * cols);
if (t->cols < cols)
t_row_set(lines + row, t->cols, cols - t->cols, 0);
lines[row].attr = realloc(lines[row].attr, sizeof(uint16_t) * cols);
if (t->cols < cols)
t_row_set(lines + row, t->cols, cols - t->cols, 0);
+ else
+ lines[row].dirty = true;
}
t->cols = cols;
}
}
t->cols = cols;
}
@@
-863,14
+865,13
@@
void madtty_resize(madtty_t *t, int rows, int cols)
while (t->rows < rows) {
lines[t->rows].text = (wchar_t *)calloc(sizeof(wchar_t), cols);
lines[t->rows].attr = (uint16_t *)calloc(sizeof(uint16_t), cols);
while (t->rows < rows) {
lines[t->rows].text = (wchar_t *)calloc(sizeof(wchar_t), cols);
lines[t->rows].attr = (uint16_t *)calloc(sizeof(uint16_t), cols);
+ t_row_set(lines + t->rows, 0, t->cols, 0);
t->rows++;
}
t->curs_row += lines - t->lines;
t->rows++;
}
t->curs_row += lines - t->lines;
- t->scroll_top += lines - t->lines;
- t->scroll_bot += lines - t->lines;
- if (t->scroll_bot > lines + t->rows)
- t->scroll_bot = lines + t->rows;
+ t->scroll_top = lines;
+ t->scroll_bot = lines + rows;
t->lines = lines;
clamp_cursor_to_bounds(t);
ioctl(t->pty, TIOCSWINSZ, &ws);
t->lines = lines;
clamp_cursor_to_bounds(t);
ioctl(t->pty, TIOCSWINSZ, &ws);