From: Jordan Hayes <jor...@bitway.com>

https://bugs.freedesktop.org/show_bug.cgi?id=34715

XtAppNextEvent() doesn't return until there's an actual XEvent to be
handled; it handles Xt-internal events (inputs, timers, signals)
itself, but doesn't return (because of course, those aren't XEvents).
Which means that the exit flag doesn't get a chance to break the loop
until/unless there's an actual XEvent.

Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com>
---
 src/Event.c |    8 +-------
 1 files changed, 1 insertions(+), 7 deletions(-)

diff --git a/src/Event.c b/src/Event.c
index 7be5987..11823d6 100644
--- a/src/Event.c
+++ b/src/Event.c
@@ -1549,15 +1549,9 @@ void XtMainLoop(void)
 void XtAppMainLoop(
        XtAppContext app)
 {
-    XEvent event;
-
     LOCK_APP(app);
     do {
-       XtAppNextEvent(app, &event);
-#ifdef XTHREADS
-       /* assert(app == XtDisplayToApplicationContext(event.xany.display)); */
-#endif
-       XtDispatchEvent(&event);
+       XtAppProcessEvent(app, XtIMAll);
     } while(app->exit_flag == FALSE);
     UNLOCK_APP(app);
 }
-- 
1.7.3.2

_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to