aboutsummaryrefslogtreecommitdiff
path: root/ui
diff options
context:
space:
mode:
authorDmitry Petrov <dpetroff@gmail.com>2022-01-08 16:39:44 +0100
committerGerd Hoffmann <kraxel@redhat.com>2022-01-13 15:33:18 +0100
commitd70a5de441d6a4634fae39253f26ef3f39f8622a (patch)
treea83758b8924058feda0eac27c8c7057518593da8 /ui
parent64ebbb7d62cfe3e435b1ce87f839398b75bbc35a (diff)
downloadqemu-d70a5de441d6a4634fae39253f26ef3f39f8622a.zip
qemu-d70a5de441d6a4634fae39253f26ef3f39f8622a.tar.gz
qemu-d70a5de441d6a4634fae39253f26ef3f39f8622a.tar.bz2
ui/cocoa: pass horizontal scroll information to the device code
Signed-off-by: Dmitry Petrov <dpetroff@gmail.com> Message-Id: <20220108153947.171861-3-dpetroff@gmail.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'ui')
-rw-r--r--ui/cocoa.m18
1 files changed, 12 insertions, 6 deletions
diff --git a/ui/cocoa.m b/ui/cocoa.m
index 69745c4..ac18e14 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -970,21 +970,27 @@ QemuCocoaView *cocoaView;
*/
/*
- * 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] != 0) {
+ if ([event deltaY] != 0 || [event deltaX] != 0) {
/* Determine if this is a scroll up or scroll down event */
- buttons = ([event deltaY] > 0) ?
+ if ([event deltaY] != 0) {
+ buttons = ([event deltaY] > 0) ?
INPUT_BUTTON_WHEEL_UP : INPUT_BUTTON_WHEEL_DOWN;
+ } else if ([event deltaX] != 0) {
+ buttons = ([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 mouse
+ * Since deltaX/deltaY also report scroll wheel events we prevent mouse
* movement code from executing.
*/
mouse_event = false;