[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v4 19/38] input: mouse: switch gtk ui to new core
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PULL v4 19/38] input: mouse: switch gtk ui to new core |
Date: |
Wed, 5 Mar 2014 12:53:21 +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] [PULL v4 06/38] input: add core bits of the new input layer, (continued)
- [Qemu-devel] [PULL v4 06/38] input: add core bits of the new input layer, Gerd Hoffmann, 2014/03/05
- [Qemu-devel] [PULL v4 15/38] input: mouse: add helpers functions to core, Gerd Hoffmann, 2014/03/05
- [Qemu-devel] [PULL v4 28/38] input-legacy: remove kbd_mouse_has_absolute, Gerd Hoffmann, 2014/03/05
- [Qemu-devel] [PULL v4 26/38] input: trace events, Gerd Hoffmann, 2014/03/05
- [Qemu-devel] [PULL v4 20/38] input: mouse: switch sdl ui to new core, Gerd Hoffmann, 2014/03/05
- [Qemu-devel] [PULL v4 36/38] console: add head to index to qemu consoles., Gerd Hoffmann, 2014/03/05
- [Qemu-devel] [PULL v4 07/38] input: keyboard: add helper functions to core, Gerd Hoffmann, 2014/03/05
- [Qemu-devel] [PULL v4 12/38] input: keyboard: switch vnc ui to new core, Gerd Hoffmann, 2014/03/05
- [Qemu-devel] [PULL v4 34/38] input: move do_mouse_set to new core, Gerd Hoffmann, 2014/03/05
- [Qemu-devel] [PULL v4 17/38] input: mouse: add qemu_input_is_absolute(), Gerd Hoffmann, 2014/03/05
- [Qemu-devel] [PULL v4 19/38] input: mouse: switch gtk ui to new core,
Gerd Hoffmann <=
- [Qemu-devel] [PULL v4 27/38] input-legacy: remove kbd_put_keycode, Gerd Hoffmann, 2014/03/05
- [Qemu-devel] [PULL v4 30/38] input-legacy: remove kbd_mouse_event, Gerd Hoffmann, 2014/03/05
- [Qemu-devel] [PULL v4 31/38] input: move mouse mode notifier to new core, Gerd Hoffmann, 2014/03/05
- [Qemu-devel] [PULL v4 25/38] input: mouse: switch cocoa ui to new core, Gerd Hoffmann, 2014/03/05
- [Qemu-devel] [PULL v4 37/38] console: add QemuUIInfo, Gerd Hoffmann, 2014/03/05
- [Qemu-devel] [PULL v4 38/38] ui/sdl2 : initial port to SDL 2.0 (v2.0), Gerd Hoffmann, 2014/03/05
- [Qemu-devel] [PULL v4 13/38] input: keyboard: switch spice ui to new core, Gerd Hoffmann, 2014/03/05
- Re: [Qemu-devel] [PULL v4 00/38] rework input handling, sdl2 support, Peter Maydell, 2014/03/07