[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 9/9] qxl: add ui_info callback
From: |
Gerd Hoffmann |
Subject: |
[PATCH 9/9] qxl: add ui_info callback |
Date: |
Thu, 3 Dec 2020 12:08:05 +0100 |
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 <kraxel@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;
+ }
+ 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
[PATCH 5/9] vnc: add pseudo encodings, Gerd Hoffmann, 2020/12/03