Subject: bug#31371: 26.1; Menu-bar stops working after search

From: Stefan Kangas <[email-masked]>
Date: Fri, 11 Oct 2019 13:25:06 +0200

tags 31371 + patch
quit

Nick Helm <[email-masked]> writes:

> I think I've worked out what's going on here. I've attached a patch -
> could you give it a try and see if works for you?
>
> When the user types in the search field, NSMenu looks for matching
> candidates by creating events to open each menu, trigger an update and
> read the results. If the search field already contains text, this
> happens as soon as the Help menu opens, either when the user clicks Help
> or mouse drags onto the Help menu.
>
> The code in ns_check_menu_open and ns_check_pending_open_menu that
> postpones mouse clicks (to fetch menus from Lisp) also tries to postpone
> these drag and search events. When it releases a delayed click on Help
> (even if the event wasn't a click to begin with), the menu reopens and
> the process loops.
>
> The attached patch gets around this by never postponing mouse drag or
> non-user mouse down events.

I've tried your patch on macOS 10.13, and it fixes the issues with the
help menu for me.  The code looks okay to me, but I don't know much
about Objective-C or macOS development, so it would be good if someone
else could review it too.

Nick, could you please provide a ChangeLog entry for these changes and
send them using "git format-patch -1"?  Details on how to do that well
are in the CONTRIBUTE file.  Thanks in advance.

Best regards,
Stefan Kangas