When paintEvent is triggered on macOS, the least we can do is to copy
our backing store to the screen.
void GuiWorkArea::paintEvent(QPaintEvent * ev)
{
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();
// LYXERR(Debug::PAINTING, "paintEvent begin: x: " << rc.x()
// << " y: " << rc.y() << " w: " << rc.width() << " h: " << rc.height());
// LYXERR(Debug::PAINTING, "paintEvent begin: x: " << rc.x()
// << " y: " << rc.y() << " w: " << rc.width() << " h: " << rc.height());