On Fri, 2016-04-22 at 09:57 +0200, Javier Celaya wrote: > Hi > > El 22/04/16 a las 09:19, Pavel Grunt escribió: > > Hi Javier, > > > > sorry, I must have missed the patch. Can you please explain the problem? How > > to > > reproduce it? Is it about spicy? > Sorry, the commit message may be a bit short. I'll send a second version with > a longer explanation, along with the the declaration of update_size_request(). > I found the problem with spicy, but I suppose it affects other clients too. > You can reproduce it checking the "scale display" option and unchecking the > "resize guest to match window size" option. Then, the spice widget takes a > minimum size of the current guest resolution. The window can be made bigger, > but never smaller. I see, so steps to reproduce are: 1) connect with spicy to a guest 2) resize the guest to be bigger than minimal spicy resolution 640x480 3) uncheck "resize guest", check "scale display" 4) Try to scale down Thanks, Pavel > > About the patch - you should declare the update_size_request() function > > instead > > of moving scaling_updated() down - it would be more clear what has changed. > > > > Thanks, > > Pavel > > > > On Fri, 2016-04-22 at 08:06 +0200, Javier Celaya wrote: > > > Can someone review this patch, please? > > > Thank you > > > > > > El 13/04/16 a las 13:42, Javier Celaya escribió: > > > > With scaling enabled, the size request of the widget must be 640x480 > > > > (the same as with resize_guest_enable) so that the widget can be > > > > actually scalled down. > > > > --- > > > > src/spice-widget.c | 25 +++++++++++++------------ > > > > 1 file changed, 13 insertions(+), 12 deletions(-) > > > > > > > > diff --git a/src/spice-widget.c b/src/spice-widget.c > > > > index 6f638fb..f445f3f 100644 > > > > --- a/src/spice-widget.c > > > > +++ b/src/spice-widget.c > > > > @@ -169,23 +169,12 @@ static void > > > > spice_display_get_property(GObject *object, > > > > } > > > > } > > > > > > > > -static void scaling_updated(SpiceDisplay *display) > > > > -{ > > > > - SpiceDisplayPrivate *d = display->priv; > > > > - GdkWindow *window = gtk_widget_get_window(GTK_WIDGET(display)); > > > > - > > > > - recalc_geometry(GTK_WIDGET(display)); > > > > - if (d->ximage && window) { /* if not yet shown */ > > > > - gtk_widget_queue_draw(GTK_WIDGET(display)); > > > > - } > > > > -} > > > > - > > > > static void update_size_request(SpiceDisplay *display) > > > > { > > > > SpiceDisplayPrivate *d = display->priv; > > > > gint reqwidth, reqheight; > > > > > > > > - if (d->resize_guest_enable) { > > > > + if (d->resize_guest_enable || d->allow_scaling) { > > > > reqwidth = 640; > > > > reqheight = 480; > > > > } else { > > > > @@ -197,6 +186,18 @@ static void update_size_request(SpiceDisplay > > > > *display) > > > > recalc_geometry(GTK_WIDGET(display)); > > > > } > > > > > > > > +static void scaling_updated(SpiceDisplay *display) > > > > +{ > > > > + SpiceDisplayPrivate *d = display->priv; > > > > + GdkWindow *window = gtk_widget_get_window(GTK_WIDGET(display)); > > > > + > > > > + recalc_geometry(GTK_WIDGET(display)); > > > > + if (d->ximage && window) { /* if not yet shown */ > > > > + gtk_widget_queue_draw(GTK_WIDGET(display)); > > > > + } > > > > + update_size_request(display); > > > > +} > > > > + > > > > static void update_keyboard_focus(SpiceDisplay *display, gboolean > > > > state) > > > > { > > > > SpiceDisplayPrivate *d = display->priv; > > > > > > -- > > > > > > > > > Javier Celaya Software Engineer javier.celaya@xxxxxxxxxxx > > > > > > +34 876 60 00 73 @j_celaya > > > _______________________________________________ > > > Spice-devel mailing list > > > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > > > https://lists.freedesktop.org/mailman/listinfo/spice-devel > > -- > > > Javier Celaya Software Engineer javier.celaya@xxxxxxxxxxx > +34 876 60 00 73 @j_celaya _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel