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
This commit is contained in:
Scott Kostyshak 2014-06-25 16:50:31 -04:00
parent f9caebd29f
commit fb05011ad0

View File

@ -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();
}