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

Reply via email to