Loading ui/input-linux.c +53 −49 Original line number Diff line number Diff line Loading @@ -265,59 +265,43 @@ static void input_linux_event_mouse_button(int button) qemu_input_event_sync(); } static void input_linux_event_mouse(void *opaque) static void input_linux_handle_mouse(InputLinux *il, struct input_event *event) { InputLinux *il = opaque; struct input_event event; int rc; for (;;) { rc = read(il->fd, &event, sizeof(event)); if (rc != sizeof(event)) { if (rc < 0 && errno != EAGAIN) { fprintf(stderr, "%s: read: %s\n", __func__, strerror(errno)); qemu_set_fd_handler(il->fd, NULL, NULL, NULL); close(il->fd); } break; } /* only send event to guest when grab is active */ if (!il->grab_active) { continue; return; } switch (event.type) { switch (event->type) { case EV_KEY: switch (event.code) { switch (event->code) { case BTN_LEFT: qemu_input_queue_btn(NULL, INPUT_BUTTON_LEFT, event.value); qemu_input_queue_btn(NULL, INPUT_BUTTON_LEFT, event->value); break; case BTN_RIGHT: qemu_input_queue_btn(NULL, INPUT_BUTTON_RIGHT, event.value); qemu_input_queue_btn(NULL, INPUT_BUTTON_RIGHT, event->value); break; case BTN_MIDDLE: qemu_input_queue_btn(NULL, INPUT_BUTTON_MIDDLE, event.value); qemu_input_queue_btn(NULL, INPUT_BUTTON_MIDDLE, event->value); break; case BTN_GEAR_UP: qemu_input_queue_btn(NULL, INPUT_BUTTON_WHEEL_UP, event.value); qemu_input_queue_btn(NULL, INPUT_BUTTON_WHEEL_UP, event->value); break; case BTN_GEAR_DOWN: qemu_input_queue_btn(NULL, INPUT_BUTTON_WHEEL_DOWN, event.value); event->value); break; }; break; case EV_REL: switch (event.code) { switch (event->code) { case REL_X: qemu_input_queue_rel(NULL, INPUT_AXIS_X, event.value); qemu_input_queue_rel(NULL, INPUT_AXIS_X, event->value); break; case REL_Y: qemu_input_queue_rel(NULL, INPUT_AXIS_Y, event.value); qemu_input_queue_rel(NULL, INPUT_AXIS_Y, event->value); break; case REL_WHEEL: il->wheel = event.value; il->wheel = event->value; break; } break; Loading @@ -332,6 +316,26 @@ static void input_linux_event_mouse(void *opaque) break; } } static void input_linux_event_mouse(void *opaque) { InputLinux *il = opaque; struct input_event event; int rc; for (;;) { rc = read(il->fd, &event, sizeof(event)); if (rc != sizeof(event)) { if (rc < 0 && errno != EAGAIN) { fprintf(stderr, "%s: read: %s\n", __func__, strerror(errno)); qemu_set_fd_handler(il->fd, NULL, NULL, NULL); close(il->fd); } break; } input_linux_handle_mouse(il, &event); } } static void input_linux_complete(UserCreatable *uc, Error **errp) Loading Loading
ui/input-linux.c +53 −49 Original line number Diff line number Diff line Loading @@ -265,59 +265,43 @@ static void input_linux_event_mouse_button(int button) qemu_input_event_sync(); } static void input_linux_event_mouse(void *opaque) static void input_linux_handle_mouse(InputLinux *il, struct input_event *event) { InputLinux *il = opaque; struct input_event event; int rc; for (;;) { rc = read(il->fd, &event, sizeof(event)); if (rc != sizeof(event)) { if (rc < 0 && errno != EAGAIN) { fprintf(stderr, "%s: read: %s\n", __func__, strerror(errno)); qemu_set_fd_handler(il->fd, NULL, NULL, NULL); close(il->fd); } break; } /* only send event to guest when grab is active */ if (!il->grab_active) { continue; return; } switch (event.type) { switch (event->type) { case EV_KEY: switch (event.code) { switch (event->code) { case BTN_LEFT: qemu_input_queue_btn(NULL, INPUT_BUTTON_LEFT, event.value); qemu_input_queue_btn(NULL, INPUT_BUTTON_LEFT, event->value); break; case BTN_RIGHT: qemu_input_queue_btn(NULL, INPUT_BUTTON_RIGHT, event.value); qemu_input_queue_btn(NULL, INPUT_BUTTON_RIGHT, event->value); break; case BTN_MIDDLE: qemu_input_queue_btn(NULL, INPUT_BUTTON_MIDDLE, event.value); qemu_input_queue_btn(NULL, INPUT_BUTTON_MIDDLE, event->value); break; case BTN_GEAR_UP: qemu_input_queue_btn(NULL, INPUT_BUTTON_WHEEL_UP, event.value); qemu_input_queue_btn(NULL, INPUT_BUTTON_WHEEL_UP, event->value); break; case BTN_GEAR_DOWN: qemu_input_queue_btn(NULL, INPUT_BUTTON_WHEEL_DOWN, event.value); event->value); break; }; break; case EV_REL: switch (event.code) { switch (event->code) { case REL_X: qemu_input_queue_rel(NULL, INPUT_AXIS_X, event.value); qemu_input_queue_rel(NULL, INPUT_AXIS_X, event->value); break; case REL_Y: qemu_input_queue_rel(NULL, INPUT_AXIS_Y, event.value); qemu_input_queue_rel(NULL, INPUT_AXIS_Y, event->value); break; case REL_WHEEL: il->wheel = event.value; il->wheel = event->value; break; } break; Loading @@ -332,6 +316,26 @@ static void input_linux_event_mouse(void *opaque) break; } } static void input_linux_event_mouse(void *opaque) { InputLinux *il = opaque; struct input_event event; int rc; for (;;) { rc = read(il->fd, &event, sizeof(event)); if (rc != sizeof(event)) { if (rc < 0 && errno != EAGAIN) { fprintf(stderr, "%s: read: %s\n", __func__, strerror(errno)); qemu_set_fd_handler(il->fd, NULL, NULL, NULL); close(il->fd); } break; } input_linux_handle_mouse(il, &event); } } static void input_linux_complete(UserCreatable *uc, Error **errp) Loading