From: Joe Krahn <krahn@ni...> - 2006-10-03 17:27:12
Win32 menus are not getting cleared when the parent window loses focus.
I think that X11 menus may be the same. Also, the Win32 parent window
can sometimes pop in front of the menu window. The demo 'one'
illustrates it. Activate the menu near the right of the parent window,
then move to the 3rd-level menu, then go back to the parent menu without
crossing over the 2nd-level menu. The main window gets a WM_ACTIVATE
message, and comes to the front.
There are some other less critical issues as well. a sub-menu window
should slightly overlap it's parent, unless it gets pushed to the left
due to lack of space. There should also be a minimum width.
One issue is how people feel about replicating GLUT precisely versus
just doing a good job. In Win32 GLUT, the menus are system drawn, and
therefore work pretty well. X11 GLUT menus never did a good job of
dealing with adjusting crowded menus without obscuring the parent, and
some other deficiencies.
My preference is not to avoid replicating X11 GLUT. Win32 native menus,
as used in Win32-GLUT, is a definitely a good design model for Win32
FreeGLUT, and a better match to modern X11 menus than old X11 GLUT. But,
I would prefer to get the same appearance on all platforms.
It may also be worth having a FreeGLUT config setting for menu colors,
fonts, and border appearance, which could give a close match to native
menus across all platforms.
Lastly, I think it would be a small but very useful extension to support
horizontal menus that can stay visible, so that a 'modern' menu is
possible. Alternatively, a similar effect can be obtained if the main
menu is user-drawn and a function is added to manually pop up a menu at
a specific location.