[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 23/44] input: mouse: switch gtk ui to new core
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PATCH 23/44] input: mouse: switch gtk ui to new core |
Date: |
Mon, 24 Feb 2014 12:52:30 +0100 |
Signed-off-by: Gerd Hoffmann <address@hidden>
---
ui/gtk.c | 58 +++++++++++++++++++---------------------------------------
1 file changed, 19 insertions(+), 39 deletions(-)
diff --git a/ui/gtk.c b/ui/gtk.c
index 74c0936..1851495 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -194,7 +194,7 @@ static void gd_update_cursor(GtkDisplayState *s, gboolean
override)
on_vga = gd_on_vga(s);
if ((override || on_vga) &&
- (s->full_screen || kbd_mouse_is_absolute() || gd_is_grab_active(s))) {
+ (s->full_screen || qemu_input_is_absolute() || gd_is_grab_active(s))) {
gdk_window_set_cursor(window, s->null_cursor);
} else {
gdk_window_set_cursor(window, NULL);
@@ -580,7 +580,6 @@ static gboolean gd_motion_event(GtkWidget *widget,
GdkEventMotion *motion,
void *opaque)
{
GtkDisplayState *s = opaque;
- int dx, dy;
int x, y;
int mx, my;
int fbh, fbw;
@@ -608,25 +607,21 @@ static gboolean gd_motion_event(GtkWidget *widget,
GdkEventMotion *motion,
return TRUE;
}
- if (kbd_mouse_is_absolute()) {
- dx = x * 0x7FFF / (surface_width(s->ds) - 1);
- dy = y * 0x7FFF / (surface_height(s->ds) - 1);
- } else if (s->last_x == -1 || s->last_y == -1) {
- dx = 0;
- dy = 0;
- } else {
- dx = x - s->last_x;
- dy = y - s->last_y;
+ if (qemu_input_is_absolute()) {
+ qemu_input_queue_abs(s->dcl.con, INPUT_AXIS_X, x,
+ surface_width(s->ds));
+ qemu_input_queue_abs(s->dcl.con, INPUT_AXIS_Y, y,
+ surface_height(s->ds));
+ qemu_input_event_sync();
+ } else if (s->last_x != -1 && s->last_y != -1 && gd_is_grab_active(s)) {
+ qemu_input_queue_rel(s->dcl.con, INPUT_AXIS_X, x - s->last_x);
+ qemu_input_queue_rel(s->dcl.con, INPUT_AXIS_Y, y - s->last_y);
+ qemu_input_event_sync();
}
-
s->last_x = x;
s->last_y = y;
- if (kbd_mouse_is_absolute() || gd_is_grab_active(s)) {
- kbd_mouse_event(dx, dy, 0, s->button_mask);
- }
-
- if (!kbd_mouse_is_absolute() && gd_is_grab_active(s)) {
+ if (!qemu_input_is_absolute() && gd_is_grab_active(s)) {
GdkScreen *screen = gtk_widget_get_screen(s->drawing_area);
int x = (int)motion->x_root;
int y = (int)motion->y_root;
@@ -671,35 +666,20 @@ static gboolean gd_button_event(GtkWidget *widget,
GdkEventButton *button,
void *opaque)
{
GtkDisplayState *s = opaque;
- int dx, dy;
- int n;
+ InputButton btn;
if (button->button == 1) {
- n = 0x01;
+ btn = INPUT_BUTTON_LEFT;
} else if (button->button == 2) {
- n = 0x04;
+ btn = INPUT_BUTTON_MIDDLE;
} else if (button->button == 3) {
- n = 0x02;
- } else {
- n = 0x00;
- }
-
- if (button->type == GDK_BUTTON_PRESS) {
- s->button_mask |= n;
- } else if (button->type == GDK_BUTTON_RELEASE) {
- s->button_mask &= ~n;
- }
-
- if (kbd_mouse_is_absolute()) {
- dx = s->last_x * 0x7FFF / (surface_width(s->ds) - 1);
- dy = s->last_y * 0x7FFF / (surface_height(s->ds) - 1);
+ btn = INPUT_BUTTON_RIGHT;
} else {
- dx = 0;
- dy = 0;
+ return TRUE;
}
- kbd_mouse_event(dx, dy, 0, s->button_mask);
-
+ qemu_input_queue_btn(s->dcl.con, btn, button->type == GDK_BUTTON_PRESS);
+ qemu_input_event_sync();
return TRUE;
}
--
1.8.3.1
- [Qemu-devel] [PATCH 17/44] input: keyboard: switch spice ui to new core, (continued)
- [Qemu-devel] [PATCH 17/44] input: keyboard: switch spice ui to new core, Gerd Hoffmann, 2014/02/24
- [Qemu-devel] [PATCH 31/44] input: trace events, Gerd Hoffmann, 2014/02/24
- [Qemu-devel] [PATCH 16/44] input: keyboard: switch vnc ui to new core, Gerd Hoffmann, 2014/02/24
- [Qemu-devel] [PATCH 36/44] input: move mouse mode notifier to new core, Gerd Hoffmann, 2014/02/24
- [Qemu-devel] [PATCH 28/44] input: mouse: switch monitor to new core, Gerd Hoffmann, 2014/02/24
- [Qemu-devel] [PATCH 41/44] input: move do_mouse_set to new core, Gerd Hoffmann, 2014/02/24
- [Qemu-devel] [PATCH 43/44] console: add head to index to qemu consoles., Gerd Hoffmann, 2014/02/24
- [Qemu-devel] [PATCH 03/44] sdl2: remove text console logic, Gerd Hoffmann, 2014/02/24
- [Qemu-devel] [PATCH 13/44] input: keyboard: switch gtk ui to new core, Gerd Hoffmann, 2014/02/24
- [Qemu-devel] [PATCH 12/44] input: keyboard: switch qmp_send_key() to new core., Gerd Hoffmann, 2014/02/24
- [Qemu-devel] [PATCH 23/44] input: mouse: switch gtk ui to new core,
Gerd Hoffmann <=
- [Qemu-devel] [PATCH 37/44] input: add input_mouse_mode tracepoint, Gerd Hoffmann, 2014/02/24
- [Qemu-devel] [PATCH 22/44] input: mouse: switch legacy handlers to new core, Gerd Hoffmann, 2014/02/24
- [Qemu-devel] [PATCH 20/44] input: mouse: add graphic_rotate support, Gerd Hoffmann, 2014/02/24
- [Qemu-devel] [PATCH 44/44] console: add QemuUIInfo, Gerd Hoffmann, 2014/02/24
- [Qemu-devel] [PATCH 38/44] sdl2: simplify keymap handling, Gerd Hoffmann, 2014/02/24
- [Qemu-devel] [PATCH 39/44] sdl2: codestyle fixups, Gerd Hoffmann, 2014/02/24
- Re: [Qemu-devel] [PULL v2 00/44] rework input handling, sdl2 support, Peter Maydell, 2014/02/26