mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-26 22:17:41 +00:00
Recommit clearing of empty selections in GuiView
A similar fix was reverted (453ce611
) because of crashes. The crashes occurred simply because of a failed check that we have a buffer view before using it. That is now done in this commit. The below commit description is copied from the original commit (fb05011a
): 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:
parent
73f2b01678
commit
73a7bf9dad
@ -3877,6 +3877,18 @@ void GuiView::dispatch(FuncRequest const & cmd, DispatchResult & dr)
|
||||
if (menuBar()->isVisible() && lyxrc.full_screen_menubar)
|
||||
menuBar()->hide();
|
||||
}
|
||||
|
||||
// Need to update bv because many LFUNs here might have destroyed it
|
||||
bv = currentBufferView();
|
||||
|
||||
// Clear non-empty selections
|
||||
// (e.g. from a "char-forward-select" followed by "char-backward-select")
|
||||
if (bv) {
|
||||
Cursor & cur = bv->cursor();
|
||||
if ((cur.selection() && cur.selBegin() == cur.selEnd())) {
|
||||
cur.clearSelection();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user