On Mon, 23 Apr 2007 22:09:36 +0200 Jan Djärv <address@hidden> wrote:
When Emacs updates the menu bar, it usually just puts empty menus
behind the menu bar entries. This is to avoid updating the whole menu
tree every time we just change buffer. When we click on the menu bar,
Emacs does update the whole menu tree (i.e. updates deep).
It seems that QtCurve can not handle non-deep menu bar entries.
[...]
I'd say this is a bug in QtCurve. I can not find a way to undo that
effect from within Emacs. Apart from the obvious, always update menus
deep. But I don't think we want to do that just for one theme. Not
that I think it would break anything, it would just make menu bar
updating a bit slower.
Your analysis seems plausible to me, and I agree Emacs shouldn't be
changed to accommodate QtCurve. Do you know if the Emacs treatment of
updating the menu bar is more or less unique to Emacs? I haven't
observed "sticky highlighting" with QtCurve with any other Gtk+ apps
under KDE (e.g., Gimp, Eclipse). If it is standard procedure in Gtk+
to always do deep updating of the menu bar, then that could account
for the asymmetry (and also for why QtCurve fails to handle the Emacs
case).