diff --git a/ChangeLog.txt b/ChangeLog.txt index 9bc431e05b..77a109520a 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -10,6 +10,10 @@ * Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment */ +2014-01-13 17:00 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) + * src/rtl/gtxwc/gtxwc.c + % small improvement in recent modification + 2014-01-13 14:53 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * src/rtl/gtxwc/gtxwc.c ! process events disabled unintentionally in recent modification, diff --git a/src/rtl/gtxwc/gtxwc.c b/src/rtl/gtxwc/gtxwc.c index caf51b075e..7a38bcfd24 100644 --- a/src/rtl/gtxwc/gtxwc.c +++ b/src/rtl/gtxwc/gtxwc.c @@ -4196,8 +4196,11 @@ static void hb_gt_xwc_ProcessMessages( PXWND_DEF wnd, HB_BOOL fSync ) for( ;; ) { + const int event_types[] = { 0, ClientMessage, MappingNotify, + SelectionClear, SelectionNotify, SelectionRequest }; HB_BOOL fRepeat = HB_FALSE; XEvent evt; + int i; hb_gt_xwc_UpdateSize( wnd ); hb_gt_xwc_UpdatePts( wnd ); @@ -4206,15 +4209,15 @@ static void hb_gt_xwc_ProcessMessages( PXWND_DEF wnd, HB_BOOL fSync ) if( fSync ) XSync( wnd->dpy, False ); - while( XCheckWindowEvent( wnd->dpy, wnd->window, XWC_STD_MASK, &evt ) || - XCheckTypedWindowEvent( wnd->dpy, wnd->window, ClientMessage, &evt ) || - XCheckTypedWindowEvent( wnd->dpy, wnd->window, MappingNotify, &evt ) || - XCheckTypedWindowEvent( wnd->dpy, wnd->window, SelectionClear, &evt ) || - XCheckTypedWindowEvent( wnd->dpy, wnd->window, SelectionNotify, &evt ) || - XCheckTypedWindowEvent( wnd->dpy, wnd->window, SelectionRequest, &evt ) ) + for( i = 0; i < ( int ) HB_SIZEOFARRAY( event_types ); ++i ) { - hb_gt_xwc_WndProc( wnd, &evt ); - fRepeat = HB_TRUE; + if( event_types[ i ] == 0 ? + XCheckWindowEvent( wnd->dpy, wnd->window, XWC_STD_MASK, &evt ) : + XCheckTypedWindowEvent( wnd->dpy, wnd->window, event_types[ i ], &evt ) ) + { + hb_gt_xwc_WndProc( wnd, &evt ); + fRepeat = HB_TRUE; + } } if( !fRepeat )