]> git.lyx.org Git - features.git/commitdiff
Revert "Do not display caret when we're not ready"
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Fri, 13 Mar 2020 15:23:01 +0000 (16:23 +0100)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Fri, 13 Mar 2020 15:23:01 +0000 (16:23 +0100)
I did not mean to push this.

This reverts commit 9bc255dc89b58bfdb2d9692136b2f2715eab256b.

src/frontends/qt/GuiWorkArea.cpp
src/frontends/qt/GuiWorkArea_Private.h

index 2500afe4db9621f46ceeca772b6c5c20b1987e5a..ab13c687d7c9d549299508303bea29a33371f30f 100644 (file)
@@ -439,6 +439,14 @@ void GuiWorkArea::stopBlinkingCaret()
 
 void GuiWorkArea::startBlinkingCaret()
 {
+       // do not show the cursor if the view is busy
+       if (view().busy())
+               return;
+
+       // Don't start blinking if the cursor isn't on screen.
+       if (!d->buffer_view_->caretInView())
+               return;
+
        d->showCaret();
 
        // Avoid blinking when debugging PAINTING, since it creates too much noise
@@ -633,26 +641,24 @@ void GuiWorkArea::Private::updateCaretGeometry()
 }
 
 
-void GuiWorkArea::Private::showCaret(bool show)
+void GuiWorkArea::Private::showCaret()
 {
-       if (caret_visible_ == show)
+       if (caret_visible_)
                return;
-       caret_visible_ = show;
 
-       /**
-        * Do not trigger the painting machinery if either
-        * 1. the view is busy (no updates at all)
-        * 2. The we are not ready because document is being modified (see bug #11763)
-        * 3. The caret is outside of screen anyway.
-        */
-       if (p->view().busy()
-           || buffer_view_->buffer().undo().activeUndoGroup()
-           || !buffer_view_->caretInView())
+       updateCaretGeometry();
+       p->viewport()->update();
+}
+
+
+void GuiWorkArea::Private::hideCaret()
+{
+       if (!caret_visible_)
                return;
 
-       if (caret_visible_)
-               updateCaretGeometry();
-       p->viewport()->update();
+       caret_visible_ = false;
+       //if (!qApp->focusWidget())
+               p->viewport()->update();
 }
 
 
index 75ad98dbdc55beac16a28b9d6a19eae5822e274d..6342eaba4ac153fc7b1bf6201453ba39f5bd140b 100644 (file)
@@ -87,10 +87,10 @@ struct GuiWorkArea::Private
        void dispatch(FuncRequest const & cmd0);
        /// recompute the shape and position of the caret
        void updateCaretGeometry();
-       /// show the caret if it is not visible. Same as \c hideCaret when \c show is false.
-       void showCaret(bool show = true);
+       /// show the caret if it is not visible
+       void showCaret();
        /// hide the caret if it is visible
-       void hideCaret() { showCaret(false); }
+       void hideCaret();
        /// Set the range and value of the scrollbar and connect to its valueChanged
        /// signal.
        void updateScrollbar();