On Fri, Dec 4, 2020 at 4:21 PM Daniel P. Berrangé <berra...@redhat.com> wrote:
> On Thu, Dec 03, 2020 at 12:08:05PM +0100, Gerd Hoffmann wrote: > > This makes qxl respond to user interface window resizes > > when not using spice, so it works with gtk and vnc too. > > > > Signed-off-by: Gerd Hoffmann <kra...@redhat.com> > > --- > > hw/display/qxl.c | 27 +++++++++++++++++++++++++++ > > 1 file changed, 27 insertions(+) > > > > diff --git a/hw/display/qxl.c b/hw/display/qxl.c > > index 431c1070967a..e1df95c3e8a9 100644 > > --- a/hw/display/qxl.c > > +++ b/hw/display/qxl.c > > @@ -1177,8 +1177,35 @@ static const QXLInterface qxl_interface = { > > .client_monitors_config = interface_client_monitors_config, > > }; > > > > +static int qxl_ui_info(void *opaque, uint32_t idx, QemuUIInfo *info) > > +{ > > + PCIQXLDevice *qxl = opaque; > > + VDAgentMonitorsConfig *cfg; > > + size_t size; > > + > > + if (using_spice) { > > + /* spice agent will handle display resize */ > > + return -1; > > + } > > Does this break VNC resizes if both VNC + SPICE are enabled > but the client is connected with VNC ? > Yes. I am not sure we should worry about that case much, either way. Perhaps it's best to handle both QEMU-originated resize and spice-agent based resizes, even if the former can lose details from the later for multiple screens. > > + if (idx > 0) { > > + /* supporting only single head for now */ > > + return -1; > > + } > > + > > + /* go fake a spice agent message */ > > + size = sizeof(VDAgentMonitorsConfig) + sizeof(VDAgentMonConfig); > > + cfg = g_malloc0(size); > > + cfg->num_of_monitors = 1; > > + cfg->monitors[0].width = info->width; > > + cfg->monitors[0].height = info->height; > > + interface_client_monitors_config(&qxl->ssd.qxl, cfg); > > + g_free(cfg); > > + return 0; > > +} > > + > > static const GraphicHwOps qxl_ops = { > > .gfx_update = qxl_hw_update, > > + .ui_info = qxl_ui_info, > > .gfx_update_async = true, > > }; > > > > -- > > 2.27.0 > > > > > > Regards, > Daniel > -- > |: https://berrange.com -o- > https://www.flickr.com/photos/dberrange :| > |: https://libvirt.org -o- > https://fstop138.berrange.com :| > |: https://entangle-photo.org -o- > https://www.instagram.com/dberrange :| > > > -- Marc-André Lureau