]> git.eshelyaron.com Git - emacs.git/commit
Implement dragging and resizing of tty child frames
authorMartin Rudalics <rudalics@gmx.at>
Mon, 17 Mar 2025 08:50:19 +0000 (09:50 +0100)
committerEshel Yaron <me@eshelyaron.com>
Mon, 17 Mar 2025 11:06:15 +0000 (12:06 +0100)
commitc05a0fec91b6cbbb33ddcb9335d9936e20c549ff
tree5b710300566d376b1ec580357222a0859bb9da44
parentff188fedb1b1a4d0502e366c417e3000c5bf5371
Implement dragging and resizing of tty child frames

* lisp/faces.el (face-spec-recalc): Don't set
scroll-bar-foreground and scroll-bar-background parameters on
ttys.
* lisp/mouse.el (mouse-drag-frame-resize)
(mouse-drag-frame-move): On ttys call
'mouse-position-in-root-frame' to get position of child frame to
resize or drag.
* lisp/xt-mouse.el (xterm-mouse-event): Handle events on
child frame decorations as if they happened on the internal border
to find out whether a user wants to drag or resize a child frame.
* src/frame.c (frame_internal_border_part): Define for ttys too.
(Fmouse_position_in_root_frame): New function.
* src/frame.h (internal_border_part): Define for ttys too.
* src/keyboard.c (internal_border_parts): Define for ttys too.
(frame_border_side): New enum.
(make_lispy_position): Handle events on tty child frames.
(Fposn_at_x_y): Accept -1 for Y so we can handle a position on
the top decoration of a tty child frame.
* src/term.c (tty_frame_at): Handle case where X and Y denote a
position on a tty child frame's decoration.
* src/window.c (Fwindow_at): Handle case where X and Y denote a
position on the decoration of a tty child frame which we pretend
as belonging to that child frame (and not to its root).

(cherry picked from commit 86be9431ae88126387ed8402cb4953963ebba6f8)
lisp/faces.el
lisp/mouse.el
lisp/xt-mouse.el
src/frame.c
src/frame.h
src/keyboard.c
src/term.c
src/window.c