emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 13fdcd730ff 5/5: Revert "Simplify absolute (x, y) computation on


From: Gerd Moellmann
Subject: master 13fdcd730ff 5/5: Revert "Simplify absolute (x, y) computation on ttys"
Date: Sat, 25 Jan 2025 03:40:31 -0500 (EST)

branch: master
commit 13fdcd730ff63bf79caace9a6e46aff5f944b1b7
Author: Gerd Möllmann <gerd@gnu.org>
Commit: Gerd Möllmann <gerd@gnu.org>

    Revert "Simplify absolute (x, y) computation on ttys"
    
    This reverts commit 5e132835ad320be1d5c45ffbf83d67d16fc7bf96.
---
 src/dispextern.h |  2 +-
 src/dispnew.c    | 19 ++++++++++---------
 src/term.c       |  7 ++++---
 3 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/src/dispextern.h b/src/dispextern.h
index 9c193e79fd1..1060895d0f4 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -3958,7 +3958,7 @@ void combine_updates (Lisp_Object root_frames);
 void combine_updates_for_frame (struct frame *f, bool inhibit_id_p);
 void tty_raise_lower_frame (struct frame *f, bool raise);
 int max_child_z_order (struct frame *parent);
-void root_xy (struct frame *f, int x, int y, int *rx, int *ry);
+void frame_pos_abs (struct frame *f, int *x, int *y);
 bool is_frame_ancestor (struct frame *f1, struct frame *f2);
 
 INLINE_HEADER_END
diff --git a/src/dispnew.c b/src/dispnew.c
index 00e59c767e8..724ec6ece9a 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -3313,18 +3313,16 @@ rect_intersect (struct rect *r, struct rect r1, struct 
rect r2)
   return true;
 }
 
-/* Translate (X, Y) relative to frame F to absolute coordinates
-   in (*X, *Y).  */
+/* Return the absolute position of frame F in *X and *Y.  */
 
 void
-root_xy (struct frame *f, int x, int y, int *rx, int *ry)
+frame_pos_abs (struct frame *f, int *x, int *y)
 {
-  *rx = x;
-  *ry = y;
+  *x = *y = 0;
   for (; f; f = FRAME_PARENT_FRAME (f))
     {
-      *rx += f->left_pos;
-      *ry += f->top_pos;
+      *x += f->left_pos;
+      *y += f->top_pos;
     }
 }
 
@@ -3335,7 +3333,7 @@ static struct rect
 frame_rect_abs (struct frame *f)
 {
   int x, y;
-  root_xy (f, 0, 0, &x, &y);
+  frame_pos_abs (f, &x, &y);
   return (struct rect) { x, y, f->total_cols, f->total_lines };
 }
 
@@ -3877,7 +3875,10 @@ abs_cursor_pos (struct frame *f, int *x, int *y)
 
       wx += max (0, w->left_margin_cols);
 
-      root_xy (f, wx, wy, x, y);
+      int fx, fy;
+      frame_pos_abs (f, &fx, &fy);
+      *x = fx + wx;
+      *y = fy + wy;
       return true;
     }
 
diff --git a/src/term.c b/src/term.c
index 00bc94e6e31..4ae9c373888 100644
--- a/src/term.c
+++ b/src/term.c
@@ -2996,9 +2996,10 @@ mouse_get_xy (int *x, int *y)
   struct frame *sf = SELECTED_FRAME ();
   if (f == sf || is_frame_ancestor (sf, f))
     {
-      int mx = XFIXNUM (XCAR (XCDR (mouse)));
-      int my = XFIXNUM (XCDR (XCDR (mouse)));
-      root_xy (f, mx, my, x, y);
+      int fx, fy;
+      frame_pos_abs (f, &fx, &fy);
+      *x = fx + XFIXNUM (XCAR (XCDR (mouse)));
+      *y = fy + XFIXNUM (XCDR (XCDR (mouse)));
     }
 }
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]