From 2ef16039dd7e8e084ac319546d03d8182fe2929b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Gerd=20M=C3=B6llmann?= Date: Sat, 25 Jan 2025 14:28:09 +0100 Subject: [PATCH] Reapply "Fix cursor positioning of nested tty child frames" This reverts commit 65036323fc1cdf18a7812b1c922583e6466972a6. (cherry picked from commit 26b144f241c7843b635415f2b68b8c3df0b23e02) --- src/terminal.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/terminal.c b/src/terminal.c index db6d42d4b4f..e6d5a5d309a 100644 --- a/src/terminal.c +++ b/src/terminal.c @@ -110,9 +110,13 @@ set_terminal_window (struct frame *f, int size) void cursor_to (struct frame *f, int vpos, int hpos) { - if (FRAME_TERMINAL (f)->cursor_to_hook) - (*FRAME_TERMINAL (f)->cursor_to_hook) (f, vpos + f->top_pos, - hpos + f->left_pos); + 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); + } } /* Similar but don't take any account of the wasted characters. */ @@ -120,9 +124,13 @@ cursor_to (struct frame *f, int vpos, int hpos) void raw_cursor_to (struct frame *f, int row, int col) { - if (FRAME_TERMINAL (f)->raw_cursor_to_hook) - (*FRAME_TERMINAL (f)->raw_cursor_to_hook) (f, row + f->top_pos, - col + f->left_pos); + 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); + } } /* Erase operations. */ -- 2.39.5