From 5de0e0116411d36673ee3eeeb1d207f25c0d4b95 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20Dj=C3=A4rv?= Date: Sat, 8 Jun 2013 10:48:52 +0200 Subject: [PATCH] * xgselect.c (xg_select): Remove call to window_system_available and g_main_context_pending at the top, so Gdk events (i.e. file notify) are processed when Emacs is started with -nw. --- src/ChangeLog | 6 ++++++ src/xgselect.c | 10 +++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 646f1d43f4..7d650885f1 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2013-06-08 Jan Djärv + + * xgselect.c (xg_select): Remove call to window_system_available + and g_main_context_pending at the top, so Gdk events (i.e. file + notify) are processed when Emacs is started with -nw. + 2013-06-07 Eli Zaretskii * Makefile.in (ctagsfiles1, ctagsfiles2): Don't include *.m files. diff --git a/src/xgselect.c b/src/xgselect.c index 38b9705e97..e2d14f12e9 100644 --- a/src/xgselect.c +++ b/src/xgselect.c @@ -44,9 +44,13 @@ xg_select (int fds_lim, SELECT_TYPE *rfds, SELECT_TYPE *wfds, SELECT_TYPE *efds, int i, nfds, tmo_in_millisec; USE_SAFE_ALLOCA; - if (! (window_system_available (NULL) - && g_main_context_pending (context = g_main_context_default ()))) - return pselect (fds_lim, rfds, wfds, efds, timeout, sigmask); + /* Do not try to optimize with an initial check with g_main_context_pending + and a call to pselect if it returns false. If Gdk has a timeout for 0.01 + second, and Emacs has a timeout for 1 second, g_main_context_pending will + return false, but the timeout will be 1 second, thus missing the gdk + timeout with a lot. */ + + context = g_main_context_default (); if (rfds) all_rfds = *rfds; else FD_ZERO (&all_rfds); -- 2.39.2