From: Richard Heck Date: Mon, 17 Feb 2014 20:49:53 +0000 (-0500) Subject: Fix bug #8540 by not resetting the GUI if the request came from X-Git-Tag: 2.1.0rc1~189 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=7220f1459ecfae47da2a635fc3ed9a73e6a3971f;p=lyx.git 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. --- diff --git a/src/frontends/qt4/GuiApplication.cpp b/src/frontends/qt4/GuiApplication.cpp index 1b58e9e891..f32c7469b8 100644 --- a/src/frontends/qt4/GuiApplication.cpp +++ b/src/frontends/qt4/GuiApplication.cpp @@ -1677,7 +1677,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; }