diff --git a/src/terminal.c b/src/terminal.c index e6d5a5d309a..db6d42d4b4f 100644 --- a/src/terminal.c +++ b/src/terminal.c @@ -110,13 +110,9 @@ set_terminal_window (struct frame *f, int size) void cursor_to (struct frame *f, int vpos, int hpos) { - struct terminal *term = FRAME_TERMINAL (f); - if (term->cursor_to_hook) - { - int x, y; - root_xy (f, hpos, vpos, &x, &y); - term->cursor_to_hook (f, y, x); - } + if (FRAME_TERMINAL (f)->cursor_to_hook) + (*FRAME_TERMINAL (f)->cursor_to_hook) (f, vpos + f->top_pos, + hpos + f->left_pos); } /* Similar but don't take any account of the wasted characters. */ @@ -124,13 +120,9 @@ cursor_to (struct frame *f, int vpos, int hpos) void raw_cursor_to (struct frame *f, int row, int col) { - struct terminal *term = FRAME_TERMINAL (f); - if (term->raw_cursor_to_hook) - { - int x, y; - root_xy (f, row, col, &x, &y); - term->raw_cursor_to_hook (f, y, x); - } + if (FRAME_TERMINAL (f)->raw_cursor_to_hook) + (*FRAME_TERMINAL (f)->raw_cursor_to_hook) (f, row + f->top_pos, + col + f->left_pos); } /* Erase operations. */