commit fb05011ad0db2e2c5e557d91f398970d75cf8d15 Author: Scott Kostyshak <skost...@lyx.org> Date: Wed Jun 25 16:50:31 2014 -0400
Clear empty selections in GuiView after dispatch Empty selections can cause confusing behavior for a few reasons: (1) some functions behave differently depending on whether there is a selection. If I press delete, nothing happens (where I expect the character or inset before the cusor to be deleted). If I toggle bold or emphasize nothing happens (where if there is no selection the entire word is toggled). There are other LyX functions that depend on whether there is a selection or not. Further, I wonder if any part of LyX's code assumes that if there is a selection it is non-empty. (2) menu options are incorrectly set. For example, the scissors icon. For remaining empty selection issues, see #9222. For more information, see: https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg184758.html diff --git a/src/frontends/qt4/GuiView.cpp b/src/frontends/qt4/GuiView.cpp index a7cbbe4..d4ad5ad 100644 --- a/src/frontends/qt4/GuiView.cpp +++ b/src/frontends/qt4/GuiView.cpp @@ -3834,6 +3834,11 @@ void GuiView::dispatch(FuncRequest const & cmd, DispatchResult & dr) if (menuBar()->isVisible() && lyxrc.full_screen_menubar) menuBar()->hide(); } + + // Clear non-empty selections + Cursor & cur = bv->cursor(); + if (cur.selection() && cur.selBegin() == cur.selEnd()) + cur.clearSelection(); }