]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiCompleter.cpp
QDialogButtonBox for the remaining dialogs.
[lyx.git] / src / frontends / qt4 / GuiCompleter.cpp
index 9858b8d01a88166a51753bc230d3ed3d06c65980..e29bfdab874dc3decb3b24d4369fc28ae48b15ee 100644 (file)
@@ -538,7 +538,9 @@ void GuiCompleter::showPopup(Cursor const & cur)
 void GuiCompleter::asyncHidePopup()
 {
        popup()->hide();
-       if (!inlineVisible())
+       // do not clear model if it has been set by an event before the
+       // timeout got triggered.
+       if (!modelActive_ && !inlineVisible())
                model_->setList(0);
 }
 
@@ -573,7 +575,9 @@ void GuiCompleter::hideInline(Cursor const & cur)
 
 void GuiCompleter::asyncHideInline()
 {
-       if (!popupVisible())
+       // do not clear model if it has been set by an event before the
+       // timeout got triggered.
+       if (!modelActive_ && !popupVisible())
                model_->setList(0);
 }
 
@@ -676,7 +680,7 @@ void GuiCompleter::tab()
        }
 
        // Make undo possible
-       cur.beginUndoGroup();
+       UndoGroupHelper ugh;
        cur.recordUndo();
 
        // If completion is active, at least complete by one character
@@ -690,14 +694,11 @@ void GuiCompleter::tab()
                hidePopup();
                hideInline(cur);
                updateVisibility(false, false);
-               cur.endUndoGroup();
                return;
        }
        docstring nextchar = completion.substr(prefix.size(), 1);
-       if (!cur.inset().insertCompletion(cur, nextchar, false)) {
-               cur.endUndoGroup();
+       if (!cur.inset().insertCompletion(cur, nextchar, false))
                return;
-       }
        updatePrefix(cur);
 
        // try to complete as far as it is unique
@@ -717,7 +718,6 @@ void GuiCompleter::tab()
        // redraw if needed
        if (cur.result().screenUpdate())
                gui_->bufferView().processUpdateFlags(cur.result().screenUpdate());
-       cur.endUndoGroup();
 }