[virt-tools-list] [PATCH] VirtViewerDisplaySpice: rename AUTO_RESIZE_FULLSCREEN

Marc-André Lureau mlureau at redhat.com
Fri Sep 20 14:14:36 UTC 2013



----- Original Message -----
> Hm, indeed, but what about relying on the actual state of fullscreen within
> _resize() instead of relying on this flag for that behavior.  The following
> additional patch seems more correct to me:

You need to auto-resize once when going fullscreen. So that doesn't look like it would work.

> 
> @@ -198,7 +240,7 @@ virt_viewer_display_spice_resize(VirtViewerDisplaySpice
> *sel
>      if (virt_viewer_display_get_show_hint(VIRT_VIEWER_DISPLAY(self)) &
>      VIRT_VIE
>          return;
>  
> -    if (self->priv->auto_resize == AUTO_RESIZE_ONCE) {
> +    if (virt_viewer_display_get_fullscreen(VIRT_VIEWER_DISPLAY(self))) {
>          GdkRectangle monitor;
>          GdkScreen *screen = gtk_widget_get_screen(GTK_WIDGET(self));
>          int n = virt_viewer_display_get_monitor(VIRT_VIEWER_DISPLAY(self));
> 
> 
> 
> ----- Original Message -----
> > From: "Marc-André Lureau" <marcandre.lureau at gmail.com>
> > To: "Jonathon Jongsma" <jjongsma at redhat.com>
> > Cc: "Marc-André Lureau" <mlureau at redhat.com>, "virt"
> > <virt-tools-list at redhat.com>
> > Sent: Friday, September 20, 2013 7:25:34 AM
> > Subject: Re: [virt-tools-list] [PATCH] VirtViewerDisplaySpice: rename
> > AUTO_RESIZE_FULLSCREEN
> > 
> > Actually, looking more into this part of the code today, I see that it
> > uses a different path, specific to fullscreen in resize().
> > 
> > AUTO_RESIZE_FULLSCREEN does tweak resize code in 2 ways when going
> > fullscreen:
> > - use monitor geometry instead of window geometry
> > - disable further auto resize
> > 
> > Hence, I think we should keep AUTO_RESIZE_FULLSCREEN.
> > 
> > Perhaps make AUTO_RESIZE flags, and so it would use FULLSCREEN | ONCE?
> > I think that makes things more complicated, you'll need more flags for
> > NEVER, and it's easy to get in inconsistant state, but feel free to
> > propose a better solution.
> > 
> > On Thu, Sep 19, 2013 at 8:06 PM, Jonathon Jongsma <jjongsma at redhat.com>
> > wrote:
> > > Thanks, would you be willing to push it for me?  I don't yet have commit
> > > access.
> > >
> > > Jonathon
> > >
> > >
> > >
> > > ----- Original Message -----
> > >> From: "Marc-André Lureau" <mlureau at redhat.com>
> > >> To: "Jonathon Jongsma" <jjongsma at redhat.com>
> > >> Cc: virt-tools-list at redhat.com
> > >> Sent: Thursday, September 19, 2013 12:31:03 PM
> > >> Subject: Re: [virt-tools-list] [PATCH] VirtViewerDisplaySpice: rename
> > >> AUTO_RESIZE_FULLSCREEN
> > >>
> > >>
> > >>
> > >> ----- Original Message -----
> > >> > I find the AUTO_RESIZE_FULLSCREEN enum name to be slightly confusing.
> > >> > To
> > >> > me,
> > >> > it
> > >> > implies that we should always auto-resize when the window is
> > >> > fullscreen.
> > >> > But
> > >> > what it actually means is that we should only auto-resize *once* when
> > >> > the
> > >> > window
> > >> > first becomes fullscreen.
> > >> >
> > >> > Rename it to AUTO_RESIZE_ONCE to make that behavior more clear and to
> > >> > match
> > >> > the
> > >> > other values (ALWAYS, NEVER) a bit more closely.
> > >>
> > >> Makes a lot of sense, ack
> > >>
> > >> thanks
> > >>
> > >> > ---
> > >> >  src/virt-viewer-display-spice.c | 19 ++++++++++---------
> > >> >  1 file changed, 10 insertions(+), 9 deletions(-)
> > >> >
> > >> > diff --git a/src/virt-viewer-display-spice.c
> > >> > b/src/virt-viewer-display-spice.c
> > >> > index 48f07e3..5a54463 100644
> > >> > --- a/src/virt-viewer-display-spice.c
> > >> > +++ b/src/virt-viewer-display-spice.c
> > >> > @@ -35,17 +35,18 @@
> > >> >
> > >> >  G_DEFINE_TYPE (VirtViewerDisplaySpice, virt_viewer_display_spice,
> > >> >  VIRT_VIEWER_TYPE_DISPLAY)
> > >> >
> > >> > +typedef enum {
> > >> > +    AUTO_RESIZE_ALWAYS,
> > >> > +    AUTO_RESIZE_ONCE,
> > >> > +    AUTO_RESIZE_NEVER,
> > >> > +} AutoResizeMode;
> > >> > +
> > >> >  struct _VirtViewerDisplaySpicePrivate {
> > >> >      SpiceChannel *channel; /* weak reference */
> > >> >      SpiceDisplay *display;
> > >> > -    int auto_resize;
> > >> > +    AutoResizeMode auto_resize;
> > >> >  };
> > >> >
> > >> > -enum {
> > >> > -    AUTO_RESIZE_ALWAYS,
> > >> > -    AUTO_RESIZE_FULLSCREEN,
> > >> > -    AUTO_RESIZE_NEVER,
> > >> > -};
> > >> >
> > >> >  #define VIRT_VIEWER_DISPLAY_SPICE_GET_PRIVATE(o)
> > >> >  (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_DISPLAY_SPICE,
> > >> >  VirtViewerDisplaySpicePrivate))
> > >> >
> > >> > @@ -197,7 +198,7 @@
> > >> > virt_viewer_display_spice_resize(VirtViewerDisplaySpice
> > >> > *self,
> > >> >      if (virt_viewer_display_get_show_hint(VIRT_VIEWER_DISPLAY(self))
> > >> >      &
> > >> >      VIRT_VIEWER_DISPLAY_SHOW_HINT_DISABLED)
> > >> >          return;
> > >> >
> > >> > -    if (self->priv->auto_resize == AUTO_RESIZE_FULLSCREEN) {
> > >> > +    if (self->priv->auto_resize == AUTO_RESIZE_ONCE) {
> > >> >          GdkRectangle monitor;
> > >> >          GdkScreen *screen = gtk_widget_get_screen(GTK_WIDGET(self));
> > >> >          int n =
> > >> >          virt_viewer_display_get_monitor(VIRT_VIEWER_DISPLAY(self));
> > >> > @@ -246,7 +247,7 @@
> > >> > virt_viewer_display_spice_size_allocate(VirtViewerDisplaySpice *self,
> > >> >      virt_viewer_display_spice_resize(self, allocation,
> > >> >                                       self->priv->auto_resize !=
> > >> >                                       AUTO_RESIZE_NEVER);
> > >> >
> > >> > -    if (self->priv->auto_resize == AUTO_RESIZE_FULLSCREEN)
> > >> > +    if (self->priv->auto_resize == AUTO_RESIZE_ONCE)
> > >> >          self->priv->auto_resize = AUTO_RESIZE_NEVER;
> > >> >  }
> > >> >
> > >> > @@ -291,7 +292,7 @@ fullscreen_changed(VirtViewerDisplaySpice *self,
> > >> >          if (auto_conf)
> > >> >              self->priv->auto_resize = AUTO_RESIZE_NEVER;
> > >> >          else
> > >> > -            self->priv->auto_resize = AUTO_RESIZE_FULLSCREEN;
> > >> > +            self->priv->auto_resize = AUTO_RESIZE_ONCE;
> > >> >      } else
> > >> >          self->priv->auto_resize = AUTO_RESIZE_ALWAYS;
> > >> >  }
> > >> > --
> > >> > 1.8.3.1
> > >> >
> > >> > _______________________________________________
> > >> > virt-tools-list mailing list
> > >> > virt-tools-list at redhat.com
> > >> > https://www.redhat.com/mailman/listinfo/virt-tools-list
> > >> >
> > >>
> > >
> > > _______________________________________________
> > > virt-tools-list mailing list
> > > virt-tools-list at redhat.com
> > > https://www.redhat.com/mailman/listinfo/virt-tools-list
> > 
> > 
> > 
> > --
> > Marc-André Lureau
> >
> 
> _______________________________________________
> 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