GNU bug report logs - #55836
29.0.50; (iconify-frame) freezes buffer view under Wayland.

Previous Next

Package: emacs;

Reported by: "koaaa.outlook" <whainte <at> outlook.com>

Date: Tue, 7 Jun 2022 20:25:02 UTC

Severity: normal

Tags: patch

Merged with 56833, 58424

Found in version 29.0.50

Done: Po Lu <luangruo <at> yahoo.com>

Bug is archived. No further changes may be made.

Full log


Message #74 received at 55836 <at> debbugs.gnu.org (full text, mbox):

From: Tino Calancha <tino.calancha <at> gmail.com>
To: Po Lu <luangruo <at> yahoo.com>
Cc: 55836 <at> debbugs.gnu.org, Tino Calancha <tino.calancha <at> gmail.com>
Subject: Re: bug#55836: 29.0.50; (iconify-frame) freezes buffer view under
 Wayland.
Date: Mon, 3 Oct 2022 14:28:11 +0200 (CEST)

On Fri, 30 Sep 2022, Po Lu wrote:

>> 1. The breakpoint at gdk_wayland_window_handle_configure is never reached.
>>     I have tried with both patches discussed above, and the master branch
>>     with no success: such breakpoint is not reached.

It turned out I was missing some debugging symbols.
Once iinstalled all the debugging symbols the breakpoint is reached as 
expected.


>>> Could you install debug info for GDK, put breakpoints on both
>>> window_state_event (in pgtkterm.c) and
>>> gdk_wayland_window_handle_configure (in gdkwindow-wayland.c)?
>>
>>> Please see whether the former is called after the latter, and in doing
>>> so clears the iconified flag?

The iconified flag is cleared, but I cannot tell you where this happens.
Of course, that prevents us to enter in the `if` branch at line 5472:
if (FRAME_ICONIFIED_P (f))


My two fixes point to the `else` branch at line 5505:

```
  if (new_state & GDK_WINDOW_STATE_ICONIFIED)
    SET_FRAME_ICONIFIED (f, true);
  else
    {
      FRAME_X_OUTPUT (f)->has_been_visible = true;
      inev.ie.kind = DEICONIFY_EVENT;
      XSETFRAME (inev.ie.frame_or_window, f);
      SET_FRAME_ICONIFIED (f, false);
    }
```

1. The first one "extends" this branch by adding this line:

SET_FRAME_VISIBLE (f, 1);

2. The second one just removes that `else` branch.

Both seems to fix the issue in my Wayland session.




This bug report was last modified 2 years and 192 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.