[virt-tools-list] [virt-viewer] [PATCH] session-spice: Only update displays geometry if the agent is connected
Jonathon Jongsma
jjongsma at redhat.com
Tue Jun 2 22:03:51 UTC 2015
On Tue, 2015-06-02 at 19:07 +0200, Pavel Grunt wrote:
> Hi, it makes sense.
>
> What about moving the check to virt_viewer_session_spice_apply_monitor_geometry()?
No, I don't think we can move it there. Applying the monitor geometry
does two things:
- it allows spice-gtk to update its the internal state so that it can
stay in sync with the current display configuration
- it sends down an update to the guest (if the agent is connected)
Fabiano's patch should be OK because this particular case is a "fake"
display update intended only to send our current display configuration
down to a newly-connected agent. But if we move this logic to
_apply_monitor_geometry(), we will avoid updating spice-gtk whenever the
agent is not connected, even if the client's display configuration *was*
actually changed. I suspect this will cause some issues because
spice-gtk will have an out-of-sync internal state.
Jonathon
>
> Pavel
>
> On Tue, 2015-06-02 at 17:35 +0200, Fabiano Fidêncio wrote:
> > ---
> > src/virt-viewer-session-spice.c | 11 ++++++++---
> > 1 file changed, 8 insertions(+), 3 deletions(-)
> >
> > diff --git a/src/virt-viewer-session-spice.c b/src/virt-viewer-session-spice.c
> > index b69faa6..f763975 100644
> > --- a/src/virt-viewer-session-spice.c
> > +++ b/src/virt-viewer-session-spice.c
> > @@ -674,12 +674,17 @@ agent_connected_changed(SpiceChannel *cmain G_GNUC_UNUSED,
> > GParamSpec *pspec G_GNUC_UNUSED,
> > VirtViewerSessionSpice *self)
> > {
> > + gboolean agent_connected;
> > +
> > // 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));
> > + g_object_get(cmain, "agent-connected", &agent_connected, NULL);
> > + if (agent_connected) {
> > + /* 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
>
> _______________________________________________
> virt-tools-list mailing list
> virt-tools-list at redhat.com
> https://www.redhat.com/mailman/listinfo/virt-tools-list
More information about the virt-tools-list
mailing list