diff --git a/server/display-channel.cpp b/server/display-channel.cpp index a36e9cc3..52f77d42 100644 --- a/server/display-channel.cpp +++ b/server/display-channel.cpp @@ -2499,6 +2499,7 @@ void DisplayChannel::on_connect(RedClient *client, display_channel_update_compression(this, dcc); guest_set_client_capabilities(this); dcc_start(dcc); + red_qxl_request_gl_update(priv->qxl); } void DisplayChannelClient::disconnect() diff --git a/server/red-qxl.cpp b/server/red-qxl.cpp index 19618fed..75e9aa95 100644 --- a/server/red-qxl.cpp +++ b/server/red-qxl.cpp @@ -771,3 +771,10 @@ void red_qxl_async_complete(QXLInstance *qxl, uint64_t cookie) qxl_interface->async_complete(qxl, cookie); } + +void red_qxl_request_gl_update(QXLInstance *qxl) +{ + QXLInterface *qxl_interface = qxl_get_interface(qxl); + + qxl_interface->request_gl_update(qxl); +} \ No newline at end of file diff --git a/server/red-qxl.h b/server/red-qxl.h index 2084acb1..392c5c8a 100644 --- a/server/red-qxl.h +++ b/server/red-qxl.h @@ -54,6 +54,7 @@ int red_qxl_req_cursor_notification(QXLInstance *qxl); void red_qxl_notify_update(QXLInstance *qxl, uint32_t update_id); int red_qxl_flush_resources(QXLInstance *qxl); void red_qxl_async_complete(QXLInstance *qxl, uint64_t cookie); +void red_qxl_request_gl_update(QXLInstance *qxl); void red_qxl_update_area_complete(QXLInstance *qxl, uint32_t surface_id, struct QXLRect *updated_rects, uint32_t num_updated_rects); diff --git a/server/spice-qxl.h b/server/spice-qxl.h index bf17476b..6d746eb6 100644 --- a/server/spice-qxl.h +++ b/server/spice-qxl.h @@ -213,6 +213,7 @@ struct QXLInterface { void (*notify_update)(QXLInstance *qin, uint32_t update_id); int (*flush_resources)(QXLInstance *qin); void (*async_complete)(QXLInstance *qin, uint64_t cookie); + void (*request_gl_update)(QXLInstance *qin); void (*update_area_complete)(QXLInstance *qin, uint32_t surface_id, struct QXLRect *updated_rects, uint32_t num_updated_rects);