From nobody Mon Feb 9 10:29:01 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1666811951; cv=none; d=zohomail.com; s=zohoarc; b=htzYbbpxMAJZebx84pfP7FjsjTzdK7abThAYayt8hMXSk4zXJu9pAHoIpzLgC9x0/WDg0Ex3IdPZGd4fdJVRXIwQEDaDW+MXkNC1MEBKTEgB+4AEcRF3C0XvCr3ojwktWUofzSQo0rhH0ofHHBasOkGNdNS9RjrC3jotpt5oVY4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1666811951; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=XtSpkR/hFAFKFOwh/2s2xsqWGnuLhavo6k7YXnv91s4=; b=bvRtZOC/J72OQw5GGtEdIrCmL/oMmDxzVn7W0oeGAPhcm8Tl3N5gEP2vt898A0rwSefOIIUhTRqsEiZrK2NwHTu0m6X++pC29WmevW1vsVWDn+GYAzOdzGZHMsE55YfP1WRpUPEOO1ymUD8EJTMrZCLvox1aTY9owLPbpDYrFKc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 166681195174837.840475624073406; Wed, 26 Oct 2022 12:19:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1onlt9-0005Qx-Uh; Wed, 26 Oct 2022 15:16:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1onlsw-00059n-52 for qemu-devel@nongnu.org; Wed, 26 Oct 2022 15:16:20 -0400 Received: from mga04.intel.com ([192.55.52.120]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1onlsu-0001oA-AR for qemu-devel@nongnu.org; Wed, 26 Oct 2022 15:16:17 -0400 Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Oct 2022 12:16:12 -0700 Received: from dongwonk-z390-aorus-ultra-intel-gfx.fm.intel.com ([10.105.129.122]) by orsmga006.jf.intel.com with ESMTP; 26 Oct 2022 12:16:11 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1666811776; x=1698347776; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=VyhdR+JFZF3vUvMpGHJWvJ8DCkfPBmGnMQymf00KSJg=; b=nUB0dL5HZ+mBWxGq+5Hle1DWl1i8dmKrzCEu/RQ5rn05pj0+F2J0sbL0 wPsT0aM8YbzDdY4X8XSXiDMeObNkfhsAwraZ7Y84+G70m4teAgd/vkqvo 5cCG37x1uqueQrMeTwYZ46XM8Hzl8pZSpigwhG83xaX0A3QmruHnAKjp+ gJSQSftnQ5A2fHLtlRqgc/ryKdpsn5U5tWjoWQpgRYMe4GIQrtIaZKEUO f4tn7Nz31e22oE9D/S6OSCGau2mfCCtaWNlE0X8fcvafDVSiOISvmaQHi 4LwWKKWpufw6qmS8hPuC7AY4KsX2Zax67e/NNkhoH/jcWl2qh3gLI9P4C Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10512"; a="306769452" X-IronPort-AV: E=Sophos;i="5.95,215,1661842800"; d="scan'208";a="306769452" X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10512"; a="610080572" X-IronPort-AV: E=Sophos;i="5.95,215,1661842800"; d="scan'208";a="610080572" From: Dongwon Kim To: qemu-devel@nongnu.org Cc: kraxel@redhat.com, berrange@redhat.com, armbru@redhat.com, f4bug@amsat.org, marcandre.lureau@redhat.com, thuth@redhat.com, vivek.kasireddy@intel.com, Dongwon Kim Subject: [RFC PATCH 2/3] ui/gtk: set the ui size to 0 when invisible Date: Wed, 26 Oct 2022 12:04:20 -0700 Message-Id: <20221026190421.16922-3-dongwon.kim@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20221026190421.16922-1-dongwon.kim@intel.com> References: <20221026190421.16922-1-dongwon.kim@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=192.55.52.120; envelope-from=dongwon.kim@intel.com; helo=mga04.intel.com X-Spam_score_int: -48 X-Spam_score: -4.9 X-Spam_bar: ---- X-Spam_report: (-4.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.515, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Qemu-devel" Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1666811954034100003 Make guest displays disconnected when not visible. Setting ui size to 0 is used to indicate that the display is disconnected. When the VC is visible again, the ui size is set to associated window's size again which makes the display reconnected and available to the guest.=20 Cc: Gerd Hoffmann Cc: Daniel P. Berrang=C3=A9 Cc: Markus Armbruster Cc: Philippe Mathieu-Daud=C3=A9 Cc: Marc-Andr=C3=A9 Lureau Cc: Thomas Huth Cc: Vivek Kasireddy Signed-off-by: Dongwon Kim --- ui/gtk.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/ui/gtk.c b/ui/gtk.c index a1fb42f34d..46c3135f6d 100644 --- a/ui/gtk.c +++ b/ui/gtk.c @@ -1270,10 +1270,12 @@ static void gd_menu_switch_vc(GtkMenuItem *item, vo= id *opaque) GtkDisplayState *s =3D opaque; VirtualConsole *vc; GtkNotebook *nb =3D GTK_NOTEBOOK(s->notebook); + GdkWindow *window; gint page; =20 vc =3D gd_vc_find_current(s); vc->gfx.visible =3D false; + gd_set_ui_size(vc, 0, 0); =20 vc =3D gd_vc_find_by_menu(s); gtk_release_modifiers(s); @@ -1281,6 +1283,9 @@ static void gd_menu_switch_vc(GtkMenuItem *item, void= *opaque) page =3D gtk_notebook_page_num(nb, vc->tab_item); gtk_notebook_set_current_page(nb, page); gtk_widget_grab_focus(vc->focus); + window =3D gtk_widget_get_window(vc->gfx.drawing_area); + gd_set_ui_size(vc, gdk_window_get_width(window), + gdk_window_get_height(window)); vc->gfx.visible =3D true; } } @@ -1312,6 +1317,7 @@ static gboolean gd_tab_window_close(GtkWidget *widget= , GdkEvent *event, GtkDisplayState *s =3D vc->s; =20 vc->gfx.visible =3D false; + gd_set_ui_size(vc, 0, 0); gtk_widget_set_sensitive(vc->menu_item, true); gd_widget_reparent(vc->window, s->notebook, vc->tab_item); gtk_notebook_set_tab_label_text(GTK_NOTEBOOK(s->notebook), @@ -1347,6 +1353,7 @@ static gboolean gd_win_grab(void *opaque) static void gd_menu_untabify(GtkMenuItem *item, void *opaque) { GtkDisplayState *s =3D opaque; + GdkWindow *window; VirtualConsole *vc =3D gd_vc_find_current(s); =20 if (vc->type =3D=3D GD_VC_GFX && @@ -1385,6 +1392,10 @@ static void gd_menu_untabify(GtkMenuItem *item, void= *opaque) gd_update_geometry_hints(vc); gd_update_caption(s); } + + window =3D gtk_widget_get_window(vc->gfx.drawing_area); + gd_set_ui_size(vc, gdk_window_get_width(window), + gdk_window_get_height(window)); vc->gfx.visible =3D true; } =20 @@ -1709,7 +1720,9 @@ static gboolean gd_configure(GtkWidget *widget, { VirtualConsole *vc =3D opaque; =20 - gd_set_ui_size(vc, cfg->width, cfg->height); + if (vc->gfx.visible) { + gd_set_ui_size(vc, cfg->width, cfg->height); + } return FALSE; } =20 --=20 2.30.2