Changeset 135 for trunk


Ignore:
Timestamp:
Oct 12, 2006, 12:35:42 AM (19 years ago)
Author:
dmik
Message:

Kernel: Fixed: in !QT_PM_NO_WIDGETMASK mode, performing a very quick series of one-two line scroll operations could make parts of the scrolled areas look "stuck" (not updated in time but with some delay) on heavy load of the GUI thread.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel/qwidget_pm.cpp

    r108 r135  
    23332333    }
    23342334   
    2335     WinLockVisRegions( HWND_DESKTOP, TRUE );
    2336    
    23372335    HPS hps = WinGetPS( hwnd );
    23382336
     
    24042402    WinReleasePS( hps );
    24052403   
    2406     WinLockVisRegions( HWND_DESKTOP, FALSE );
    2407    
    2408     WinUpdateWindow( hwnd );
     2404    // In order to get the effect of "instant" scrolling, we process WM_PAINT
     2405    // messages pending after invalidation manually instead of calling
     2406    // WinUpdateWindow(). The latter tends to skip WM_PAINT messages under the
     2407    // heavy load of the GUI thread (probably due to the low WM_PAINT priority),
     2408    // which may cause parts of scrolled areas to look "stuck" (not updated in
     2409    // time but with some delay).
     2410    QMSG qmsg;
     2411    while( WinPeekMsg( 0, &qmsg, NULLHANDLE, WM_PAINT, WM_PAINT, PM_REMOVE ) )
     2412        WinDispatchMsg( 0, &qmsg );
    24092413}
    24102414
Note: See TracChangeset for help on using the changeset viewer.