From patchwork Sun Dec 19 02:30:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alexander Orzechowski X-Patchwork-Id: 1570704 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=E5uZRApA; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JGmxS1pbcz9s3q for ; Sun, 19 Dec 2021 13:33:48 +1100 (AEDT) Received: from localhost ([::1]:40188 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mym1C-0006Sx-2D for incoming@patchwork.ozlabs.org; Sat, 18 Dec 2021 21:33:46 -0500 Received: from eggs.gnu.org ([209.51.188.92]:41662) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mylyu-0001UD-Ba; Sat, 18 Dec 2021 21:31:24 -0500 Received: from [2607:f8b0:4864:20::f2d] (port=37465 helo=mail-qv1-xf2d.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mylyr-0003eQ-Qg; Sat, 18 Dec 2021 21:31:24 -0500 Received: by mail-qv1-xf2d.google.com with SMTP id fo11so6146972qvb.4; Sat, 18 Dec 2021 18:31:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=bnM9Ijsl4/xGd5v5bwrnrhdVO7/6XTQYZpdcZDC50KM=; b=E5uZRApA2yxy6fePTlIMOpFAGT3u+sBrDXQMb747Z/bVkN3vJsfsGKKdEcxn5J20D0 hxtGU3cRXIvdXf3WWi1yZwA2Hzy7JDmQC4XE4mVS3X8Yne60Aoo5FVef+G5Jhun/Jdp5 jHlapeq62ruVS9pLwLRBsklE4OIDQN0Q0pksjUr5l+vMsPaAQR54bIMT15EP6/fkdgis vB8yI9pYD+S9ezh/NEa+mkW3WxelLzhfXfQZ/fggZuPM7qq+uURLvOfEeK5e7YsBQrMD UW+CCITsWrhUa51POefYkkYMLI5UF7HmAwwtiCEiAv1/oEugHhzuQx3x27r7Nm+upaQy YVeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=bnM9Ijsl4/xGd5v5bwrnrhdVO7/6XTQYZpdcZDC50KM=; b=UAZ5GYJ7L2QT4uo8nAq2nrd/mEQmsfGjQ5ma04R3ORX+SLtRryNY10p4YCgQa7IkZW B3A3TttvsF6MEm0i+14PZVFbaIjIpGepANEY4dlYzEY3UlgCBmGiEtl7zX41zbijC7m2 Y3CZelOarTzwl8Yn8QSP7gULBJp2OlXhcyFaKCWwe7rjiKkunXFb9M0eCVrnbBN6RcDm WLON5+QV2QNMOONbBVe2y5gjtOYBZs5MRAhG0RNYPdRZHj9akPQMxDnGGQkM+F4S7wXk gtQuaV99vL4C+EUURMZMiuy5vVb3j1k2463J2zY7c5xI1N1OMMJez4b8P3mDJBqzxZOp 0JeQ== X-Gm-Message-State: AOAM532Mp5NNiqnM6T3LtDmvHuZQvRoluUq9i4cXL1C0Crj2OaooYyNR oMVdygZaNvPM2Zvfi2CQwAXrjMfUaOj2csQwnqU= X-Google-Smtp-Source: ABdhPJwfimZe4b5k58l+EecS+dzaJhI4Nox2nbOJG9ZnlSH+9DqsPqISjWeVn8H0mq2rqHe9dI5ITA== X-Received: by 2002:a0c:edca:: with SMTP id i10mr8390733qvr.62.1639881078420; Sat, 18 Dec 2021 18:31:18 -0800 (PST) Received: from alexdesktop.localdomain (cpebc4dfb42ca53-cmbc4dfb42ca50.cpe.net.cable.rogers.com. [99.251.122.96]) by smtp.gmail.com with ESMTPSA id m4sm10174293qtu.87.2021.12.18.18.31.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Dec 2021 18:31:18 -0800 (PST) From: Alexander Orzechowski To: qemu-devel@nongnu.org Subject: [PATCH 1/4] ui: Use allocated size instead of window size Date: Sat, 18 Dec 2021 21:30:03 -0500 Message-Id: <20211219023006.124530-2-orzechowski.alexander@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20211219023006.124530-1-orzechowski.alexander@gmail.com> References: <20211219023006.124530-1-orzechowski.alexander@gmail.com> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::f2d (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::f2d; envelope-from=orzechowski.alexander@gmail.com; helo=mail-qv1-xf2d.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: , Cc: qemu-trivial@nongnu.org, Gerd Hoffmann , Alexander Orzechowski Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" In these cases, we only care about the size of the virtual console itself. Previously, these calculations were made using the size of the entire window, which would include the size of the virtual console plus all the ui elements around it. Signed-off-by: Alexander Orzechowski Reviewed-by: Marc-André Lureau --- ui/gtk.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/ui/gtk.c b/ui/gtk.c index 428f02f2df..824334ff3d 100644 --- a/ui/gtk.c +++ b/ui/gtk.c @@ -340,8 +340,8 @@ static void gd_update_full_redraw(VirtualConsole *vc) { GtkWidget *area = vc->gfx.drawing_area; int ww, wh; - ww = gdk_window_get_width(gtk_widget_get_window(area)); - wh = gdk_window_get_height(gtk_widget_get_window(area)); + ww = gtk_widget_get_allocated_width(vc->gfx.drawing_area); + wh = gtk_widget_get_allocated_height(vc->gfx.drawing_area); #if defined(CONFIG_OPENGL) if (vc->gfx.gls && gtk_use_gl_area) { gtk_gl_area_queue_render(GTK_GL_AREA(vc->gfx.drawing_area)); @@ -387,7 +387,6 @@ static void gd_update(DisplayChangeListener *dcl, int x, int y, int w, int h) { VirtualConsole *vc = container_of(dcl, VirtualConsole, gfx.dcl); - GdkWindow *win; int x1, x2, y1, y2; int mx, my; int fbw, fbh; @@ -414,12 +413,8 @@ static void gd_update(DisplayChangeListener *dcl, fbw = surface_width(vc->gfx.ds) * vc->gfx.scale_x; fbh = surface_height(vc->gfx.ds) * vc->gfx.scale_y; - win = gtk_widget_get_window(vc->gfx.drawing_area); - if (!win) { - return; - } - ww = gdk_window_get_width(win); - wh = gdk_window_get_height(win); + ww = gtk_widget_get_allocated_width(vc->gfx.drawing_area); + wh = gtk_widget_get_allocated_height(vc->gfx.drawing_area); mx = my = 0; if (ww > fbw) { @@ -788,8 +783,8 @@ static gboolean gd_draw_event(GtkWidget *widget, cairo_t *cr, void *opaque) fbw = surface_width(vc->gfx.ds); fbh = surface_height(vc->gfx.ds); - ww = gdk_window_get_width(gtk_widget_get_window(widget)); - wh = gdk_window_get_height(gtk_widget_get_window(widget)); + ww = gtk_widget_get_allocated_width(vc->gfx.drawing_area); + wh = gtk_widget_get_allocated_height(vc->gfx.drawing_area); if (s->full_screen) { vc->gfx.scale_x = (double)ww / fbw; @@ -838,7 +833,6 @@ static gboolean gd_motion_event(GtkWidget *widget, GdkEventMotion *motion, { VirtualConsole *vc = opaque; GtkDisplayState *s = vc->s; - GdkWindow *window; int x, y; int mx, my; int fbh, fbw; @@ -851,10 +845,10 @@ static gboolean gd_motion_event(GtkWidget *widget, GdkEventMotion *motion, fbw = surface_width(vc->gfx.ds) * vc->gfx.scale_x; fbh = surface_height(vc->gfx.ds) * vc->gfx.scale_y; - window = gtk_widget_get_window(vc->gfx.drawing_area); - ww = gdk_window_get_width(window); - wh = gdk_window_get_height(window); - ws = gdk_window_get_scale_factor(window); + ww = gtk_widget_get_allocated_width(vc->gfx.drawing_area); + wh = gtk_widget_get_allocated_height(vc->gfx.drawing_area); + ws = gdk_window_get_scale_factor( + gtk_widget_get_window(vc->gfx.drawing_area)); mx = my = 0; if (ww > fbw) { From patchwork Sun Dec 19 02:30:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Orzechowski X-Patchwork-Id: 1570700 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=YsQ1nrI9; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JGmvr6tWGz9s3q for ; Sun, 19 Dec 2021 13:32:23 +1100 (AEDT) Received: from localhost ([::1]:60988 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mylzn-0001WC-Fz for incoming@patchwork.ozlabs.org; Sat, 18 Dec 2021 21:32:19 -0500 Received: from eggs.gnu.org ([209.51.188.92]:41654) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mylyu-0001UA-9b; Sat, 18 Dec 2021 21:31:24 -0500 Received: from [2607:f8b0:4864:20::82a] (port=46077 helo=mail-qt1-x82a.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mylyr-0003eU-RQ; Sat, 18 Dec 2021 21:31:23 -0500 Received: by mail-qt1-x82a.google.com with SMTP id p19so6540844qtw.12; Sat, 18 Dec 2021 18:31:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=GwUOFDoEI+IyYYH4XmhJ8f9bYsbreAJjhvE82GXnRgA=; b=YsQ1nrI99LyPMaiVdkyvIykQ7tUvgPtQUzHgTI0AdexCuE2/DT0Wx9MEDKzMMoPEyf PsODc4U9vBO2pp5cujUe8c3tcuwLAbdL4JZmPyOwBKwVg1iZg6mHDOS8dVDueeYw8HTD I9aRMX6UehKea4VK1uj35brzyjAbeaL8YZdCbq++/Qej2KFBTP8LajJqr7XoZbexxVOj wTyVL5kF9Fgku+2fBt5ggXTGkyZ88rbzLlIHDW/xLsBq4S1CIMlvHUEamjhd2GbP6JVA Na1cPAMK+I2pChWMv9kfvC0veIJPgXOQrhyPhJs4Qx9xQixvTCwDcFjtU67bucOq3g+q FViw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=GwUOFDoEI+IyYYH4XmhJ8f9bYsbreAJjhvE82GXnRgA=; b=FJE0LUd1cCT3N32w14I9+/juOL2Mp6CMRuDqoPG2+99lEN24OqNnKpaq9LOo1rWLco gPYpSKqvRmjQAwWfGGVJHjojkcNcUUS+XD/Zxxu8amx9yT70SHmn8m56okBvl8W8tpzP PmtTn3CMqOU8iFb7na5kaManngRbj9kZndgz9WYybt+E9HOhwJDYearDdDWGp2ZobCGN cYrqGLoJR50Sk60+lX/XW/yqYnf7FMHpa+hntOavf5MKgIPykAE4gONazOtUi3btAgAR yiATJVLZWqS3KYxV77UsuLi4lb268AIBzEnD9XYEyPNrLn4T6urTDhjOFK44TyMd8PSq KLkQ== X-Gm-Message-State: AOAM533PHW65T0MRzZTUcouM7lmmLg6szze27EaijbUEpHMOVf2RzuY1 /EVMHKTv2QMsJrdqhg2CS5XQbLmPrHcuCawnM8o= X-Google-Smtp-Source: ABdhPJxoZT2qhopDcWWIAP0tTkfrQwg+wb9UITFcx+tySl96b6Vs+UcF00ltHeV9F7yYwfxCjn80pg== X-Received: by 2002:ac8:590a:: with SMTP id 10mr5189403qty.186.1639881079027; Sat, 18 Dec 2021 18:31:19 -0800 (PST) Received: from alexdesktop.localdomain (cpebc4dfb42ca53-cmbc4dfb42ca50.cpe.net.cable.rogers.com. [99.251.122.96]) by smtp.gmail.com with ESMTPSA id m4sm10174293qtu.87.2021.12.18.18.31.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Dec 2021 18:31:18 -0800 (PST) From: Alexander Orzechowski To: qemu-devel@nongnu.org Subject: [PATCH 2/4] ui: Remove unnecessary checks Date: Sat, 18 Dec 2021 21:30:04 -0500 Message-Id: <20211219023006.124530-3-orzechowski.alexander@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20211219023006.124530-1-orzechowski.alexander@gmail.com> References: <20211219023006.124530-1-orzechowski.alexander@gmail.com> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::82a (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::82a; envelope-from=orzechowski.alexander@gmail.com; helo=mail-qt1-x82a.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: , Cc: qemu-trivial@nongnu.org, Gerd Hoffmann , Alexander Orzechowski Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" These conditionals should never be false as scale_x and scale_y should scale the fbw and fbh variables such that the ww and wh variables always have a greater magnitude. Signed-off-by: Alexander Orzechowski --- ui/gtk.c | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/ui/gtk.c b/ui/gtk.c index 824334ff3d..f2d74b253d 100644 --- a/ui/gtk.c +++ b/ui/gtk.c @@ -416,13 +416,8 @@ static void gd_update(DisplayChangeListener *dcl, ww = gtk_widget_get_allocated_width(vc->gfx.drawing_area); wh = gtk_widget_get_allocated_height(vc->gfx.drawing_area); - mx = my = 0; - if (ww > fbw) { - mx = (ww - fbw) / 2; - } - if (wh > fbh) { - my = (wh - fbh) / 2; - } + mx = (ww - fbw) / 2; + my = (wh - fbh) / 2; gtk_widget_queue_draw_area(vc->gfx.drawing_area, mx + x1, my + y1, (x2 - x1), (y2 - y1)); @@ -801,13 +796,8 @@ static gboolean gd_draw_event(GtkWidget *widget, cairo_t *cr, void *opaque) fbw *= vc->gfx.scale_x; fbh *= vc->gfx.scale_y; - mx = my = 0; - if (ww > fbw) { - mx = (ww - fbw) / 2; - } - if (wh > fbh) { - my = (wh - fbh) / 2; - } + mx = (ww - fbw) / 2; + my = (wh - fbh) / 2; cairo_rectangle(cr, 0, 0, ww, wh); @@ -850,13 +840,8 @@ static gboolean gd_motion_event(GtkWidget *widget, GdkEventMotion *motion, ws = gdk_window_get_scale_factor( gtk_widget_get_window(vc->gfx.drawing_area)); - mx = my = 0; - if (ww > fbw) { - mx = (ww - fbw) / 2; - } - if (wh > fbh) { - my = (wh - fbh) / 2; - } + mx = (ww - fbw) / 2; + my = (wh - fbh) / 2; x = (motion->x - mx) / vc->gfx.scale_x * ws; y = (motion->y - my) / vc->gfx.scale_y * ws; From patchwork Sun Dec 19 02:30:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Orzechowski X-Patchwork-Id: 1570703 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=PeKETNDi; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JGmxJ4Zn2z9s3q for ; Sun, 19 Dec 2021 13:33:40 +1100 (AEDT) Received: from localhost ([::1]:39424 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mym14-0005yQ-FG for incoming@patchwork.ozlabs.org; Sat, 18 Dec 2021 21:33:38 -0500 Received: from eggs.gnu.org ([209.51.188.92]:41658) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mylyu-0001UB-AR; Sat, 18 Dec 2021 21:31:24 -0500 Received: from [2607:f8b0:4864:20::836] (port=38858 helo=mail-qt1-x836.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mylyr-0003eZ-Ru; Sat, 18 Dec 2021 21:31:24 -0500 Received: by mail-qt1-x836.google.com with SMTP id 8so6582565qtx.5; Sat, 18 Dec 2021 18:31:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=HrlnaurYTmBCdB76jDfgaHeWFsC0GaLlLb1/u6RXXhU=; b=PeKETNDiExDozMjwPXdZKhle9v3N4NNcmhkw++OzybEkpp9Ud+M7QiGOlVCI78+7/t Y7KQjlX7kIG6+Un1X8eudDRs+toUppbxaGUUuucpfj6/0xICo0GNyJ9r/v2fegmsOe/I xVxpW6rnE4iurN2r0m7XOloxwMMQWCE+zJUxo+Ap/DZt3fLSOFWCQFNcVAsFErYNim0L vXMatGx2nsusd7itebQVQabKvwq3GT8KUFrO2BUOARokBipXOK/vtFPoTQMtxYeqNuol Av5wMAy0HuXFRNImsCWb1I5/SG/yjIZJAlKl0i0G17l+JMtW9V0WCN0h3MylIWf3SAP9 9gEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=HrlnaurYTmBCdB76jDfgaHeWFsC0GaLlLb1/u6RXXhU=; b=1ogXTQZuB2Ic+mhW28oldsVWOVkk1Yt+mbmqt1fT7ZaKwRC+j2Ym3vCGwM1JqAyt0W fZRbuOaSeoqoCbcxn7NPNdMpwkTjbah6/aSl7vIRlaE+DPo/3pXgwhu+K/wqeQIGHuSt 57Ugmt3eGx7kwnDLIKNhAFl+igLWCnn/IbPy3fnTAnCsoZrVuF9Q8K9jT5SmKvPQZm+2 bb5qDSUEMjrC4pKZ03xFKVKrbIirWMAHSxzrbDQpy8L9pKM5A7Wnwfj6inyiMix7o/mJ fiG0XR/f8QSF/DPCzUX/rl0+jACQJv0FNjDWebxoeS49E7Dv1C0ibCS0GpoTnpH3Dag4 jpcA== X-Gm-Message-State: AOAM533V+o4C5gIChWCG/h8YOwp119pXPKX6LnR81bCHqWwCBeBH9AEx WYOMc0kuAaMwyJZAqXYNkjFCfLotsfpLdyKMZls= X-Google-Smtp-Source: ABdhPJw9w9R2iNW1UqWWA/JZ93n1CExqoDi1n4/02WFeVHpP6jwjFWdIsfxcFwTzZBVH7mj4TxDZig== X-Received: by 2002:a05:622a:2c9:: with SMTP id a9mr8070572qtx.28.1639881079693; Sat, 18 Dec 2021 18:31:19 -0800 (PST) Received: from alexdesktop.localdomain (cpebc4dfb42ca53-cmbc4dfb42ca50.cpe.net.cable.rogers.com. [99.251.122.96]) by smtp.gmail.com with ESMTPSA id m4sm10174293qtu.87.2021.12.18.18.31.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Dec 2021 18:31:19 -0800 (PST) From: Alexander Orzechowski To: qemu-devel@nongnu.org Subject: [PATCH 3/4] ui: Revert: "fix incorrect pointer position on highdpi with gtk" Date: Sat, 18 Dec 2021 21:30:05 -0500 Message-Id: <20211219023006.124530-4-orzechowski.alexander@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20211219023006.124530-1-orzechowski.alexander@gmail.com> References: <20211219023006.124530-1-orzechowski.alexander@gmail.com> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::836 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::836; envelope-from=orzechowski.alexander@gmail.com; helo=mail-qt1-x836.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: , Cc: qemu-trivial@nongnu.org, Gerd Hoffmann , Alexander Orzechowski Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This reverts commit f14aab420c58b57e07189d6d9e6d3fbfab4761a6. This commit was originally tested on gtk/gl which corrected behavior there. Turns out, the OpenGL texture representing the virtual console was being rendered in the incorrect place and not that the cursor was incorrectly being handled. Signed-off-by: Alexander Orzechowski --- ui/gtk.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/ui/gtk.c b/ui/gtk.c index f2d74b253d..c41601f24d 100644 --- a/ui/gtk.c +++ b/ui/gtk.c @@ -826,7 +826,7 @@ static gboolean gd_motion_event(GtkWidget *widget, GdkEventMotion *motion, int x, y; int mx, my; int fbh, fbw; - int ww, wh, ws; + int ww, wh; if (!vc->gfx.ds) { return TRUE; @@ -837,14 +837,12 @@ static gboolean gd_motion_event(GtkWidget *widget, GdkEventMotion *motion, ww = gtk_widget_get_allocated_width(vc->gfx.drawing_area); wh = gtk_widget_get_allocated_height(vc->gfx.drawing_area); - ws = gdk_window_get_scale_factor( - gtk_widget_get_window(vc->gfx.drawing_area)); mx = (ww - fbw) / 2; my = (wh - fbh) / 2; - x = (motion->x - mx) / vc->gfx.scale_x * ws; - y = (motion->y - my) / vc->gfx.scale_y * ws; + x = (motion->x - mx) / vc->gfx.scale_x; + y = (motion->y - my) / vc->gfx.scale_y; if (qemu_input_is_absolute()) { if (x < 0 || y < 0 || From patchwork Sun Dec 19 02:30:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Orzechowski X-Patchwork-Id: 1570702 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=kZ1Dto5i; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JGmvz3xv2z9s3q for ; Sun, 19 Dec 2021 13:32:31 +1100 (AEDT) Received: from localhost ([::1]:33704 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mylzx-0002Ca-BV for incoming@patchwork.ozlabs.org; Sat, 18 Dec 2021 21:32:29 -0500 Received: from eggs.gnu.org ([209.51.188.92]:41660) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mylyu-0001UC-AL; Sat, 18 Dec 2021 21:31:24 -0500 Received: from [2607:f8b0:4864:20::f2d] (port=42917 helo=mail-qv1-xf2d.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mylyr-0003ef-QA; Sat, 18 Dec 2021 21:31:24 -0500 Received: by mail-qv1-xf2d.google.com with SMTP id p3so6102013qvj.9; Sat, 18 Dec 2021 18:31:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=GQ++DfcDzAjdfJdKyj0x+1JvHGLZ0hECGNGimajPzTo=; b=kZ1Dto5icIoVlhL6CJH1r/VsGG+MpwXamQGmt0ve+qkB6gVe70vF+b+D5xqOfrKwWw lRwwmbDQsCQorm69ScN+y9Mi9hvHeMzSmcjo0P0StPZidZdmdFi4T3pVww8GhD/9EQ9N q4Ij1ARfYC7fHApfaymovizqJTWPZGGVQEoT9wtgrOEHy3TgHoahlJg7mW/Fhp631iy5 8KAJZJK7n89/6Ss7xXXJ6laYgBzrZ3QfomqyyPZkcleW/LeEqi/mLvK9z7/CR40DikVC ZzzEnUMk1vIKhnynd32UvyOpP0z9vtOl1MPVENAaiM7Jg2CV0rPl0fzDN/gVlebl6RAq eVQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=GQ++DfcDzAjdfJdKyj0x+1JvHGLZ0hECGNGimajPzTo=; b=DTZfnCQt6wOH1JtuTadTby1GVxBT0ga8D0ObMEgVw91AM9mfXXrx+AqYlwULe7gnZU o6XZmtqAH0trutBao8uTPwR6llm+kI/VSAaBiDxuRTUI7S0X6x4w7UUvLRSXnGT0fw2V owc84ZczVspZlHPWviP5Lln2W5lUD94O9UYKWvzpnAqKJMhg2O+T2k331/MZ0CYl3t23 ZzbrfYGWiVWgUmKzKZEdQa7s44MR4iITTn4aQGOesWNIBoYuFPUozX40cGd0ajFr7W7I 154mz4Wsca2k+dmK2xTVKP8VlM7mUiEO224ouMjmKtnCXrsKwuv/3bNeauwJW2zj5p/R NAbw== X-Gm-Message-State: AOAM532Umx2ZEdelWb9hRvWRbKsVdaR57ZFCIbYNLtzC7hSHiru5aYl/ r/1HCWDHV2gTcIWcfAoBhegOOjTorhUzp2e/VUA= X-Google-Smtp-Source: ABdhPJxF59kzgeSetf0Hf3Ubbx8ohozfQw41Z5Cme3C9Iuqb0oQSWxjeC+GHQOyRW+Ja3Aw803Wo6g== X-Received: by 2002:a05:6214:5193:: with SMTP id kl19mr8069646qvb.77.1639881080315; Sat, 18 Dec 2021 18:31:20 -0800 (PST) Received: from alexdesktop.localdomain (cpebc4dfb42ca53-cmbc4dfb42ca50.cpe.net.cable.rogers.com. [99.251.122.96]) by smtp.gmail.com with ESMTPSA id m4sm10174293qtu.87.2021.12.18.18.31.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Dec 2021 18:31:20 -0800 (PST) From: Alexander Orzechowski To: qemu-devel@nongnu.org Subject: [PATCH 4/4] ui: Fix gtk/gl when the scaled virtual console does not fit the window Date: Sat, 18 Dec 2021 21:30:06 -0500 Message-Id: <20211219023006.124530-5-orzechowski.alexander@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20211219023006.124530-1-orzechowski.alexander@gmail.com> References: <20211219023006.124530-1-orzechowski.alexander@gmail.com> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::f2d (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::f2d; envelope-from=orzechowski.alexander@gmail.com; helo=mail-qv1-xf2d.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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: , Cc: qemu-trivial@nongnu.org, Gerd Hoffmann , Alexander Orzechowski Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" gtk/gl was incorrectly always rendering as if the 'Zoom to Fit' was always checked even if it wasn't. This is now using logic closer to what is being used for the existing cairo code paths. Signed-off-by: Alexander Orzechowski --- ui/gtk-gl-area.c | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/ui/gtk-gl-area.c b/ui/gtk-gl-area.c index 01e4e74ee3..ea72f1817b 100644 --- a/ui/gtk-gl-area.c +++ b/ui/gtk-gl-area.c @@ -41,16 +41,40 @@ void gd_gl_area_draw(VirtualConsole *vc) #ifdef CONFIG_GBM QemuDmaBuf *dmabuf = vc->gfx.guest_fb.dmabuf; #endif + GtkDisplayState *s = vc->s; int ww, wh, ws, y1, y2; + int mx, my; + int fbh, fbw; if (!vc->gfx.gls) { return; } gtk_gl_area_make_current(GTK_GL_AREA(vc->gfx.drawing_area)); + + fbw = surface_width(vc->gfx.ds); + fbh = surface_height(vc->gfx.ds); + ws = gdk_window_get_scale_factor(gtk_widget_get_window(vc->gfx.drawing_area)); - ww = gtk_widget_get_allocated_width(vc->gfx.drawing_area) * ws; - wh = gtk_widget_get_allocated_height(vc->gfx.drawing_area) * ws; + ww = gtk_widget_get_allocated_width(vc->gfx.drawing_area); + wh = gtk_widget_get_allocated_height(vc->gfx.drawing_area); + + if (s->full_screen) { + vc->gfx.scale_x = (double)ww / fbw; + vc->gfx.scale_y = (double)wh / fbh; + } else if (s->free_scale) { + double sx, sy; + + sx = (double)ww / fbw; + sy = (double)wh / fbh; + + vc->gfx.scale_x = vc->gfx.scale_y = MIN(sx, sy); + } + + fbw *= vc->gfx.scale_x * ws; + fbh *= vc->gfx.scale_y * ws; + mx = (ww * ws - fbw) / 2; + my = (wh * ws - fbh) / 2; if (vc->gfx.scanout_mode) { if (!vc->gfx.guest_fb.framebuffer) { @@ -70,11 +94,11 @@ void gd_gl_area_draw(VirtualConsole *vc) glBindFramebuffer(GL_READ_FRAMEBUFFER, vc->gfx.guest_fb.framebuffer); /* GtkGLArea sets GL_DRAW_FRAMEBUFFER for us */ - glViewport(0, 0, ww, wh); + glViewport(mx, my, fbw, fbh); y1 = vc->gfx.y0_top ? 0 : vc->gfx.h; y2 = vc->gfx.y0_top ? vc->gfx.h : 0; glBlitFramebuffer(0, y1, vc->gfx.w, y2, - 0, 0, ww, wh, + mx, my, fbw, fbh, GL_COLOR_BUFFER_BIT, GL_NEAREST); #ifdef CONFIG_GBM if (dmabuf) { @@ -98,7 +122,7 @@ void gd_gl_area_draw(VirtualConsole *vc) } gtk_gl_area_make_current(GTK_GL_AREA(vc->gfx.drawing_area)); - surface_gl_setup_viewport(vc->gfx.gls, vc->gfx.ds, ww, wh); + glViewport(mx, my, fbw, fbh); surface_gl_render_texture(vc->gfx.gls, vc->gfx.ds); }