unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: martin rudalics <rudalics@gmx.at>
To: Madhu <enometh@meer.net>, emacs-devel@gnu.org
Subject: Re: Deiconifying GTK frames on GNOME shell
Date: Sat, 11 Sep 2021 10:38:12 +0200	[thread overview]
Message-ID: <af8095d4-7b2f-32aa-342d-fcda36964257@gmx.at> (raw)
In-Reply-To: <m3lf443acx.fsf@leonis4.robolove.meer.net>

 >>> [I thought I posted this workaround that I've been using at least since
 >> ... when? ...
 >
 > a year at least (i have it in my October 2020 backup)

I wonder whether you had written it in response to some change in either
Emacs or GNOME.

 > I've noticed the problem since march last year - the mutter-wayland folk
 > i chatted with at that time disclaimed any notion of "iconify", saying
 > hiding a window does not change the state

Remarkable.  We should and do get Expose events for such windows though.
But we lack UnmapNotify and VisibilityNotify events for them.  One major
problem is that they seem to care about Wayland only now.  Have you ever
tried the pgtk branch and how it behaves in this regard?

 > and this is required for
 > live-previews when switching workspaces, etc. though they claimed full
 > support for ewmh NET_WM_STATE_HIDDEN

And IIUC we have troubles with that as well.  x_get_current_wm_state is
not reliable in my experience (or maybe we don't call it often enough).

 > no, I couldn't figure out how to make raise-frame (select a different
 > frame and set input focus) work on mutter-wayland with gtkonly emacs.

`raise-frame' calls Fmake_frame_visible.  Are advices not working when
called from C?  Anyhow, you should try to do those advices in C in the
first place - that's what I tried in the patch I sent to Dmitry and it
works for `raise-frame' here (but causes havoc under xfwm).

 > gdk's calls do not work.

In general?  We do use them all the time.

 > I think that's being punted, and relief is expected from some
 > "xdg-activation protocol"

Has that been implemented already?  The pgtk branch should probably know
about it first.

 > The mutter model means invisible frames are still supposed to keep
 > rendering - they just wont be composited on the main workspace.

But how comes then that when users iconify a frame by clicking at the
title bar icon or when they switch workspaces they get problems when
deiconyfing a frame or switching workspace again.  All that time Emacs
should think of the frame as being exposed, visible, ...  Is that
x_get_current_wm_state striking again so Emacs _is_ somehow aware of the
frame not being really visible and waits for a signal that the frame has
become visible again?

Basically we can adopt a model where Emacs thinks all the time that a
frame is not visible and always asks to make it visible when it thinks
that the frame should be visible.  Just that `frame-list' could never
tell in such a model what the visible and invisible frames are ...

 > [I try use it once in a while - try to get it to do what I want,
 > encounter problems, give up for a month, etc.]

One evidence has become clear enough though: Our mutter clients don't
use multiple frames.

Thanks, martin



  reply	other threads:[~2021-09-11  8:38 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-05  9:39 Deiconifying GTK frames on GNOME shell martin rudalics
2021-09-05 10:26 ` Colin Baxter
2021-09-06  8:31   ` martin rudalics
2021-09-05 19:19 ` Dmitry Gutov
2021-09-06  8:32   ` martin rudalics
2021-09-07  0:45     ` Dmitry Gutov
2021-09-07  8:16       ` martin rudalics
2021-09-09 13:13         ` Madhu
2021-09-10  8:34           ` martin rudalics
2021-09-10 12:04             ` Madhu
2021-09-11  8:38               ` martin rudalics [this message]
2021-12-06 15:35                 ` Madhu
2021-12-08 11:00                   ` martin rudalics
2021-12-08 11:09                     ` Po Lu
2021-12-08 16:02                       ` Yuuki Harano
2021-12-09  0:28                         ` Po Lu
2021-12-09  2:30                           ` Madhu
2021-12-09  2:46                             ` Po Lu
2021-12-09  9:20                               ` Eli Zaretskii
2021-12-08 16:33                       ` Madhu
2021-12-09  0:31                         ` Po Lu
2021-12-09  2:33                           ` Madhu
2021-09-10  8:33       ` martin rudalics
2021-09-11 14:48         ` Dmitry Gutov
2021-09-11 16:43           ` martin rudalics

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=af8095d4-7b2f-32aa-342d-fcda36964257@gmx.at \
    --to=rudalics@gmx.at \
    --cc=emacs-devel@gnu.org \
    --cc=enometh@meer.net \
    /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).