5555// This avoids blocking other threads via the per-display Xlib lock that also
5656// covers GLX functions
5757//
58- GLFWbool _glfwDispatchX11Events (void );
58+ static unsigned _glfwDispatchX11Events (void );
5959
6060static void
6161handleEvents (double timeout ) {
6262 EVDBG ("starting handleEvents(%.2f)" , timeout );
6363 int display_read_ok = pollForEvents (& _glfw .x11 .eventLoopData , timeout );
6464 EVDBG ("display_read_ok: %d" , display_read_ok );
6565 if (display_read_ok ) {
66- _glfwDispatchX11Events ();
67- EVDBG ("_glfwDispatchX11Events() done" );
66+ unsigned dispatched = _glfwDispatchX11Events ();
67+ (void )dispatched ;
68+ EVDBG ("dispatched %u X11 events" , dispatched );
6869 }
6970 glfw_ibus_dispatch (& _glfw .x11 .xkb .ibus );
7071 glfw_dbus_session_bus_dispatch ();
@@ -2497,29 +2498,29 @@ void _glfwPlatformSetWindowOpacity(_GLFWwindow* window, float opacity)
24972498 PropModeReplace , (unsigned char * ) & value , 1 );
24982499}
24992500
2500- static inline GLFWbool
2501+ static inline unsigned
25012502dispatch_x11_queued_events (void ) {
2502- GLFWbool dispatched = GLFW_FALSE ;
2503+ unsigned dispatched = 0 ;
25032504 while (XQLength (_glfw .x11 .display ) > 0 )
25042505 {
25052506 XEvent event ;
25062507 XNextEvent (_glfw .x11 .display , & event );
25072508 processEvent (& event );
2508- dispatched = GLFW_TRUE ;
2509+ dispatched += 1 ;
25092510 }
25102511 return dispatched ;
25112512}
25122513
2513- GLFWbool
2514+ static unsigned
25142515_glfwDispatchX11Events (void ) {
25152516 _GLFWwindow * window ;
2516- GLFWbool dispatched = GLFW_FALSE ;
2517+ unsigned dispatched = 0 ;
25172518
25182519#if defined(__linux__ )
25192520 _glfwDetectJoystickConnectionLinux ();
25202521#endif
25212522 XPending (_glfw .x11 .display );
2522- if ( dispatch_x11_queued_events ()) dispatched = GLFW_TRUE ;
2523+ dispatched += dispatch_x11_queued_events () ;
25232524
25242525 window = _glfw .x11 .disabledCursorWindow ;
25252526 if (window )
@@ -2538,7 +2539,7 @@ _glfwDispatchX11Events(void) {
25382539
25392540 XFlush (_glfw .x11 .display );
25402541 // XFlush can cause events to be queued
2541- if ( dispatch_x11_queued_events ()) dispatched = GLFW_TRUE ;
2542+ dispatched += dispatch_x11_queued_events () ;
25422543 return dispatched ;
25432544}
25442545
0 commit comments