The menubar in the GTK port is flashing a lot more than I like when
switching buffers temporarily. I couldn't quite figure out why the lwlib
menus did not update as frequently.
Basically, in menubar-gtk.c, there is a function called
menu_create_menubar() that converts a menubar description into appropriate
GTK widgets. It first deletes everything in the current menubar, then
gcpros the callbacks, and then creates the actual top-level menu items.
The X specific code just creates the widget_value list... does lwlib do
something smart like delay the creation of the menu until the next
set_frame_menubar seems to get called _VERY_ often, even when inside a
save-excursion. The main offenders seem to be mouse-motion over the grep
or speedbar buffers.
PS: The GTK port is pretty damn solid now if anyone wants to check it out.
Toolbars, menubars, scrollbars, drag&drop, etc. Only major thing left
is that selection handling sucks. I modelled it after the windows
version, but it appears that confuses people used to the X behaviour.
Oh well, I guess I'll have to rewrite it to be more x-like.