macos: queue all pending events
authorChristian Hergert <christian@hergert.me>
Thu, 10 Mar 2022 11:20:07 +0000 (03:20 -0800)
committerChristian Hergert <christian@hergert.me>
Thu, 10 Mar 2022 11:20:07 +0000 (03:20 -0800)
Rather than process these a single event at a time, queue all of the
outstanding events from the NSEvent queue.

gdk/macos/gdkmacosdisplay.c

index 9fbfac49ed1e480f7eb9ce067e6c4d859946b325..d1398335fd97a89fbad86cf741cc1eb3afb774dc 100644 (file)
@@ -310,7 +310,7 @@ gdk_macos_display_queue_events (GdkDisplay *display)
 
   g_return_if_fail (GDK_IS_MACOS_DISPLAY (self));
 
-  if ((nsevent = _gdk_macos_event_source_get_pending ()))
+  while ((nsevent = _gdk_macos_event_source_get_pending ()))
     {
       GdkEvent *event = _gdk_macos_display_translate (self, nsevent);