1 new commit in XEmacs:
https://bitbucket.org/xemacs/xemacs/commits/4dcbe828fa9c/
Changeset: 4dcbe828fa9c
User: stephen_at_xemacs
Date: 2017-12-29 11:45:41+00:00
Summary: Work around gdk_events_pending lossage.
Affected #: 2 files
diff -r 27b87c12a3aba5014f70dcb1b0ebb884c302f6fe -r
4dcbe828fa9c12fc65522668c3390cb8d92042c6 src/ChangeLog
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2017-12-29 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * event-gtk.c (emacs_gtk_drain_queue):
+ Work around gdk_events_pending lossage.
+
2017-12-29 Aidan Kehoe <kehoea(a)parhasard.net>
* doprnt.c (emacs_vsprintf_string):
diff -r 27b87c12a3aba5014f70dcb1b0ebb884c302f6fe -r
4dcbe828fa9c12fc65522668c3390cb8d92042c6 src/event-gtk.c
--- a/src/event-gtk.c
+++ b/src/event-gtk.c
@@ -1699,12 +1699,21 @@
it on the queue, then we go into Fnext_event(), which calls
emacs_gtk_drain_queue(). But gtk_events_pending() will always return
TRUE if there are file-descriptor (aka our process) events
- pending. Using GDK_events_pending() only shows us windowing
- system events.
+ pending.
+ GDK_events_pending() documentation says it only shows us
+ windowing system events, but in GTK3 on Mac OS X "High Sierra" at least
+ it returns true even though gdk_event_peek returns NULL. So we use the
+ the latter.
*/
if (gdk_display_get_default ())
- while (gdk_events_pending ())
- gtk_main_iteration_do (FALSE);
+ {
+ GdkEvent *e = gdk_event_peek();
+ while (e) {
+ gtk_main_iteration_do (FALSE);
+ gdk_event_free(e);
+ e = gdk_event_peek();
+ }
+ }
#ifdef HAVE_TTY
drain_tty_devices ();
Repository URL:
https://bitbucket.org/xemacs/xemacs/
--
This is a commit notification from
bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.