----- 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@xxxxxxxxx> > > To: "Jonathon Jongsma" <jjongsma@xxxxxxxxxx> > > Cc: "Marc-André Lureau" <mlureau@xxxxxxxxxx>, "virt" > > <virt-tools-list@xxxxxxxxxx> > > Sent: Friday, September 20, 2013 7:25:34 AM > > Subject: Re: [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@xxxxxxxxxx> > > 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@xxxxxxxxxx> > > >> To: "Jonathon Jongsma" <jjongsma@xxxxxxxxxx> > > >> Cc: virt-tools-list@xxxxxxxxxx > > >> Sent: Thursday, September 19, 2013 12:31:03 PM > > >> Subject: Re: [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@xxxxxxxxxx > > >> > https://www.redhat.com/mailman/listinfo/virt-tools-list > > >> > > > >> > > > > > > _______________________________________________ > > > virt-tools-list mailing list > > > virt-tools-list@xxxxxxxxxx > > > https://www.redhat.com/mailman/listinfo/virt-tools-list > > > > > > > > -- > > Marc-André Lureau > > > > _______________________________________________ > virt-tools-list mailing list > virt-tools-list@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/virt-tools-list _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list