mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-25 05:55:34 +00:00
Do not compute caret geometry when we are not ready to do so.
This avoid crashes with invalid cache. Fixes bug #11763.
This commit is contained in:
parent
1264934898
commit
b7f6b979d0
@ -443,12 +443,16 @@ void GuiWorkArea::startBlinkingCaret()
|
||||
if (view().busy())
|
||||
return;
|
||||
|
||||
Point p;
|
||||
int h = 0;
|
||||
d->buffer_view_->caretPosAndHeight(p, h);
|
||||
// Don't start blinking if the cursor isn't on screen.
|
||||
if (!d->buffer_view_->cursorInView(p, h))
|
||||
return;
|
||||
// we cannot update geometry if not ready and we do not need to if
|
||||
// caret is not in view.
|
||||
if (!d->buffer_view_->buffer().undo().activeUndoGroup()) {
|
||||
Point p;
|
||||
int h = 0;
|
||||
d->buffer_view_->caretPosAndHeight(p, h);
|
||||
// Don't start blinking if the cursor isn't on screen.
|
||||
if (!d->buffer_view_->cursorInView(p, h))
|
||||
return;
|
||||
}
|
||||
|
||||
d->showCaret();
|
||||
|
||||
@ -611,6 +615,11 @@ void GuiWorkArea::Private::resizeBufferView()
|
||||
|
||||
void GuiWorkArea::Private::updateCaretGeometry()
|
||||
{
|
||||
// we cannot update geometry if not ready and we do not need to if
|
||||
// caret is not in view.
|
||||
if (buffer_view_->buffer().undo().activeUndoGroup())
|
||||
return;
|
||||
|
||||
Point point;
|
||||
int h = 0;
|
||||
buffer_view_->caretPosAndHeight(point, h);
|
||||
|
@ -98,6 +98,8 @@ What's new
|
||||
- Preserve paragarph spacing when breaking a paragraph at the start
|
||||
(bug 11817).
|
||||
|
||||
- Avoid crash in some cases where a dialog is shown during operation
|
||||
(bug 11763).
|
||||
|
||||
* INTERNALS
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user