mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 21:21:32 +00:00
Remove premature (and bad) optimization
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 fba9f5b9e8
)
This commit is contained in:
parent
b9116e8b81
commit
1e2b503ac9
@ -636,7 +636,7 @@ void GuiWorkArea::Private::showCaret()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
updateCaretGeometry();
|
updateCaretGeometry();
|
||||||
p->viewport()->update(caret_->rect());
|
p->viewport()->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -647,7 +647,7 @@ void GuiWorkArea::Private::hideCaret()
|
|||||||
|
|
||||||
caret_visible_ = false;
|
caret_visible_ = false;
|
||||||
//if (!qApp->focusWidget())
|
//if (!qApp->focusWidget())
|
||||||
p->viewport()->update(caret_->rect());
|
p->viewport()->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -110,6 +110,8 @@ What's new
|
|||||||
|
|
||||||
- Completion popup context menu now properly responds to Esc key.
|
- Completion popup context menu now properly responds to Esc key.
|
||||||
|
|
||||||
|
- Fix document updating issues with split view (bug 11354).
|
||||||
|
|
||||||
|
|
||||||
* INTERNALS
|
* INTERNALS
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user