Avoid black screen on macOS

When paintEvent is triggered on macOS, the least we can do is to copy
our backing store to the screen.
This commit is contained in:
Jean-Marc Lasgouttes 2018-05-14 09:46:54 +02:00
parent 3591aa833f
commit d03deeca0c

View File

@ -1247,9 +1247,15 @@ void GuiWorkArea::Private::paintPreeditText(GuiPainter & pain)
void GuiWorkArea::paintEvent(QPaintEvent * ev)
{
// Hopefully fixes bug #10989.
if (view().busy())
// Do not trigger the painting machinery if we are not ready (see
// bug #10989). However, since macOS has turned the screen black at
// this point, our backing store has to be copied to screen.
if (view().busy()) {
// this is a no-op except on macOS.
d->updateScreen(ev->rect());
ev->accept();
return;
}
// LYXERR(Debug::PAINTING, "paintEvent begin: x: " << rc.x()
// << " y: " << rc.y() << " w: " << rc.width() << " h: " << rc.height());