* xgselect.c (xg_select): Remove call to window_system_available
authorJan Djärv <jan.h.d@swipnet.se>
Sat, 8 Jun 2013 08:48:52 +0000 (10:48 +0200)
committerJan Djärv <jan.h.d@swipnet.se>
Sat, 8 Jun 2013 08:48:52 +0000 (10:48 +0200)
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
src/xgselect.c

index 646f1d4..7d65088 100644 (file)
@@ -1,3 +1,9 @@
+2013-06-08  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * 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  <eliz@gnu.org>
 
        * Makefile.in (ctagsfiles1, ctagsfiles2): Don't include *.m files.
index 38b9705..e2d14f1 100644 (file)
@@ -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);