Unqueuing events from the windowing system when paused could result
in weird reordering if event filters resulted in application-visible
behavior. Since we now resume events when the frame clock is frozen,
we now no longer count on low-level event handling running while
event handling is paused.
https://bugzilla.gnome.org/show_bug.cgi?id=685460
{
g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
- GDK_DISPLAY_GET_CLASS (display)->queue_events (display);
-
if (display->events_paused)
return NULL;
- else
- return _gdk_event_unqueue (display);
+
+ GDK_DISPLAY_GET_CLASS (display)->queue_events (display);
+
+ return _gdk_event_unqueue (display);
}
/**
gdk_threads_enter ();
*timeout = -1;
- retval = (_gdk_event_queue_find_first (display) != NULL ||
- gdk_check_xpending (display));
+
+ if (display->event_pause_count > 0)
+ retval = FALSE;
+ else
+ retval = (_gdk_event_queue_find_first (display) != NULL ||
+ gdk_check_xpending (display));
gdk_threads_leave ();
gdk_threads_enter ();
- if (event_source->event_poll_fd.revents & G_IO_IN)
+ if (event_source->display->event_pause_count > 0)
+ retval = FALSE;
+ else if (event_source->event_poll_fd.revents & G_IO_IN)
retval = (_gdk_event_queue_find_first (event_source->display) != NULL ||
gdk_check_xpending (event_source->display));
else