Subject: bug#58164: 28.1; keybinding C-z to suspend-frame in fvwm windowmanager seems to get lost after first use.

From: Jos de Kloe <[email-masked]>
Date: Mon, 3 Oct 2022 08:37:06 +0200

Just stepping through the instructions in this x_iconify_frame function 
I see the following happening:

first time I hit C-z:

Thread 1 "emacs" hit Breakpoint 1, x_iconify_frame (f=0xe46c70) at 
xterm.c:11976
11976   {
(gdb) n
11982     if (FRAME_DISPLAY_INFO (f)->highlight_frame == f)
(gdb) n
11983       FRAME_DISPLAY_INFO (f)->highlight_frame = 0;
(gdb) n
11985     if (FRAME_ICONIFIED_P (f))
(gdb) n
11988     block_input ();
(gdb) n
11990     gui_set_bitmap_icon (f);
(gdb) n
11993     if (FRAME_GTK_OUTER_WIDGET (f))
(gdb) n
11995         if (! FRAME_VISIBLE_P (f))
(gdb) n
11998         gtk_window_iconify (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)));
(gdb) n
11999         SET_FRAME_VISIBLE (f, 0);
(gdb) n
12000         SET_FRAME_ICONIFIED (f, true);
(gdb) n
12001         unblock_input ();
(gdb) n
12002         return;

second time I hit C-z:

Thread 1 "emacs" hit Breakpoint 1, x_iconify_frame (f=0xe46c70) at 
xterm.c:11976
11976   {
(gdb) n
11982     if (FRAME_DISPLAY_INFO (f)->highlight_frame == f)
(gdb) n
11983       FRAME_DISPLAY_INFO (f)->highlight_frame = 0;
(gdb) n
11985     if (FRAME_ICONIFIED_P (f))
(gdb) n
Ffuncall (nargs=1, args=args@entry=0x7fffffffd258) at eval.c:3048
3048      lisp_eval_depth--;
(gdb) n
3049      if (backtrace_debug_on_exit (specpdl + count))
(gdb) n
3051      specpdl_ptr--;
(gdb) n
3052      return val;
(gdb) n

I hope this helps to zoom in on the problem.

On 9/30/22 08:58, Eli Zaretskii wrote:
>> Date: Fri, 30 Sep 2022 08:45:33 +0200
>> Cc: [email-masked]
>> From: Jos de Kloe <[email-masked]>
>>
>> This is the output I get:
>>
>>    <down> ;; next-line
>>    C-z	;; suspend-frame
>>    C-z	;; suspend-frame
>>    C-h l	;; view-lossage
> 
> So I guess the problem is in the X iconify_frame_hook, which is
> x_iconify_frame.  If you can step through that function in a debugger
> and see what's going on there, it might help.  Maybe Emacs thinks the
> frame is already iconified, and thus does nothing?
> 
> Thanks.