Hi, as we discussed, I prefer this patch to go in after 9/8 to avoid some incorrect resizes On Tue, 2016-03-22 at 13:57 +0100, Marc-André Lureau wrote: > If egl display is enabled, use GL scanout geometry to check > intersection > with the monitor area. This solves displaying GL display without > software canvas. What are the issues? Pavel > > Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> > --- > src/spice-widget.c | 41 ++++++++++++++++++++++++++++------------- > 1 file changed, 28 insertions(+), 13 deletions(-) > > diff --git a/src/spice-widget.c b/src/spice-widget.c > index e16126a..4b7e202 100644 > --- a/src/spice-widget.c > +++ b/src/spice-widget.c > @@ -2190,32 +2190,47 @@ static void update_area(SpiceDisplay > *display, > gint x, gint y, gint width, gint height) > { > SpiceDisplayPrivate *d = display->priv; > - GdkRectangle primary = { > - .x = 0, > - .y = 0, > - .width = d->width, > - .height = d->height > - }; > - GdkRectangle area = { > + GdkRectangle primary; > + > + SPICE_DEBUG("update area +%d+%d %dx%d", x, y, width, height); > + d->area = (GdkRectangle) { > .x = x, > .y = y, > .width = width, > .height = height > }; > > - SPICE_DEBUG("update area, primary: %dx%d, area: +%d+%d %dx%d", > d->width, d->height, area.x, area.y, area.width, area.height); > +#ifndef G_OS_WIN32 > + if (d->egl.enabled) { > + primary = (GdkRectangle) { > + .width = d->egl.scanout.width, > + .height = d->egl.scanout.height > + }; > + } else > +#endif > + { > + primary = (GdkRectangle) { > + .width = d->width, > + .height = d->height > + }; > + } > > - if (!gdk_rectangle_intersect(&primary, &area, &area)) { > + SPICE_DEBUG("primary: %dx%d", primary.width, primary.height); > + if (!gdk_rectangle_intersect(&primary, &d->area, &d->area)) { > SPICE_DEBUG("The monitor area is not intersecting primary > surface"); > memset(&d->area, '\0', sizeof(d->area)); > set_monitor_ready(display, false); > return; > } > > - spicex_image_destroy(display); > - d->area = area; > - if (gtk_widget_get_realized(GTK_WIDGET(display))) > - update_image(display); > +#ifndef G_OS_WIN32 > + if (!d->egl.enabled) > +#endif > + { > + spicex_image_destroy(display); > + if (gtk_widget_get_realized(GTK_WIDGET(display))) > + update_image(display); > + } > > update_size_request(display); > _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel