diff options
author | Jan Djärv <jan.h.d@swipnet.se> | 2013-06-08 10:48:52 +0200 |
---|---|---|
committer | Jan Djärv <jan.h.d@swipnet.se> | 2013-06-08 10:48:52 +0200 |
commit | 5de0e0116411d36673ee3eeeb1d207f25c0d4b95 (patch) | |
tree | c5405d75bf4e5816d8532b2cb4c9e482addb9f89 /src | |
parent | 1a312bf403efdbc6b5fc3b9c9368b97ca500dc9d (diff) | |
download | emacs-5de0e0116411d36673ee3eeeb1d207f25c0d4b95.tar.gz |
* 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.
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 6 | ||||
-rw-r--r-- | src/xgselect.c | 10 |
2 files changed, 13 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 646f1d43f43..7d650885f19 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -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. diff --git a/src/xgselect.c b/src/xgselect.c index 38b9705e976..e2d14f12e9f 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); |