tdf#155266 flush when scrolling or dragging

Delaying flushing until the dispatch level returns to zero causes
scrolling via the scrollwheel or mouse drag to appear laggy and
jerky.

Change-Id: Ib70e7766435baa765dd0d1d704ba2fac87f7fccc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158853
Tested-by: Jenkins
Reviewed-by: Patrick Luby <plubius@neooffice.org>
diff --git a/vcl/osx/salframe.cxx b/vcl/osx/salframe.cxx
index d20e6e3..211b288 100644
--- a/vcl/osx/salframe.cxx
+++ b/vcl/osx/salframe.cxx
@@ -1018,7 +1018,24 @@ void AquaSalFrame::Flush()
    // outside of the application's event loop (e.g. IntroWindow)
    // nothing would trigger paint event handling
    // => fall back to synchronous painting
    if( ImplGetSVData()->maAppData.mnDispatchLevel <= 0 )
    bool bFlush = ( ImplGetSVData()->maAppData.mnDispatchLevel <= 0 );

    // tdf#155266 flush when scrolling or dragging
    // Delaying flushing until the dispatch level returns to zero causes
    // scrolling via the scrollwheel or mouse drag to appear laggy and
    // jerky.
    if( !bFlush )
    {
        NSEvent *pEvent = [NSApp currentEvent];
        if ( pEvent )
        {
            NSEventType nType = [pEvent type];
            if ( nType == NSEventTypeScrollWheel || nType == NSEventTypeLeftMouseDragged )
                bFlush = true;
        }
    }

    if( bFlush )
    {
        mpGraphics->Flush();
        [mpNSView display];
@@ -1039,7 +1056,24 @@ void AquaSalFrame::Flush( const tools::Rectangle& rRect )
    // outside of the application's event loop (e.g. IntroWindow)
    // nothing would trigger paint event handling
    // => fall back to synchronous painting
    if( ImplGetSVData()->maAppData.mnDispatchLevel <= 0 )
    bool bFlush = ( ImplGetSVData()->maAppData.mnDispatchLevel <= 0 );

    // tdf#155266 flush when scrolling or dragging
    // Delaying flushing until the dispatch level returns to zero causes
    // scrolling via the scrollwheel or mouse drag to appear laggy and
    // jerky.
    if( !bFlush )
    {
        NSEvent *pEvent = [NSApp currentEvent];
        if ( pEvent )
        {
            NSEventType nType = [pEvent type];
            if ( nType == NSEventTypeScrollWheel || nType == NSEventTypeLeftMouseDragged )
                bFlush = true;
        }
    }

    if( bFlush )
    {
        mpGraphics->Flush( rRect );
        [mpNSView display];