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);

Reply via email to