Revert "Fix mouse position handling for nested tty child frames"
This reverts commit f37559a1ee
.
This commit is contained in:
parent
d93d822285
commit
e2cc52dbcd
4 changed files with 21 additions and 35 deletions
|
@ -298,11 +298,16 @@ which is the \"1006\" extension implemented in Xterm >= 277."
|
|||
;; FIXME: The test for running in batch mode is here solely
|
||||
;; for the sake of xt-mouse-tests where the only frame is
|
||||
;; the initial frame.
|
||||
(frame-and-xy (unless noninteractive (tty-frame-at x y)))
|
||||
(frame (nth 0 frame-and-xy))
|
||||
(x (nth 1 frame-and-xy))
|
||||
(y (nth 2 frame-and-xy))
|
||||
(frame (unless noninteractive (tty-frame-at x y)))
|
||||
;;(_ (message (format "*** %S" frame)))
|
||||
(frame-pos (frame-position frame))
|
||||
;;(_ (message (format "*** %S" frame-pos)))
|
||||
(x (- x (car frame-pos)))
|
||||
(y (- y (cdr frame-pos)))
|
||||
;;(_ (message (format "*** %S %S" x y)))
|
||||
(w (window-at x y frame))
|
||||
;;(_ (message (format "*** %S" w)))
|
||||
|
||||
(ltrb (window-edges w))
|
||||
(left (nth 0 ltrb))
|
||||
(top (nth 1 ltrb))
|
||||
|
|
|
@ -3959,7 +3959,6 @@ 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 child_xy (struct frame *f, int x, int y, int *cx, int *cy);
|
||||
bool is_frame_ancestor (struct frame *f1, struct frame *f2);
|
||||
|
||||
INLINE_HEADER_END
|
||||
|
|
|
@ -3328,17 +3328,6 @@ root_xy (struct frame *f, int x, int y, int *rx, int *ry)
|
|||
}
|
||||
}
|
||||
|
||||
/* Translate absolute coordinates (X, Y) to coordinates relative to F's origin. */
|
||||
|
||||
void
|
||||
child_xy (struct frame *f, int x, int y, int *cx, int *cy)
|
||||
{
|
||||
int rx, ry;
|
||||
root_xy (f, 0, 0, &rx, &ry);
|
||||
*cx = x - rx;
|
||||
*cy = y - ry;
|
||||
}
|
||||
|
||||
/* Return the rectangle frame F occupies. X and Y are in absolute
|
||||
coordinates. */
|
||||
|
||||
|
|
31
src/term.c
31
src/term.c
|
@ -2595,7 +2595,7 @@ tty_draw_row_with_mouse_face (struct window *w, struct glyph_row *row,
|
|||
#endif
|
||||
|
||||
static Lisp_Object
|
||||
tty_frame_at (int x, int y, int *cx, int *cy)
|
||||
tty_frame_at (int x, int y)
|
||||
{
|
||||
for (Lisp_Object frames = Ftty_frame_list_z_order (Qnil);
|
||||
!NILP (frames);
|
||||
|
@ -2606,33 +2606,24 @@ tty_frame_at (int x, int y, int *cx, int *cy)
|
|||
int fx, fy;
|
||||
root_xy (f, 0, 0, &fx, &fy);
|
||||
|
||||
if ((fx <= x && x < fx + f->pixel_width)
|
||||
&& (fy <= y && y < fy + f->pixel_height))
|
||||
{
|
||||
child_xy (XFRAME (frame), x, y, cx, cy);
|
||||
return frame;
|
||||
}
|
||||
if (fx <= x && x < fx + f->pixel_width
|
||||
&& fy <= y && y < fy + f->pixel_height)
|
||||
return frame;
|
||||
}
|
||||
|
||||
return Qnil;
|
||||
}
|
||||
|
||||
DEFUN ("tty-frame-at", Ftty_frame_at, Stty_frame_at, 2, 2, 0,
|
||||
doc : /* Return tty frame containing absolute pixel position (X, Y).
|
||||
Value is nil if no frame found. Otherwise it is a list (FRAME CX CY),
|
||||
where FRAME is the frame containing (X, Y) and CX and CY are X and Y
|
||||
relative to FRAME. */)
|
||||
DEFUN ("tty-frame-at", Ftty_frame_at, Stty_frame_at,
|
||||
2, 2, 0,
|
||||
doc: /* Return tty frame containing pixel position X, Y. */)
|
||||
(Lisp_Object x, Lisp_Object y)
|
||||
{
|
||||
if (! FIXNUMP (x) || ! FIXNUMP (y))
|
||||
/* Coordinates this big can not correspond to any frame. */
|
||||
return Qnil;
|
||||
|
||||
int cx, cy;
|
||||
Lisp_Object frame = tty_frame_at (XFIXNUM (x), XFIXNUM (y), &cx, &cy);
|
||||
if (NILP (frame))
|
||||
return Qnil;
|
||||
return list3 (frame, make_fixnum (cx), make_fixnum (cy));
|
||||
return tty_frame_at (XFIXNUM (x), XFIXNUM (y));
|
||||
}
|
||||
|
||||
#ifdef HAVE_GPM
|
||||
|
@ -2765,9 +2756,11 @@ term_mouse_click (struct input_event *result, Gpm_Event *event,
|
|||
int
|
||||
handle_one_term_event (struct tty_display_info *tty, const Gpm_Event *event_in)
|
||||
{
|
||||
Gpm_Event event = *event_in;
|
||||
Lisp_Object frame = tty_frame_at (event_in->x, event_in->y, &event.x, &event.y);
|
||||
Lisp_Object frame = tty_frame_at (event_in->x, event_in->y);
|
||||
struct frame *f = decode_live_frame (frame);
|
||||
Gpm_Event event = *event_in;
|
||||
event.x -= f->left_pos;
|
||||
event.y -= f->top_pos;
|
||||
|
||||
struct input_event ie;
|
||||
int count = 0;
|
||||
|
|
Loading…
Add table
Reference in a new issue