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

Jonathon Jongsma jjongsma at redhat.com
Fri Sep 20 13:52:41 UTC 2013


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:


@@ -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
>




More information about the virt-tools-list mailing list