On Fri, Dec 25, 2020 at 11:28:56PM +0100, Mattias Engdegård wrote: > 25 dec. 2020 kl. 20.20 skrev Alan Third : > > > > On Fri, Dec 25, 2020 at 05:26:49PM +0000, Alan Third wrote: > >> ns_update_menubar is a big, complicated function that I've not been > >> over in depth to work out what it's doing, so I don't know if it > >> would be practical to break it up like I suspect using those two > >> methods would require. > > > > I've had a look through it, and I've noticed that most of the work > > appears to be building a tree of widget_value structs. A quick look at > > xmenu.c and w32menu.c leaves me with the impression that they have > > almost identical code for that part, but for some reason the NS port > > is different (and is full of "FIXME: this is broken" comments). > > > > So I suppose the first thing to do should be to align the NS code with > > the other terminals, and see if that improves things. > > Probably. When the code suffers from one of its slow spells, the > time is apparently spent in the calls to parse_single_submenu, and > from there... single_keymap_panes, I think. Didn't dig deeper after > that. Does the attached seem any better? It appears to me like the first click on a menu is slightly faster (but that may be my imagination), and subsequent menus are instant. -- Alan Third