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>
This commit is contained in:
Dmitry Petrov 2022-01-08 16:39:44 +01:00 committed by Gerd Hoffmann
parent 64ebbb7d62
commit d70a5de441
1 changed files with 12 additions and 6 deletions

View File

@ -970,21 +970,27 @@ - (bool) handleEventLocked:(NSEvent *)event
*/
/*
* 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;