[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH 14/15] input: mouse: switch gtk ui to new core
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [RFC PATCH 14/15] input: mouse: switch gtk ui to new core |
Date: |
Thu, 28 Nov 2013 15:30:09 +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 3a97b36..3c37d2e 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -197,7 +197,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);
@@ -584,7 +584,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;
@@ -612,25 +611,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;
@@ -675,35 +670,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] [RFC PATCH 13/15] input: mouse: switch legacy handlers to new core, (continued)
- [Qemu-devel] [RFC PATCH 13/15] input: mouse: switch legacy handlers to new core, Gerd Hoffmann, 2013/11/28
- [Qemu-devel] [RFC PATCH 02/15] input: rename file to legacy, Gerd Hoffmann, 2013/11/28
- [Qemu-devel] [RFC PATCH 01/15] console: export QemuConsole index, width, height, Gerd Hoffmann, 2013/11/28
- [Qemu-devel] [RFC PATCH 05/15] input: keyboard: add helper functions to core, Gerd Hoffmann, 2013/11/28
- [Qemu-devel] [RFC PATCH 06/15] input: keyboard: switch legacy handlers to new core, Gerd Hoffmann, 2013/11/28
- [Qemu-devel] [RFC PATCH 07/15] input: keyboard: switch qmp_send_key() to new core., Gerd Hoffmann, 2013/11/28
- [Qemu-devel] [RFC PATCH 15/15] input: mouse: switch sdl ui to new core, Gerd Hoffmann, 2013/11/28
- [Qemu-devel] [RFC PATCH 10/15] input: mouse: add helpers functions to core, Gerd Hoffmann, 2013/11/28
- [Qemu-devel] [RFC PATCH 09/15] input: keyboard: switch sdl ui to new core [wip], Gerd Hoffmann, 2013/11/28
- [Qemu-devel] [RFC PATCH 12/15] input: mouse: add qemu_input_is_absolute(), Gerd Hoffmann, 2013/11/28
- [Qemu-devel] [RFC PATCH 14/15] input: mouse: switch gtk ui to new core,
Gerd Hoffmann <=
- [Qemu-devel] [RFC PATCH 08/15] input: keyboard: switch gtk ui to new core, Gerd Hoffmann, 2013/11/28
- [Qemu-devel] [RFC PATCH 04/15] input: add core bits of the new input layer, Gerd Hoffmann, 2013/11/28
- [Qemu-devel] [RFC PATCH 11/15] input: mouse: add graphic_rotate support, Gerd Hoffmann, 2013/11/28