From: "Gerd Möllmann" <gerd.moellmann@gmail.com>
To: martin rudalics <rudalics@gmx.at>
Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org
Subject: Re: Question about üarent-frame changes
Date: Thu, 19 Sep 2024 11:15:12 +0200 [thread overview]
Message-ID: <m2a5g480nz.fsf@MacBookPro.fritz.box> (raw)
In-Reply-To: <52a25f70-3a7d-4387-abf2-1adbcd80c85a@gmx.at> (martin rudalics's message of "Thu, 19 Sep 2024 10:09:23 +0200")
[-- Attachment #1: Type: text/plain, Size: 1812 bytes --]
martin rudalics <rudalics@gmx.at> writes:
>> The biggest problem for me in this area today is that "visibility" on
>> GUIs and ttys apparently is not the same thing. For example,
>> make-frame-visible seems to do nothing for tty frames. So I guess all
>> tty frames are always visible in the sense that frame::visible is
>> non-zero.
>
> You mean because 'suspend-tty' acts on top-level frames only?
Haven't looked at suspend-tty yet. The list grows and grows :-).
No, the problem is that the whole hide/show frames is not implemented on
ttys presently. But I think I need that to work as it does on GUIs to be
compatible with existing packages like Corfu, which uses that.
Which means I have to implement hide/show on ttys like it is on GUIS,
amd handle the "obscured" case differently. Not sure sure if it needs a
bit in the frame at all, FWIW, since we know the topmost frame root
frame on a tty anyway, which is the only one that is visible. Anyway.
Doesn't look like a lot of fun :-).
> Another issue we would have to resolve in some way is whether a child
> frame should (or could) be given input focus on TTYs: That is, whether a
> user may type "into" a child frame, for example, when an application
> issues a 'yes-or-no-p' question within a child frame equipped with a
> minibuffer window.
My aim is to let tty child frames act like their GUI counterpart as far
as possible, which seems to mean that child frames act like any other
frame for the most part.
And that's the case currently with what I have so far. Opening a child
frame is like C-x 5 2, only that the child is displayed on top of its
parent and so on. The child can have a minibuffer and everything else.
(Except for the menu bar thing we talked about, I deliberately turned
that off).
In the y-or-n-p case, this looks like this
[-- Attachment #2: Screenshot 2024-09-19 at 11.05.56.png --]
[-- Type: image/png, Size: 445852 bytes --]
[-- Attachment #3: Type: text/plain, Size: 887 bytes --]
That is with
(defun emacs-user:my-make-child ()
(interactive)
(make-frame `((parent-frame . ,(selected-frame))
(background-color . "gray10")
(foreground-color . "white")
(top . 15)
(left . 40)
(width . 80)
(height . 25))))
So it's a "normal" frame. Haven't gotten to minibuffer-only frames and
what else is possible. (TIL there is also a delete-after or so frame
parameter). There is probably something lurking there as well.
>> But that would be too easy of course, which is why frame::visible has 2
>> bits, and if the second bit is set the frame is "obscured" (happens with
>> C-x 5 2), which I'd call sort of invisible because it can't be seen but
>> that's of course naive.
>
> Wasn't that second bit used exclusively for redisplay purposes and as
> such not available to Lisp code?
That's true, but the whole rest of hiding/showing frames isn't there on
ttys.
next prev parent reply other threads:[~2024-09-19 9:15 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-18 10:58 Question about üarent-frame changes Gerd Möllmann
2024-09-18 14:15 ` martin rudalics
2024-09-18 14:24 ` Ship Mints
2024-09-18 18:51 ` martin rudalics
2024-09-19 5:01 ` Eli Zaretskii
2024-09-19 8:10 ` martin rudalics
2024-09-18 14:26 ` Robert Pluim
2024-09-18 14:30 ` Ship Mints
2024-09-18 15:26 ` Gerd Möllmann
2024-09-18 15:32 ` Ship Mints
2024-09-18 15:22 ` Gerd Möllmann
2024-09-25 10:17 ` Gerd Möllmann
2024-09-25 11:13 ` Gerd Möllmann
2024-09-25 14:04 ` martin rudalics
2024-09-25 14:38 ` Gerd Möllmann
2024-09-25 15:29 ` Eli Zaretskii
2024-09-25 18:10 ` Gerd Möllmann
2024-09-26 4:54 ` Gerd Möllmann
2024-09-26 5:01 ` Gerd Möllmann
2024-09-26 6:40 ` Eli Zaretskii
2024-09-26 6:39 ` Eli Zaretskii
2024-09-28 9:10 ` Gerd Möllmann
2024-09-18 18:51 ` martin rudalics
2024-09-18 15:03 ` Gerd Möllmann
2024-09-18 16:14 ` Eli Zaretskii
2024-09-18 16:42 ` Gerd Möllmann
2024-09-18 16:15 ` Eli Zaretskii
2024-09-18 18:52 ` martin rudalics
2024-09-19 0:33 ` Po Lu
2024-09-19 8:08 ` martin rudalics
2024-09-19 4:29 ` Gerd Möllmann
2024-09-19 8:09 ` martin rudalics
2024-09-19 9:15 ` Gerd Möllmann [this message]
2024-09-19 9:40 ` martin rudalics
2024-09-19 10:10 ` Gerd Möllmann
2024-09-19 11:13 ` martin rudalics
2024-09-19 12:49 ` Gerd Möllmann
2024-09-19 4:58 ` Eli Zaretskii
2024-09-19 8:10 ` martin rudalics
2024-09-19 8:20 ` Eli Zaretskii
2024-09-19 8:41 ` Po Lu
2024-09-19 10:30 ` Eli Zaretskii
2024-09-19 11:13 ` martin rudalics
2024-09-19 11:33 ` Eli Zaretskii
2024-09-19 9:26 ` Gerd Möllmann
2024-09-19 13:46 ` Po Lu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m2a5g480nz.fsf@MacBookPro.fritz.box \
--to=gerd.moellmann@gmail.com \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=rudalics@gmx.at \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).