Subject: bug#55836: 29.0.50; (iconify-frame) freezes buffer view under Wayland.

From: Tino Calancha <[email-masked]>
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.