]> git.lyx.org Git - lyx.git/commitdiff
Remove premature (and bad) optimization
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Wed, 2 Jan 2019 17:36:02 +0000 (18:36 +0100)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Thu, 3 Jan 2019 12:52:40 +0000 (13:52 +0100)
When blinking the caret, it looks like a cool idea to only update the
small rectangle containing the caret. Actually it is an awful idea, since
the paint event will paint some rows, and these rows will not be
properly painted outside of the small rectangle. Unfortunately, the
painter will skip those "painted" rows on next paint events.

This leads to painting errors that depend on the ordering of "real"
and "caret" paint events. This is the reason why they only appeared
with split screens.

Quote of the day: ``The real problem is that programmers have spent far
too much time worrying about efficiency in the wrong places and at the
wrong times; premature optimization is the root of all evil (or at
least most of it) in programming.''
-- Donald Knuth, The Art of Computer Programming.

Fixes bug #11354.

(cherry picked from commit fba9f5b9e884f0a988bd77992772eb4986eecdec)

src/frontends/qt4/GuiWorkArea.cpp
status.23x

index 18c25caac5f109656f8de7bf593e72f2dc56884f..fee3c331a1d92aa3081294e1746588b3fab97731 100644 (file)
@@ -636,7 +636,7 @@ void GuiWorkArea::Private::showCaret()
                return;
 
        updateCaretGeometry();
-       p->viewport()->update(caret_->rect());
+       p->viewport()->update();
 }
 
 
@@ -647,7 +647,7 @@ void GuiWorkArea::Private::hideCaret()
 
        caret_visible_ = false;
        //if (!qApp->focusWidget())
-               p->viewport()->update(caret_->rect());
+               p->viewport()->update();
 }
 
 
index e2f47e31b20595b00a09654a43197f0e5ff002b9..1ee2757d133419b7ddd7a5b7152b180c74f6e43a 100644 (file)
@@ -110,6 +110,8 @@ What's new
 
 - Completion popup context menu now properly responds to Esc key.
 
+- Fix document updating issues with split view (bug 11354).
+
 
 * INTERNALS