Fix bug #8540 by not resetting the GUI if the request came from

the minibuffer. As the comments explain, this leaves a different
bug, but (a) it isn't a crash and (b) it probably won't affect
many users, if *any* users.
(cherry picked from commit 7220f1459e)
This commit is contained in:
Richard Heck 2014-02-17 15:49:53 -05:00
parent 0b47d745d9
commit 9e9e02d285

View File

@ -1467,7 +1467,18 @@ void GuiApplication::dispatch(FuncRequest const & cmd, DispatchResult & dr)
}
actOnUpdatedPrefs(lyxrc_orig, lyxrc);
resetGui();
// If the request comes from the minibuffer, then we can't reset
// the GUI, since that would destory the minibuffer itself and
// cause a crash, since we are currently in one of the methods of
// GuiCommandBuffer. See bug #8540.
if (cmd.origin() != FuncRequest::COMMANDBUFFER)
resetGui();
// else
// FIXME Unfortunately, that leaves a bug here, since we cannot
// reset the GUI in this case. If the changes to lyxrc affected the
// UI, then, nothing would happen. This seems fairly unlikely, but
// it definitely is a bug.
break;
}