]> git.eshelyaron.com Git - emacs.git/commitdiff
Reapply "Fix cursor positioning of nested tty child frames"
authorGerd Möllmann <gerd@gnu.org>
Sat, 25 Jan 2025 13:28:09 +0000 (14:28 +0100)
committerEshel Yaron <me@eshelyaron.com>
Sat, 25 Jan 2025 17:49:10 +0000 (18:49 +0100)
This reverts commit 65036323fc1cdf18a7812b1c922583e6466972a6.

(cherry picked from commit 26b144f241c7843b635415f2b68b8c3df0b23e02)

src/terminal.c

index db6d42d4b4ff4c16e199ca95be544c121e6e4dc9..e6d5a5d309aa3d430d7444d6b8d9278d479b9796 100644 (file)
@@ -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.  */