[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 18/20] ui/gtk: pass horizontal scroll information to the device co
|
From: |
Gerd Hoffmann |
|
Subject: |
[PULL 18/20] ui/gtk: pass horizontal scroll information to the device code |
|
Date: |
Fri, 14 Jan 2022 07:53:24 +0100 |
From: Dmitry Petrov <dpetroff@gmail.com>
Signed-off-by: Dmitry Petrov <dpetroff@gmail.com>
Message-Id: <20220108153947.171861-4-dpetroff@gmail.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
ui/gtk.c | 54 ++++++++++++++++++++++++++++++++++++++++++------------
1 file changed, 42 insertions(+), 12 deletions(-)
diff --git a/ui/gtk.c b/ui/gtk.c
index 6a1f65d51894..a8567b9ddc8f 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -968,33 +968,63 @@ static gboolean gd_scroll_event(GtkWidget *widget,
GdkEventScroll *scroll,
void *opaque)
{
VirtualConsole *vc = opaque;
- InputButton btn;
+ InputButton btn_vertical;
+ InputButton btn_horizontal;
+ bool has_vertical = false;
+ bool has_horizontal = false;
if (scroll->direction == GDK_SCROLL_UP) {
- btn = INPUT_BUTTON_WHEEL_UP;
+ btn_vertical = INPUT_BUTTON_WHEEL_UP;
+ has_vertical = true;
} else if (scroll->direction == GDK_SCROLL_DOWN) {
- btn = INPUT_BUTTON_WHEEL_DOWN;
+ btn_vertical = INPUT_BUTTON_WHEEL_DOWN;
+ has_vertical = true;
+ } else if (scroll->direction == GDK_SCROLL_LEFT) {
+ btn_horizontal = INPUT_BUTTON_WHEEL_LEFT;
+ has_horizontal = true;
+ } else if (scroll->direction == GDK_SCROLL_RIGHT) {
+ btn_horizontal = INPUT_BUTTON_WHEEL_RIGHT;
+ has_horizontal = true;
} else if (scroll->direction == 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 == 0) {
- return TRUE;
- } else if (delta_y > 0) {
- btn = INPUT_BUTTON_WHEEL_DOWN;
+
+ if (delta_y > 0) {
+ btn_vertical = INPUT_BUTTON_WHEEL_DOWN;
+ has_vertical = true;
+ } else if (delta_y < 0) {
+ btn_vertical = INPUT_BUTTON_WHEEL_UP;
+ has_vertical = true;
+ } else if (delta_x > 0) {
+ btn_horizontal = INPUT_BUTTON_WHEEL_RIGHT;
+ has_horizontal = true;
+ } else if (delta_x < 0) {
+ btn_horizontal = INPUT_BUTTON_WHEEL_LEFT;
+ has_horizontal = true;
} else {
- btn = INPUT_BUTTON_WHEEL_UP;
+ return TRUE;
}
} else {
return TRUE;
}
- 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;
}
--
2.34.1
- [PULL 06/20] hw/audio/intel-hda: fix stream reset, (continued)
- [PULL 06/20] hw/audio/intel-hda: fix stream reset, Gerd Hoffmann, 2022/01/14
- [PULL 11/20] hw/display/vga-mmio: Inline vga_mm_init(), Gerd Hoffmann, 2022/01/14
- [PULL 12/20] hw/display/vga-mmio: QOM'ify vga_mmio_init() as TYPE_VGA_MMIO, Gerd Hoffmann, 2022/01/14
- [PULL 15/20] edid: Added support for 4k@60 Hz monitor, Gerd Hoffmann, 2022/01/14
- [PULL 20/20] ui/input-legacy: pass horizontal scroll information, Gerd Hoffmann, 2022/01/14
- [PULL 07/20] ui/dbus: fix buffer-overflow detected by ASAN, Gerd Hoffmann, 2022/01/14
- [PULL 13/20] hw/mips/jazz: Inline vga_mmio_init() and remove it, Gerd Hoffmann, 2022/01/14
- [PULL 17/20] ui/cocoa: pass horizontal scroll information to the device code, Gerd Hoffmann, 2022/01/14
- [PULL 14/20] edid: set default resolution to 1280x800 (WXGA), Gerd Hoffmann, 2022/01/14
- [PULL 16/20] ps2: Initial horizontal scroll support, Gerd Hoffmann, 2022/01/14
- [PULL 18/20] ui/gtk: pass horizontal scroll information to the device code,
Gerd Hoffmann <=
- [PULL 19/20] ui/sdl2: pass horizontal scroll information to the device code, Gerd Hoffmann, 2022/01/14
- Re: [PULL 00/20] Kraxel 20220114 patches, Peter Maydell, 2022/01/14