emacs-devel
[Top][All Lists]
Advanced

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

Re: "Final" version of tty child frames


From: Jared Finder
Subject: Re: "Final" version of tty child frames
Date: Thu, 12 Dec 2024 00:11:01 -0500

On 2024-12-11 02:59, Gerd Möllmann wrote:
Jared Finder <jared@finder.org> writes:

Spent time just playing with child frames to get familiar with things.
A few bugs I noticed:

Nice!

There's something in the C code that makes this branch not work with
the mini-frame package
(https://github.com/muffinmad/emacs-mini-frame). The package works
fine in graphical mode.

The page says that the package is using mini-buffer-only frames, which
are not implemented, because I wasn't interested. See the #if 0
make_terminal_frame.

I think it would be good for unimplemented features to communicate that state to the user so users know clearly what is going on. Right now the error a user sees is "Can’t change the ‘minibuffer’ parameter of this frame". Wouldn't it be better to have make-terminal-frame (a brand new function with no existing clients to support) error with something like "Minibuffer only frames are not supported in terminals"?

This also would avoid the bug that currently a minibuffer-only child frame gets left around which looks weird and confusing.

Are there any other intentionally unimplemented features? It'd be nice to have similarly clean errors to inform users.

I'm using posframe for iteration. There's a minor thing where the
cursor position is inconsistent when at the end of a line with a
posframe on it in the tty. Maybe that's intentional? It's kinda
confusing to me.

Could you please describe in detail what you are doing? I haven't
understood yet. Posframe and Corfu are BTW the reason I added the
child frames.

Child frames in the more general sense was not so interesting. Always
talking about me personally of course. I think I talked with Martin
about adding stuff as needed if users really want it, or something, and
ISTR he agreed. But Martin can speak for himself :-).

This was from me moving the cursor around (just using arrow keys) the text covered up by a child frame.

There's also a major thing where I can click on the child frame in the
tty and then my cursor is actually in the child frame and I can just
alter the text there. That behavior is inconsistent with the behavior
on graphical displays and something I can investigate.

Could you please give a recipe? I don't understand yet what you mean.
Or, if you want to investigate, please do :-). Please don't hesitate to
ask me any question. At least I still remember more stuff about this
than about igc :-).

This is from me using the mouse while in xterm and clicking on the child frame. Or just hovering over the child frame with mouse-autoselect-window set to t. I'm guessing this is just due to the frame parameter no-accept-focus not being implemented. Since this is a common path for posframe, I think it could be important to implement. Such an implementation probably needs to alter xt-mouse.el's generation of select-window events.

To reproduce:

(xterm-mouse-mode 1)
(posframe-show "*scratch*" :poshandler 'posframe-poshandler-frame-center)
Click on the posframe.

  -- MJF



reply via email to

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