On Tue, 2014-08-12 at 18:03 +0200, Fabiano Fidêncio wrote: > 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, Does this fix a particular bug? If so, it should be mentioned here. > --- > src/virt-viewer-session-spice.c | 4 ++++ > src/virt-viewer-session.c | 4 ++++ > src/virt-viewer-session.h | 1 + > 3 files changed, 9 insertions(+) > > diff --git a/src/virt-viewer-session-spice.c b/src/virt-viewer-session-spice.c > index b6886be..a27d433 100644 > --- a/src/virt-viewer-session-spice.c > +++ b/src/virt-viewer-session-spice.c > @@ -618,6 +618,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 > diff --git a/src/virt-viewer-session.c b/src/virt-viewer-session.c > index c432719..d9c84a6 100644 > --- a/src/virt-viewer-session.c > +++ b/src/virt-viewer-session.c > @@ -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) > diff --git a/src/virt-viewer-session.h b/src/virt-viewer-session.h > index 316fdf0..ba0f6b2 100644 > --- a/src/virt-viewer-session.h > +++ b/src/virt-viewer-session.h > @@ -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); I don't love the name _update_displays_geometry(), but I can't really think of anything better at the moment. I think the approach is basically correct (unsurprisingly, I suppose, since I suggested it), so ACK from me. _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list