aboutsummaryrefslogtreecommitdiffstats
path: root/src/term.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/term.c')
-rw-r--r--src/term.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/term.c b/src/term.c
index 4b1cad2..b764ad0 100644
--- a/src/term.c
+++ b/src/term.c
@@ -4,6 +4,8 @@
void runes_term_init(RunesTerm *t, RunesLoop *loop, int argc, char *argv[])
{
+ int width, height;
+
memset((void *)t, 0, sizeof(*t));
runes_config_init(t, argc, argv);
@@ -14,13 +16,24 @@ void runes_term_init(RunesTerm *t, RunesLoop *loop, int argc, char *argv[])
vt100_screen_init(&t->scr);
vt100_screen_set_scrollback_length(&t->scr, t->config.scrollback_length);
- runes_display_set_window_size(t);
+
+ runes_window_backend_get_size(t, &width, &height);
+ runes_term_set_window_size(t, width, height);
t->loop = loop;
runes_window_backend_init_loop(t, loop);
runes_pty_backend_init_loop(t, loop);
}
+void runes_term_set_window_size(RunesTerm *t, int xpixel, int ypixel)
+{
+ int row = ypixel / t->display.fonty, col = xpixel / t->display.fontx;
+
+ runes_display_set_window_size(t, xpixel, ypixel);
+ runes_pty_backend_set_window_size(t, row, col, xpixel, ypixel);
+ vt100_screen_set_window_size(&t->scr, row, col);
+}
+
void runes_term_cleanup(RunesTerm *t)
{
runes_config_cleanup(t);