diff --git a/gdk/broadway/gdkdisplay-broadway.c b/gdk/broadway/gdkdisplay-broadway.c index 9bc4ff99bc..16bd99e225 100644 --- a/gdk/broadway/gdkdisplay-broadway.c +++ b/gdk/broadway/gdkdisplay-broadway.c @@ -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) diff --git a/gdk/broadway/gdkprivate-broadway.h b/gdk/broadway/gdkprivate-broadway.h index 19f9acb927..b33dd9c3f2 100644 --- a/gdk/broadway/gdkprivate-broadway.h +++ b/gdk/broadway/gdkprivate-broadway.h @@ -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,