Force displays to update geometry when agent connects

We have to force displays to update geometry when the agent connects to
ensure the client will have the guest with the right resolution when the
guest has rebooted or the agent has crashed.

https://bugzilla.redhat.com/sho_bug.cgi?id=1021841
This commit is contained in:
Fabiano Fidêncio 2014-08-11 22:38:38 +02:00
parent 4767491532
commit e85ae4c27c
3 changed files with 9 additions and 0 deletions

View File

@ -621,6 +621,10 @@ agent_connected_changed(SpiceChannel *cmain G_GNUC_UNUSED,
{
// this will force refresh of application menu
g_signal_emit_by_name(self, "session-display-updated");
/* this will force update displays geometry when the agent has connected
* after the application (eg: rebooting the guest) */
virt_viewer_session_update_displays_geometry(VIRT_VIEWER_SESSION(self));
}
static void

View File

@ -476,6 +476,10 @@ void virt_viewer_session_clear_displays(VirtViewerSession *session)
session->priv->displays = NULL;
}
void virt_viewer_session_update_displays_geometry(VirtViewerSession *session)
{
virt_viewer_session_on_monitor_geometry_changed(session, NULL);
}
void virt_viewer_session_close(VirtViewerSession *session)

View File

@ -107,6 +107,7 @@ void virt_viewer_session_add_display(VirtViewerSession *session,
void virt_viewer_session_remove_display(VirtViewerSession *session,
VirtViewerDisplay *display);
void virt_viewer_session_clear_displays(VirtViewerSession *session);
void virt_viewer_session_update_displays_geometry(VirtViewerSession *session);
void virt_viewer_session_close(VirtViewerSession* session);
gboolean virt_viewer_session_open_fd(VirtViewerSession* session, int fd);