diff --git a/gdk/broadway/gdkdisplay-broadway.c b/gdk/broadway/gdkdisplay-broadway.c index 400184266d..4435bb9a26 100644 --- a/gdk/broadway/gdkdisplay-broadway.c +++ b/gdk/broadway/gdkdisplay-broadway.c @@ -458,9 +458,8 @@ start_output (HttpRequest *request) display_broadway->output = broadway_output_new (fd); _gdk_broadway_resync_windows (); - /* TODO: This leaks the connection since we just keep the fd, - we want to avoid using the fd at all here */ - g_object_ref (request->connection); + /* Keep connection alive */ + display_broadway->output_connection = g_object_ref (request->connection); http_request_free (request); } diff --git a/gdk/broadway/gdkdisplay-broadway.h b/gdk/broadway/gdkdisplay-broadway.h index 8b5c83fa2e..6870f86060 100644 --- a/gdk/broadway/gdkdisplay-broadway.h +++ b/gdk/broadway/gdkdisplay-broadway.h @@ -81,6 +81,7 @@ struct _GdkDisplayBroadway GSocketService *service; BroadwayOutput *output; + GSocketConnection *output_connection; }; struct _GdkDisplayBroadwayClass