Subject: Re: bug#57320: 29.0.50; Lucid menus can't be operated with the mouse

From: Eli Zaretskii <[email-masked]>
Date: Sun, 04 Sep 2022 08:20:23 +0300

> Cc: Stefan <[email-masked]>, [email-masked]
> From: Visuwesh <[email-masked]>
> Date: Sun, 04 Sep 2022 10:07:43 +0530
> 
> [திங்கள் ஆகஸ்ட் 22, 2022] Po Lu wrote:
> 
> > Please put a breakpoint on line 2879 of xlwmenu.c and tell me what
> > XtGrabPointer returns.  Make sure to do this from another machine, since
> > grabbing will not work if you switch windows or click anywhere else.
> 
> I wasn't sure how to make gdb tell me what XtGrabPointer returned but I
> said `s' after the breakpoint hit and it jumped to line 2890 so I think
> it means XtGrabPointer returned Success?  Anyway, here's the *gud-emacs*
> buffer,
> 
>     (gdb) run -Q
>     Starting program: /home/viz/lib/ports/emacs/src/emacs -Q
>     [Thread debugging using libthread_db enabled]
>     Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
>     [New Thread 0x7ffff15fe640 (LWP 56454)]
>     [New Thread 0x7ffff0c6d640 (LWP 56455)]
>     [New Thread 0x7fffebfff640 (LWP 56456)]
> 
>     Thread 1 "emacs" hit Breakpoint 3, pop_up_menu (mw=0x55555617dfe0, event=0x7fffffffd5a0) at xlwmenu.c:2879
>     2879	  if (XtGrabPointer ((Widget)mw, False,
>     (gdb) s
>     2890		  && lucid__menu_grab_keyboard
> 
> 
> [ P.S. What is the right value way to do get what XtGrabPointer
>   returned?  This is most probably suboptimal.  ]

One way is to step into XtGrabPointer, with either "step" or "stepi",
and then type "finish".  The "finish" command displays the value
returned by the function in which you type the command.  (You will
need "stepi" if the library that implements XtGrabPointer has no
symbols, in which case GDB will be unable to "step" into its
functions.)