From nobody Sun May 5 17:48:18 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1641656495; cv=none; d=zohomail.com; s=zohoarc; b=NXVADzJrbZ/MRrx2AiOyfzFjNAMarVsl0/TIsog/zWBEoujQWIFcrx50r2GcL1ssAjOLOP+K8WJ3BJMJGR53ukqwavRCFjA57xitj59HZ5ps6tIgrpv8JhIMQdUswqf3PtCGKm6LyzVnm1MGVUl16GDM8gkPQhgbQ+zxiUjW7Ok= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1641656495; h=Content-Transfer-Encoding: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=Xpyd2QrX9R5y5Ib/uEM0qbhGdn+eYDLESu72a+hgXE0=; b=VqhyAPEURsF2mL5p+Nc3A4vlNSVExDsVez6cxA4Y4ye63Bx4I9uZqfEY1zdiV8ont0tlOsUhOXTP+Y+/ej217e2S4K+HfJcEcKExAxg2inFDQjp6fgi/QPBIgRSbgyvmexZLgj8wVEUAyCGaob3UqQd5QVk+xn9H3VgkrvOI1Kg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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 1641656495661886.5271818363988; Sat, 8 Jan 2022 07:41:35 -0800 (PST) Received: from localhost ([::1]:49300 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n6DqX-0000L7-T5 for importer@patchew.org; Sat, 08 Jan 2022 10:41:33 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52408) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n6Dou-0006gj-2d for qemu-devel@nongnu.org; Sat, 08 Jan 2022 10:39:52 -0500 Received: from [2a00:1450:4864:20::535] (port=34748 helo=mail-ed1-x535.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n6Dos-0006oK-FR for qemu-devel@nongnu.org; Sat, 08 Jan 2022 10:39:51 -0500 Received: by mail-ed1-x535.google.com with SMTP id u25so34495894edf.1 for ; Sat, 08 Jan 2022 07:39:49 -0800 (PST) Received: from localhost.localdomain ([2a02:a467:f77d:1:78f2:78aa:23a7:b824]) by smtp.gmail.com with ESMTPSA id 24sm599840ejg.47.2022.01.08.07.39.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Jan 2022 07:39:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=Xpyd2QrX9R5y5Ib/uEM0qbhGdn+eYDLESu72a+hgXE0=; b=loiXXuo0otR6f5gMLR4Frh0F2Ix0rS8DDiIzG3SFMMpaYa3Y+teCn/0eLX6gaU30yf MNYfozlX4Iqydjw0hcIfqbdExAxMA0emO7prfR6bmgXqeUV1TkVnk8qy5P8Mk3Iklo8C NtZndfiPogtvJNzjZPPSWkD6Kju/prJVbgG1RIHK9OQuq8EJWaKBw1slVCFWmBq1/8CR rbwTo/j5zc0tq7zsYH4v7fVUmrtiHmIEMjKzh+Fjeh0mDoyz99Ar9ApBq6EqMcIzOUQb jjCXbQAJ7btGF8gPtcPSmC/Luf2xmmlqYwRMxiSxNxChfP0lYWso/2TKlCev0zpptE+2 kIOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Xpyd2QrX9R5y5Ib/uEM0qbhGdn+eYDLESu72a+hgXE0=; b=y5tiM2CfBT5oxkM01CaeWlpKXXjRmNlBMudAVsIXNOO0c9KdhRuW7DDIjwFkf3kSBS 8q3WiABZFvKofd+n03ielkU5A3wOqUuCTyciefv8Y+PYzqFCA6rC5q1qjlLF4hSirA2v +ttGbjeHtqwCzk/2zn7TuXCJ56fReWYMF9qspzl79z27iKy8cN1JQc0YXJIDycyCRvcQ R+jtq2m3/DsPtb8WS016gdsaK85mjvgORBP9wNMtDDMRQMymvs8B5uaYkd0liBFjri+E JwS5nmS/5SEziQozFKlWfWv+LgvQhI9iDly9SIXMfh4ifMrawlpeJBMkIMgWbL61/4uq 8pyg== X-Gm-Message-State: AOAM533Sg47gBf9bcXeZEYRlMA2c/OS7Zqt7h6eJF9LGnQxpw2kIwg+r AnZXcrdr0+y/yWiymY39GPek0Eyd1x4= X-Google-Smtp-Source: ABdhPJxFTzyoI3QSjOR+8MoLRn5/eS6Bmu0aBH9UNwlVlk6nflFdaeRExEa7t+/CdZ3KPIXoW5RqnA== X-Received: by 2002:a17:906:4fd6:: with SMTP id i22mr52538225ejw.484.1641656388479; Sat, 08 Jan 2022 07:39:48 -0800 (PST) From: Dmitry Petrov To: qemu-devel@nongnu.org, dpetroff@gmail.com Subject: [PATCH v4 1/5] ps2: Initial horizontal scroll support Date: Sat, 8 Jan 2022 16:39:43 +0100 Message-Id: <20220108153947.171861-2-dpetroff@gmail.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220108153947.171861-1-dpetroff@gmail.com> References: <20220108153947.171861-1-dpetroff@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::535 (failed) 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=2a00:1450:4864:20::535; envelope-from=dpetroff@gmail.com; helo=mail-ed1-x535.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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1641656497273100002 Content-Type: text/plain; charset="utf-8" This change adds support for horizontal scroll to ps/2 mouse device code. The code is implemented to match the logic of linux kernel which is used as a reference. Signed-off-by: Dmitry Petrov --- hw/input/ps2.c | 57 +++++++++++++++++++++++++++++++++++++++++++------- qapi/ui.json | 2 +- 2 files changed, 50 insertions(+), 9 deletions(-) diff --git a/hw/input/ps2.c b/hw/input/ps2.c index 9376a8f4ce..6236711e1b 100644 --- a/hw/input/ps2.c +++ b/hw/input/ps2.c @@ -123,6 +123,7 @@ typedef struct { int mouse_dx; /* current values, needed for 'poll' mode */ int mouse_dy; int mouse_dz; + int mouse_dw; uint8_t mouse_buttons; } PS2MouseState; =20 @@ -715,7 +716,7 @@ static int ps2_mouse_send_packet(PS2MouseState *s) /* IMPS/2 and IMEX send 4 bytes, PS2 sends 3 bytes */ const int needed =3D s->mouse_type ? 4 : 3; unsigned int b; - int dx1, dy1, dz1; + int dx1, dy1, dz1, dw1; =20 if (PS2_QUEUE_SIZE - s->common.queue.count < needed) { return 0; @@ -724,6 +725,7 @@ static int ps2_mouse_send_packet(PS2MouseState *s) dx1 =3D s->mouse_dx; dy1 =3D s->mouse_dy; dz1 =3D s->mouse_dz; + dw1 =3D s->mouse_dw; /* XXX: increase range to 8 bits ? */ if (dx1 > 127) dx1 =3D 127; @@ -740,6 +742,9 @@ static int ps2_mouse_send_packet(PS2MouseState *s) /* extra byte for IMPS/2 or IMEX */ switch(s->mouse_type) { default: + /* Just ignore the wheels if not supported */ + s->mouse_dz =3D 0; + s->mouse_dw =3D 0; break; case 3: if (dz1 > 127) @@ -747,13 +752,41 @@ static int ps2_mouse_send_packet(PS2MouseState *s) else if (dz1 < -127) dz1 =3D -127; ps2_queue_noirq(&s->common, dz1 & 0xff); + s->mouse_dz -=3D dz1; + s->mouse_dw =3D 0; break; case 4: - if (dz1 > 7) - dz1 =3D 7; - else if (dz1 < -7) - dz1 =3D -7; - b =3D (dz1 & 0x0f) | ((s->mouse_buttons & 0x18) << 1); + /* + * This matches what the Linux kernel expects for exps/2 in + * drivers/input/mouse/psmouse-base.c. Note, if you happen to + * press/release the 4th or 5th buttons at the same moment as a + * horizontal wheel scroll, those button presses will get lost. I'= m not + * sure what to do about that, since by this point we don't know + * whether those buttons actually changed state. + */ + if (dw1 !=3D 0) { + if (dw1 > 31) { + dw1 =3D 31; + } else if (dw1 < -31) { + dw1 =3D -31; + } + + /* + * linux kernel expects first 6 bits to represent the value + * for horizontal scroll + */ + b =3D (dw1 & 0x3f) | 0x40; + s->mouse_dw -=3D dw1; + } else { + if (dz1 > 7) { + dz1 =3D 7; + } else if (dz1 < -7) { + dz1 =3D -7; + } + + b =3D (dz1 & 0x0f) | ((s->mouse_buttons & 0x18) << 1); + s->mouse_dz -=3D dz1; + } ps2_queue_noirq(&s->common, b); break; } @@ -764,7 +797,6 @@ static int ps2_mouse_send_packet(PS2MouseState *s) /* update deltas */ s->mouse_dx -=3D dx1; s->mouse_dy -=3D dy1; - s->mouse_dz -=3D dz1; =20 return 1; } @@ -806,6 +838,12 @@ static void ps2_mouse_event(DeviceState *dev, QemuCons= ole *src, } else if (btn->button =3D=3D INPUT_BUTTON_WHEEL_DOWN) { s->mouse_dz++; } + + if (btn->button =3D=3D INPUT_BUTTON_WHEEL_RIGHT) { + s->mouse_dw--; + } else if (btn->button =3D=3D INPUT_BUTTON_WHEEL_LEFT) { + s->mouse_dw++; + } } else { s->mouse_buttons &=3D ~bmap[btn->button]; } @@ -833,8 +871,10 @@ static void ps2_mouse_sync(DeviceState *dev) /* if not remote, send event. Multiple events are sent if too big deltas */ while (ps2_mouse_send_packet(s)) { - if (s->mouse_dx =3D=3D 0 && s->mouse_dy =3D=3D 0 && s->mouse_d= z =3D=3D 0) + if (s->mouse_dx =3D=3D 0 && s->mouse_dy =3D=3D 0 + && s->mouse_dz =3D=3D 0 && s->mouse_dw =3D=3D 0) { break; + } } } } @@ -1036,6 +1076,7 @@ static void ps2_mouse_reset(void *opaque) s->mouse_dx =3D 0; s->mouse_dy =3D 0; s->mouse_dz =3D 0; + s->mouse_dw =3D 0; s->mouse_buttons =3D 0; } =20 diff --git a/qapi/ui.json b/qapi/ui.json index 2b4371da37..9354f4c467 100644 --- a/qapi/ui.json +++ b/qapi/ui.json @@ -905,7 +905,7 @@ ## { 'enum' : 'InputButton', 'data' : [ 'left', 'middle', 'right', 'wheel-up', 'wheel-down', 'side', - 'extra' ] } + 'extra', 'wheel-left', 'wheel-right' ] } =20 ## # @InputAxis: --=20 2.32.0 From nobody Sun May 5 17:48:18 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1641656624; cv=none; d=zohomail.com; s=zohoarc; b=NjLtVVUJEwcoFWlWi/T1TIO1IopDcRyJA+5eOUsCPMP61+WtH2OZU4T67SK9Kb8RUK/lktK8Vy28gDwnjRLp4Mr+qZgedxayya2zdyYLqQQKuDK5J3dbaAfYciphKpuxuO119Hhq4+PXglRHXHKdufy8B+TrgrAhag+HB5uvSCU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1641656624; h=Content-Transfer-Encoding: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=4EPIBLrqcRPkiBCNNhoa74v92YzeCHZQl+O4E+MXoyk=; b=IqefoBI+pgGFgbD2ABJsVecRL4Q+/P8+2POJ3n/XY6caZcmKflsjc1EKuAsWLKnpQhLi6bj+JVehP0MjV9dR0n5bIjhM32YQNzdHxWw1u+TXpufwg6P65/rSD228lQ9LP26aK0DO0B9M5XxyPQE0IW6d+A7ZZjuYIPe6Ldal3ds= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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 1641656624222730.2016669752262; Sat, 8 Jan 2022 07:43:44 -0800 (PST) Received: from localhost ([::1]:54968 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n6Dsd-0005CW-7N for importer@patchew.org; Sat, 08 Jan 2022 10:43:43 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52458) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n6Dov-0006gz-8z for qemu-devel@nongnu.org; Sat, 08 Jan 2022 10:39:53 -0500 Received: from [2a00:1450:4864:20::52c] (port=40790 helo=mail-ed1-x52c.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n6Dos-0006oN-Gv for qemu-devel@nongnu.org; Sat, 08 Jan 2022 10:39:53 -0500 Received: by mail-ed1-x52c.google.com with SMTP id a18so33405826edj.7 for ; Sat, 08 Jan 2022 07:39:50 -0800 (PST) Received: from localhost.localdomain ([2a02:a467:f77d:1:78f2:78aa:23a7:b824]) by smtp.gmail.com with ESMTPSA id 24sm599840ejg.47.2022.01.08.07.39.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Jan 2022 07:39:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=4EPIBLrqcRPkiBCNNhoa74v92YzeCHZQl+O4E+MXoyk=; b=VXM1xowV2piSnsvd/n27zA5fBwd0y273k6IfLmli1wYmWzSYp5C1RB5uQZPSFkfpxa TxX3lSxbLiG2R7nkvOnGGzINqsnQwSkBiwAa36qJTxTd2uereLDDlAl/GRZUfMMrxZAc fUnQeMc9iEUc6MSCOsGwGmAymPrxiiuqFquFJc3ImDJ6lJSdsfVE/PVJ+AQTJjWAsykg 2iKpUFaXglGtD19mtRNpXYXWLoC93zcH7+SW8KY/MfTWtCYd9FCtsOboOFnz2/Pvo+Zu mG7+YkAIz+ObvuOJ1IgW10EIrC2/Og3tuXk/odlLt8JxM/phiNlaU0lnFbzDk8HBcaOP 9fkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4EPIBLrqcRPkiBCNNhoa74v92YzeCHZQl+O4E+MXoyk=; b=J4tixb79hHkXEbub/1YWBtUGf28Giwad3XrcmmsdDDVuM70xpA2mnDEK3fjBRYXSgB GgZL5wn/bFsaTxxt+ZrZ4vS6NOfbATqSQ+Dmg9VHRyeCotdIlNIRw8/78x36oTQi3Z35 EK23p14W4fQDwkrjl6pballhdP87UePIjymSux531qt/dOoRsi8Fa6WoUIDsfN0vF1zf vXUwBOV1UTCg8EVm49rHiFIUPG7NZ6tuGb+Xa7fjiJ9ejRajvYPFAenWg5oJ+grOWKc7 MBa/M5XEG0X1Rt/4JtfobvwIzL+MfuozFxTnRa1YwjDZADh6Ypu0zMeHgvZ+rK1WCGVh 1lEg== X-Gm-Message-State: AOAM530sJt58BfbaFIm+Y9e9SujCVgdGAqPOvsPHzBMe/co4ZGoKi/Zl scQZZTIVNeEHpggwW3Mm6uLAtnY7yvU= X-Google-Smtp-Source: ABdhPJwegRGwg12jkyzhd4j23qJ/dB6iVf2E9cFj1E3Y3h1TX9tA4UxH/fo3XSqzr1hb8YYV2c3huw== X-Received: by 2002:a05:6402:1351:: with SMTP id y17mr2641794edw.401.1641656389136; Sat, 08 Jan 2022 07:39:49 -0800 (PST) From: Dmitry Petrov To: qemu-devel@nongnu.org, dpetroff@gmail.com Subject: [PATCH v4 2/5] ui/cocoa: pass horizontal scroll information to the device code Date: Sat, 8 Jan 2022 16:39:44 +0100 Message-Id: <20220108153947.171861-3-dpetroff@gmail.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220108153947.171861-1-dpetroff@gmail.com> References: <20220108153947.171861-1-dpetroff@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::52c (failed) 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=2a00:1450:4864:20::52c; envelope-from=dpetroff@gmail.com; helo=mail-ed1-x52c.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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1641656625742100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Dmitry Petrov --- ui/cocoa.m | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/ui/cocoa.m b/ui/cocoa.m index 69745c483b..ac18e14ce0 100644 --- a/ui/cocoa.m +++ b/ui/cocoa.m @@ -970,21 +970,27 @@ QemuCocoaView *cocoaView; */ =20 /* - * When deltaY is zero, it means that this scrolling event was - * either horizontal, or so fine that it only appears in - * scrollingDeltaY. So we drop the event. + * We shouldn't have got a scroll event when deltaY and delta Y + * are zero, hence no harm in dropping the event */ - if ([event deltaY] !=3D 0) { + if ([event deltaY] !=3D 0 || [event deltaX] !=3D 0) { /* Determine if this is a scroll up or scroll down event */ - buttons =3D ([event deltaY] > 0) ? + if ([event deltaY] !=3D 0) { + buttons =3D ([event deltaY] > 0) ? INPUT_BUTTON_WHEEL_UP : INPUT_BUTTON_WHEEL_DOWN; + } else if ([event deltaX] !=3D 0) { + buttons =3D ([event deltaX] > 0) ? + INPUT_BUTTON_WHEEL_LEFT : INPUT_BUTTON_WHEEL_RIGHT; + } + qemu_input_queue_btn(dcl.con, buttons, true); qemu_input_event_sync(); qemu_input_queue_btn(dcl.con, buttons, false); qemu_input_event_sync(); } + /* - * Since deltaY also reports scroll wheel events we prevent mo= use + * Since deltaX/deltaY also report scroll wheel events we prev= ent mouse * movement code from executing. */ mouse_event =3D false; --=20 2.32.0 From nobody Sun May 5 17:48:18 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1641656498; cv=none; d=zohomail.com; s=zohoarc; b=LHml48m4vrN+trvNBXEC/E8qdD9lG+CqUA6/4Gq4D1YMFY6lrgVDp/Cq++Ijpduo+2uvLKE7cWEUpU0V9BeL8lbX5d+g6UOO/0vWndDDGA2vwoRbS3pjaHForEqeoJ34OuNbb6Wna4kX7qsqebdca1ZsIiUkDU3yezshKCRpNwE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1641656498; h=Content-Transfer-Encoding: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=5kdp0snb3SFSbv62l+V5oc1HsNnrPydAEd/264gvRo4=; b=KKWENYEy1fAfbRSMs9ERJO7oegP5WdQaabuz0GGfaRRpkU6mG9JWiqUoPH+a7HP1xvqICn5IY1tThd1llosHrysM+leGHdDQvv7f3Ex5f4tj+35WQZSXN+3oZ85Zru+D/QJzZnz6KL1X+ydZfMKPAWb6dWVE41kEBrRMg7fHhcg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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 1641656498405983.813397961641; Sat, 8 Jan 2022 07:41:38 -0800 (PST) Received: from localhost ([::1]:49354 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n6Dqb-0000Na-DP for importer@patchew.org; Sat, 08 Jan 2022 10:41:37 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52462) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n6Dov-0006h1-D0 for qemu-devel@nongnu.org; Sat, 08 Jan 2022 10:39:53 -0500 Received: from [2a00:1450:4864:20::536] (port=33678 helo=mail-ed1-x536.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n6Dot-0006oY-8O for qemu-devel@nongnu.org; Sat, 08 Jan 2022 10:39:53 -0500 Received: by mail-ed1-x536.google.com with SMTP id m21so34620516edc.0 for ; Sat, 08 Jan 2022 07:39:50 -0800 (PST) Received: from localhost.localdomain ([2a02:a467:f77d:1:78f2:78aa:23a7:b824]) by smtp.gmail.com with ESMTPSA id 24sm599840ejg.47.2022.01.08.07.39.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Jan 2022 07:39:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=5kdp0snb3SFSbv62l+V5oc1HsNnrPydAEd/264gvRo4=; b=cF7KydOBopk4Nxjrf+nIvjtmvATI2ch0VW6xLOjBF7UTWzU/SfldqXlcYrpRNEsI0j mejDiFhY/cFzEhD9i7ZpA9jm5hkr5hjEhcHNiytkNrdhHpPBghEkSDwAoWWrzuFJ5LFa xlf+DCIRq7UpiC0x1268H4jVTVL5A4YnhFtHGHt94bsouAzTQV1SbQLB+BzFuxiSfSAb ZX0swjAnxzl5S0KZJWAv7IWHdGxd3eX6sExPnJk75/eSaYE17HdYeLvB9ue1Y5xhhFt7 KiDPGUbA1Xe2mPuxKhTXj/oJGvgF1fRlhwLdKGxu74u7A5oP0I7Dp0EUoWEUynqJB4tg 9W/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5kdp0snb3SFSbv62l+V5oc1HsNnrPydAEd/264gvRo4=; b=6LatggJhOyoOYn0PMCWnCrp4u2dhEhQgllEw1cMtaUvmE9bfznMYpAupKNph0+T4E5 B2AaEy4s4FSzm7CQcjzwzTCZ/eZ30nyl1qqMsphdY8vkbOYi+S9sm6ngWcoZAjnXk4Hg d6xcyuzSli5Y3001mVDPuffesAkO9O9FxgSVuTj4I9PKkHhyA4Mn4FQgTKfCWS4s2xtd sKxGLyIjKb85aa+lSwfI7O5KL5RphshFxF7SOqd1QzfbiSFq7T2Y3YYCEQCiselb0+Tn A2k7mxbwWzfto49k00LcJvMmim5NcsFoaFU/GucRPNXx+/Xet8NKlIe6BJQeBIGmeF+5 rv1A== X-Gm-Message-State: AOAM532fsnhMSjencv9iN6iKzA/P/6AHkYiTln0Jj4sf4lFLZygwW/HA kkXExC5TKHDfl5w63GEgI3kB6nbvbkk= X-Google-Smtp-Source: ABdhPJzzGbGtzh8hBPim874rV9k+CuFfdZ53UkReTBu6KG07OryTx+j3ELkkiPEL2KHNOfHJ2AQxhg== X-Received: by 2002:a17:906:d184:: with SMTP id c4mr8971030ejz.20.1641656389875; Sat, 08 Jan 2022 07:39:49 -0800 (PST) From: Dmitry Petrov To: qemu-devel@nongnu.org, dpetroff@gmail.com Subject: [PATCH v4 3/5] ui/gtk: pass horizontal scroll information to the device code Date: Sat, 8 Jan 2022 16:39:45 +0100 Message-Id: <20220108153947.171861-4-dpetroff@gmail.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220108153947.171861-1-dpetroff@gmail.com> References: <20220108153947.171861-1-dpetroff@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::536 (failed) 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=2a00:1450:4864:20::536; envelope-from=dpetroff@gmail.com; helo=mail-ed1-x536.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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1641656501004100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Dmitry Petrov --- ui/gtk.c | 54 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 42 insertions(+), 12 deletions(-) diff --git a/ui/gtk.c b/ui/gtk.c index 6a1f65d518..a8567b9ddc 100644 --- a/ui/gtk.c +++ b/ui/gtk.c @@ -968,33 +968,63 @@ static gboolean gd_scroll_event(GtkWidget *widget, Gd= kEventScroll *scroll, void *opaque) { VirtualConsole *vc =3D opaque; - InputButton btn; + InputButton btn_vertical; + InputButton btn_horizontal; + bool has_vertical =3D false; + bool has_horizontal =3D false; =20 if (scroll->direction =3D=3D GDK_SCROLL_UP) { - btn =3D INPUT_BUTTON_WHEEL_UP; + btn_vertical =3D INPUT_BUTTON_WHEEL_UP; + has_vertical =3D true; } else if (scroll->direction =3D=3D GDK_SCROLL_DOWN) { - btn =3D INPUT_BUTTON_WHEEL_DOWN; + btn_vertical =3D INPUT_BUTTON_WHEEL_DOWN; + has_vertical =3D true; + } else if (scroll->direction =3D=3D GDK_SCROLL_LEFT) { + btn_horizontal =3D INPUT_BUTTON_WHEEL_LEFT; + has_horizontal =3D true; + } else if (scroll->direction =3D=3D GDK_SCROLL_RIGHT) { + btn_horizontal =3D INPUT_BUTTON_WHEEL_RIGHT; + has_horizontal =3D true; } else if (scroll->direction =3D=3D GDK_SCROLL_SMOOTH) { gdouble delta_x, delta_y; if (!gdk_event_get_scroll_deltas((GdkEvent *)scroll, &delta_x, &delta_y)) { return TRUE; } - if (delta_y =3D=3D 0) { - return TRUE; - } else if (delta_y > 0) { - btn =3D INPUT_BUTTON_WHEEL_DOWN; + + if (delta_y > 0) { + btn_vertical =3D INPUT_BUTTON_WHEEL_DOWN; + has_vertical =3D true; + } else if (delta_y < 0) { + btn_vertical =3D INPUT_BUTTON_WHEEL_UP; + has_vertical =3D true; + } else if (delta_x > 0) { + btn_horizontal =3D INPUT_BUTTON_WHEEL_RIGHT; + has_horizontal =3D true; + } else if (delta_x < 0) { + btn_horizontal =3D INPUT_BUTTON_WHEEL_LEFT; + has_horizontal =3D true; } else { - btn =3D INPUT_BUTTON_WHEEL_UP; + return TRUE; } } else { return TRUE; } =20 - qemu_input_queue_btn(vc->gfx.dcl.con, btn, true); - qemu_input_event_sync(); - qemu_input_queue_btn(vc->gfx.dcl.con, btn, false); - qemu_input_event_sync(); + if (has_vertical) { + qemu_input_queue_btn(vc->gfx.dcl.con, btn_vertical, true); + qemu_input_event_sync(); + qemu_input_queue_btn(vc->gfx.dcl.con, btn_vertical, false); + qemu_input_event_sync(); + } + + if (has_horizontal) { + qemu_input_queue_btn(vc->gfx.dcl.con, btn_horizontal, true); + qemu_input_event_sync(); + qemu_input_queue_btn(vc->gfx.dcl.con, btn_horizontal, false); + qemu_input_event_sync(); + } + return TRUE; } =20 --=20 2.32.0 From nobody Sun May 5 17:48:18 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1641656769; cv=none; d=zohomail.com; s=zohoarc; b=UIMfAxhllC6suI7FudMduR01d0WjPy7g1r6ZnHu4Jdyz2/8R7IrWfO2QYnS5SGCEQJ8vP5Qp6XH/DWIJd9h/81r4nyQbIHJ9vTUbM6Yw3ZhMTIdRENyxou314OAIDNVzq00cvw1F/5tqEzfDWcEBe0AOWx1FBUIKyxbUezBh0Fg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1641656769; h=Content-Transfer-Encoding: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=pyjnlbM1xVRCEuPnUEKS3/v5vZFiQrHwvnK44ISZw2w=; b=kUuE8+n/p6qT56LrOaYQ+0dlOZRki1foBe48oB9goWG/eGfEIJiS5TW2XlV9Iggz5SAeRkZMvjU21bykHPl1WO2wJHIFlXbImUDxzl3HiGz4aUgxz10w9Ip5/kDCaM5a/K149TjPGjqB98cHFrA0S/r/r1DrAz8I5Ugzo1rnMqY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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 1641656769186847.4573501984992; Sat, 8 Jan 2022 07:46:09 -0800 (PST) Received: from localhost ([::1]:59332 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n6Duy-0001D6-74 for importer@patchew.org; Sat, 08 Jan 2022 10:46:08 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52464) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n6Dov-0006h8-Gx for qemu-devel@nongnu.org; Sat, 08 Jan 2022 10:39:53 -0500 Received: from [2a00:1450:4864:20::52c] (port=38596 helo=mail-ed1-x52c.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n6Dou-0006oc-46 for qemu-devel@nongnu.org; Sat, 08 Jan 2022 10:39:53 -0500 Received: by mail-ed1-x52c.google.com with SMTP id u21so11851920edd.5 for ; Sat, 08 Jan 2022 07:39:51 -0800 (PST) Received: from localhost.localdomain ([2a02:a467:f77d:1:78f2:78aa:23a7:b824]) by smtp.gmail.com with ESMTPSA id 24sm599840ejg.47.2022.01.08.07.39.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Jan 2022 07:39:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=pyjnlbM1xVRCEuPnUEKS3/v5vZFiQrHwvnK44ISZw2w=; b=c61oQodSBo2v9e4fuy7sJm42RbMNjVFgz7NJ9kzScOxzK1FAggIQzQSmWFkJzBIyoZ JCYwifvy7wNZzjaYyA1kyrm4KPrMBCUGpHxgf3sqWDIqOkuKVmr1Znl7+ihScZM4FiVh QFGBPHJf6IpV5WPnLFT0w82tx0OSHeFdb6Jqa/vHwEKoPFVpHCGrN1YR0m7FTmv0Fy3g zYyBfoXFSgGszWrDWR3k6zD/t5VehVT4VRrwzuqv+BrYtKWdMKaltIbosDHAxKIzyxYe vVLxwGYX08mGBIcV6ztvAXiG9/v1ai6TOiJvavnBHVyir8lOrus+pHGArp4ML5lYWy5m 4ClA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=pyjnlbM1xVRCEuPnUEKS3/v5vZFiQrHwvnK44ISZw2w=; b=qKxUEIpNn4i1SPVFwDWM8H9Wy5fRxK8MLLgKnRwEbNtF17dV8DAYRO7bBih5vQhO/u KL8uCV9qSDtyAy/dscArl/eCx4cRKrOQmujPqr0B/DBUYoSsgOclV/XMbG0awb5xZuc9 I1+pYLl3yAv7BmXsVWQ2x+Q0/O3M7ZfiSkhySKPouR4/O3ye8eULrC91k1d3p+yTktuP e9DLKuV1q/iv1berstA0ArS85t4DneuDBZZ3QsJ2BGRXAEUXhz+x/voo/J8jTTmDfXgs V8gGc2vgvEMKIJBFlwxDzXninM83WYLjDa1+g+Xv3tBiiZEkCGG1R9yY/BRLEBFNIFQ/ 6kVg== X-Gm-Message-State: AOAM533rzK7oCRL1WO+FT3yjGWXmrVL5BJ2qUAVMak1AHbySlar1CjsT N3p+cGzSJSPEWBGvzqBwFuXX17DxpY4= X-Google-Smtp-Source: ABdhPJzaHf2JO8jOX5X+TMhUhPtpQPQ1pgIilTHwXJ17XfrlxhYkdjhaXtoVWbk2kC30x5CGy+pg0Q== X-Received: by 2002:a17:906:9742:: with SMTP id o2mr12179962ejy.530.1641656390540; Sat, 08 Jan 2022 07:39:50 -0800 (PST) From: Dmitry Petrov To: qemu-devel@nongnu.org, dpetroff@gmail.com Subject: [PATCH v4 4/5] ui/sdl2: pass horizontal scroll information to the device code Date: Sat, 8 Jan 2022 16:39:46 +0100 Message-Id: <20220108153947.171861-5-dpetroff@gmail.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220108153947.171861-1-dpetroff@gmail.com> References: <20220108153947.171861-1-dpetroff@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::52c (failed) 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=2a00:1450:4864:20::52c; envelope-from=dpetroff@gmail.com; helo=mail-ed1-x52c.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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1641656771270100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Dmitry Petrov --- ui/sdl2.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ui/sdl2.c b/ui/sdl2.c index 0bd30504cf..46a252d7d9 100644 --- a/ui/sdl2.c +++ b/ui/sdl2.c @@ -33,6 +33,7 @@ #include "sysemu/runstate-action.h" #include "sysemu/sysemu.h" #include "ui/win32-kbd-hook.h" +#include "qemu/log.h" =20 static int sdl2_num_outputs; static struct sdl2_console *sdl2_console; @@ -535,6 +536,10 @@ static void handle_mousewheel(SDL_Event *ev) btn =3D INPUT_BUTTON_WHEEL_UP; } else if (wev->y < 0) { btn =3D INPUT_BUTTON_WHEEL_DOWN; + } else if (wev->x < 0) { + btn =3D INPUT_BUTTON_WHEEL_RIGHT; + } else if (wev->x > 0) { + btn =3D INPUT_BUTTON_WHEEL_LEFT; } else { return; } --=20 2.32.0 From nobody Sun May 5 17:48:18 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1641656624; cv=none; d=zohomail.com; s=zohoarc; b=SjdIBGkynvYt+CCH37JjADmMTZ8RcRVcqM3krMNdUiubcywlstBy08q4goOUaSXTcyHuLPzbSv+9sIffDhTiaNoHVhZEYIW+dcR0GyQAf5JaZxtYGbuSNAZslSJXoRI/P4p7cMGzXN/iZLLGNYQdpljLbPq56U4PV/IhSE622Y4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1641656624; h=Content-Transfer-Encoding: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=7cxUbOU/d0PmlHVogfci1RL4+M00MXtpxpVMs5qcbZQ=; b=BwuYUjIxARQAKA7vfsKBtkeeAN3lkYKLUf2Yk4dx30WPMoPBG3asY1S2aYPLf7QHL9BAjcHBfs/+FdPBcr2pCyBgMpfV3peXcMIrzGzWLK2ZA9KctnolcYcxn0DFp8eFJQdMY6voJDge8n7l3grZ8UWdmGcYYSDxMVWuz4nmahY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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 1641656624597124.05383982614683; Sat, 8 Jan 2022 07:43:44 -0800 (PST) Received: from localhost ([::1]:54972 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n6Dsd-0005D3-LI for importer@patchew.org; Sat, 08 Jan 2022 10:43:43 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52466) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n6Dov-0006hd-UI for qemu-devel@nongnu.org; Sat, 08 Jan 2022 10:39:53 -0500 Received: from [2a00:1450:4864:20::530] (port=45007 helo=mail-ed1-x530.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n6Dou-0006ok-Fk for qemu-devel@nongnu.org; Sat, 08 Jan 2022 10:39:53 -0500 Received: by mail-ed1-x530.google.com with SMTP id w16so34339395edc.11 for ; Sat, 08 Jan 2022 07:39:52 -0800 (PST) Received: from localhost.localdomain ([2a02:a467:f77d:1:78f2:78aa:23a7:b824]) by smtp.gmail.com with ESMTPSA id 24sm599840ejg.47.2022.01.08.07.39.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Jan 2022 07:39:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=7cxUbOU/d0PmlHVogfci1RL4+M00MXtpxpVMs5qcbZQ=; b=XJ58WugmAuzvFMLppOp13v8EZJXOLRcCxiMuDPE9J9JuYIostWu8SoNA1rCoKRCR9S fe8iWVl+8TD/RDRgb90hVXd4gOuKummOhk8QuTO2QxShVaNjya/danyH7XSPkWrG4xnY rPlQm9oc3xQ7BP7VuxhQ4Esc/AE+VxDEY0czHoVu5IwVfFqDtIm1fQ15KT4HxqrCRCyC 9WsYIA3R651cT/XhWepHYHGF6k3U8XoWGg0vNSBFvO7SJ9k2L5dntYTIxnygG9oLm9TA DzgZYpEfIL9CTePUIK+PvKiBbR2g+gf8VuCYP9NqgNnbTbXwk1BV2AlS0D5PhvmX7/Aj 9Beg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=7cxUbOU/d0PmlHVogfci1RL4+M00MXtpxpVMs5qcbZQ=; b=3LR4ZFyU5+cJo47sbkxHNEu+Xck025lJQECbaBgxt2/Ai9aEnmOMtdEgQh4+N41/1w JebttE/gKb5rSf3Fd2K3wZJGR4eE8buBzxsdDjq4vy2h7WVj1YA+Ztoj1eGz2yuTIKHN BdU1S0SWdyaMwfvYuh87xJJy6EAazp+G6r8K6s9vPLB6TPAulIbriy8rIumCXKeuBfeN 7V87/9Wk3b2Ze1KPPR/E0t+yUZqytTq8ehVGJzvKOOjVki+57uI5CglzdAU3BmJKr7vl /W22OHuo7Hd58n7VhqddRbwFbulgHAcnwOGVPtLfDO1qUnsiBVFpCWNekwtMIs34t/qt sAxw== X-Gm-Message-State: AOAM530JVjK+mTMSxC14BQh8LqdDv1LMngtNHcKALwQgh8kzXs9ZI9Jh jk5GyTbVRF0eyhNibPmKCGaOTCytcsA= X-Google-Smtp-Source: ABdhPJx5PjHl3JhcJ/ZXmAWad2NQoAmC6WLo/Y0/2euJiCnGHWT+x5+gqEWNmIJYsFUemskdUjS40g== X-Received: by 2002:aa7:ce88:: with SMTP id y8mr9127970edv.303.1641656391208; Sat, 08 Jan 2022 07:39:51 -0800 (PST) From: Dmitry Petrov To: qemu-devel@nongnu.org, dpetroff@gmail.com Subject: [PATCH v4 5/5] ui/input-legacy: pass horizontal scroll information Date: Sat, 8 Jan 2022 16:39:47 +0100 Message-Id: <20220108153947.171861-6-dpetroff@gmail.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220108153947.171861-1-dpetroff@gmail.com> References: <20220108153947.171861-1-dpetroff@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::530 (failed) 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=2a00:1450:4864:20::530; envelope-from=dpetroff@gmail.com; helo=mail-ed1-x530.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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1641656625768100002 Content-Type: text/plain; charset="utf-8" This code seems to be used by vmport hack, passing these values allows to implement horizontal scroll support even when using vmport. In case it's not supported horizontal scroll will act as a vertical one. Signed-off-by: Dmitry Petrov --- ui/input-legacy.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/ui/input-legacy.c b/ui/input-legacy.c index 9fc78a639b..46ea74e44d 100644 --- a/ui/input-legacy.c +++ b/ui/input-legacy.c @@ -23,6 +23,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/log.h" #include "qapi/qapi-commands-ui.h" #include "ui/console.h" #include "keymaps.h" @@ -179,6 +180,20 @@ static void legacy_mouse_event(DeviceState *dev, QemuC= onsole *src, 1, s->buttons); } + if (btn->down && btn->button =3D=3D INPUT_BUTTON_WHEEL_RIGHT) { + s->qemu_put_mouse_event(s->qemu_put_mouse_event_opaque, + s->axis[INPUT_AXIS_X], + s->axis[INPUT_AXIS_Y], + -2, + s->buttons); + } + if (btn->down && btn->button =3D=3D INPUT_BUTTON_WHEEL_LEFT) { + s->qemu_put_mouse_event(s->qemu_put_mouse_event_opaque, + s->axis[INPUT_AXIS_X], + s->axis[INPUT_AXIS_Y], + 2, + s->buttons); + } break; case INPUT_EVENT_KIND_ABS: move =3D evt->u.abs.data; --=20 2.32.0