all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
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.

  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

* 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 external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.