]> Pileus Git - ~andy/gtk/commitdiff
[broadway] Add _gdk_broadway_display_consume_all_input
authorAlexander Larsson <alexl@redhat.com>
Tue, 5 Apr 2011 08:44:53 +0000 (10:44 +0200)
committerAlexander Larsson <alexl@redhat.com>
Thu, 7 Apr 2011 08:03:16 +0000 (10:03 +0200)
This parses and queues all currently availible input data non-blockingly.
Useful to ensure the latest up-to-date future info.

gdk/broadway/gdkdisplay-broadway.c
gdk/broadway/gdkprivate-broadway.h

index 9bc4ff99bce93e58d36cef2f494e6abe812b3d0b..16bd99e22598b3f8603df45a9e70bfd9b72c3554 100644 (file)
@@ -375,6 +375,21 @@ _gdk_broadway_display_read_all_input_nonblocking (GdkDisplay *display)
   parse_input (input);
 }
 
+void
+_gdk_broadway_display_consume_all_input (GdkDisplay *display)
+{
+  GdkBroadwayDisplay *broadway_display;
+
+  broadway_display = GDK_BROADWAY_DISPLAY (display);
+  _gdk_broadway_display_read_all_input_nonblocking (display);
+
+  /* Since we're parsing input but not processing the resulting messages
+     we might not get a readable callback on the stream, so queue an idle to
+     process the messages */
+  queue_process_input_at_idle (broadway_display);
+}
+
+
 static gboolean
 input_data_cb (GObject  *stream,
               BroadwayInput *input)
index 19f9acb927521bcd1a4a53dbbe22d7363dd4196b..b33dd9c3f24de622eaa1a0c2241e349c5947ccd5 100644 (file)
@@ -187,6 +187,7 @@ gint _gdk_broadway_display_text_property_to_utf8_list (GdkDisplay    *display,
 gchar *_gdk_broadway_display_utf8_to_string_target (GdkDisplay  *display,
                                                    const gchar *str);
 GdkKeymap* _gdk_broadway_display_get_keymap (GdkDisplay *display);
+void _gdk_broadway_display_consume_all_input (GdkDisplay *display);
 BroadwayInputMsg * _gdk_broadway_display_block_for_input (GdkDisplay *display,
                                                          char op,
                                                          guint32 serial,