diff options
author | Alexander Larsson <alexl@redhat.com> | 2013-01-08 17:28:49 +0100 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2013-01-08 18:05:06 +0100 |
commit | f72d1a8d2baf36bdae15728ef8d045834d04cdb6 (patch) | |
tree | c32451265bc7b69166427dedd46bf303db377f2a | |
parent | 6f910e5e02e49ac6612ae131c49ec410e774d002 (diff) | |
download | gtk+-f72d1a8d2baf36bdae15728ef8d045834d04cdb6.tar.gz |
broadway: Fix gdk_broadway_server_wait_for_reply
We didn't properly queue an idle to handle the read messages so they
were never serviced in some situations.
-rw-r--r-- | gdk/broadway/gdkbroadway-server.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gdk/broadway/gdkbroadway-server.c b/gdk/broadway/gdkbroadway-server.c index 803152a790..0699778eec 100644 --- a/gdk/broadway/gdkbroadway-server.c +++ b/gdk/broadway/gdkbroadway-server.c @@ -309,16 +309,16 @@ input_available_cb (gpointer stream, gpointer user_data) static BroadwayReply * gdk_broadway_server_wait_for_reply (GdkBroadwayServer *server, guint32 serial) -{ +{ BroadwayReply *reply; - + while (TRUE) { reply = find_response_by_serial (server, serial); if (reply) { server->incomming = g_list_remove (server->incomming, reply); - return reply; + break; } read_some_input_blocking (server); @@ -326,6 +326,7 @@ gdk_broadway_server_wait_for_reply (GdkBroadwayServer *server, } queue_process_input_at_idle (server); + return reply; } void |