Here is a tentative patch for http://bugzilla.lyx.org/show_bug.cgi?id=1941
I am not sure it is the exact right thing to do, so I'd appreciate some testing. Bennett, in particular, could you try it out on OS X? The problem was that Dialog::apply() dispatches LFUN_INSET_APPLY, and the icons are disabled because the main window does not have the focus (this is the special code I added for LyX/Mac). My fix is to avoid updating toolbar/menubar for INTERNAL dispatches. Comments? JMarc
Index: src/ChangeLog =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/ChangeLog,v retrieving revision 1.2277 diff -u -p -r1.2277 ChangeLog --- src/ChangeLog 10 Sep 2005 13:29:43 -0000 1.2277 +++ src/ChangeLog 12 Sep 2005 15:08:36 -0000 @@ -1,3 +1,8 @@ +2005-09-12 Jean-Marc Lasgouttes <[EMAIL PROTECTED]> + + * lyxfunc.C (sendDispatchMessage): do not update menubar/toolbar + when command is internal. + 2005-09-10 Georg Baum <[EMAIL PROTECTED]> * text.C (leftMargin): check for inInset == 0 Index: src/lyxfunc.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/lyxfunc.C,v retrieving revision 1.666 diff -u -p -r1.666 lyxfunc.C --- src/lyxfunc.C 8 Sep 2005 12:06:49 -0000 1.666 +++ src/lyxfunc.C 12 Sep 2005 15:08:36 -0000 @@ -1575,8 +1575,10 @@ void LyXFunc::dispatch(FuncRequest const void LyXFunc::sendDispatchMessage(string const & msg, FuncRequest const & cmd) { - owner->updateMenubar(); - owner->updateToolbars(); + if (cmd.origin != FuncRequest::INTERNAL) { + owner->updateMenubar(); + owner->updateToolbars(); + } const bool verbose = (cmd.origin == FuncRequest::UI || cmd.origin == FuncRequest::COMMANDBUFFER);