diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 525cbcb0b1..b6ae09d0e1 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,17 @@ The license applies to all entries newer than 2009-04-28. */ +2011-04-10 01:58 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * src/rtl/gtxwc/gtxwc.c + % undone small optimization in 2011-04-04 10:48 UTC+0200 Przemyslaw Czerpak + because it caused random app stalls where the app would only + continue if some input events were manually made. Cursor + blinking also only happened on input events. + I've seen this issue on Ubuntu 10.10 and latest OS X. + After this patch, it works OK again. + Przemek, please review this patch, most probably there is + a solution which keeps the optimization and avoids this problem. + 2011-04-10 01:26 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/src/rtl/cdpapi.c ! some fixes for future CPs which may have together multibyte diff --git a/harbour/src/rtl/gtxwc/gtxwc.c b/harbour/src/rtl/gtxwc/gtxwc.c index 1223bb9573..ce51ca06b7 100644 --- a/harbour/src/rtl/gtxwc/gtxwc.c +++ b/harbour/src/rtl/gtxwc/gtxwc.c @@ -2945,23 +2945,19 @@ static void hb_gt_xwc_ProcessMessages( PXWND_DEF wnd ) } #if 1 - if( XEventsQueued( wnd->dpy, QueuedAfterFlush ) ) + do { - do + while( XEventsQueued( wnd->dpy, QueuedAfterFlush ) ) { - do - { - XEvent evt; - XNextEvent( wnd->dpy, &evt ); - hb_gt_xwc_WndProc( wnd, &evt ); - } - while( XEventsQueued( wnd->dpy, QueuedAfterFlush ) ); - hb_gt_xwc_UpdateSize( wnd ); - hb_gt_xwc_UpdatePts( wnd ); - hb_gt_xwc_UpdateCursor( wnd ); + XEvent evt; + XNextEvent( wnd->dpy, &evt ); + hb_gt_xwc_WndProc( wnd, &evt ); } - while( XEventsQueued( wnd->dpy, QueuedAfterFlush ) ); + hb_gt_xwc_UpdateSize( wnd ); + hb_gt_xwc_UpdatePts( wnd ); + hb_gt_xwc_UpdateCursor( wnd ); } + while( XEventsQueued( wnd->dpy, QueuedAfterFlush ) ); #else { HB_BOOL fRepeat;