summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorFabian Lesniak <fabian@lesniak-it.de>2016-12-06 20:00:07 +0100
committerGerd Hoffmann <kraxel@redhat.com>2017-01-31 08:14:51 +0100
commit1266b68c6e3af7f7bd53edcba1ee12cec07cdefe (patch)
tree01baec7e37cfd4110222d1b8455107125b62d7fe
parent8b0caab07bf0056f44b52eb335faa45f07b7e1a6 (diff)
downloadfocaccia-qemu-1266b68c6e3af7f7bd53edcba1ee12cec07cdefe.tar.gz
focaccia-qemu-1266b68c6e3af7f7bd53edcba1ee12cec07cdefe.zip
ui: add support for mice with extra/side buttons
Adds input event generation for BTN_SIDE and BTN_EXTRA events to gtk and
input-linux methods.

Signed-off-by: Fabian Lesniak <fabian@lesniak-it.de>
Message-id: 20161206190007.7539-4-fabian@lesniak-it.de
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-rw-r--r--ui/gtk.c4
-rw-r--r--ui/input-linux.c6
2 files changed, 10 insertions, 0 deletions
diff --git a/ui/gtk.c b/ui/gtk.c
index bdd831c268..3f67a345d1 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -1007,6 +1007,10 @@ static gboolean gd_button_event(GtkWidget *widget, GdkEventButton *button,
         btn = INPUT_BUTTON_MIDDLE;
     } else if (button->button == 3) {
         btn = INPUT_BUTTON_RIGHT;
+    } else if (button->button == 8) {
+        btn = INPUT_BUTTON_SIDE;
+    } else if (button->button == 9) {
+        btn = INPUT_BUTTON_EXTRA;
     } else {
         return TRUE;
     }
diff --git a/ui/input-linux.c b/ui/input-linux.c
index f345317794..ac31f47719 100644
--- a/ui/input-linux.c
+++ b/ui/input-linux.c
@@ -291,6 +291,12 @@ static void input_linux_handle_mouse(InputLinux *il, struct input_event *event)
             qemu_input_queue_btn(NULL, INPUT_BUTTON_WHEEL_DOWN,
                                  event->value);
             break;
+        case BTN_SIDE:
+            qemu_input_queue_btn(NULL, INPUT_BUTTON_SIDE, event->value);
+            break;
+        case BTN_EXTRA:
+            qemu_input_queue_btn(NULL, INPUT_BUTTON_EXTRA, event->value);
+            break;
         };
         break;
     case EV_REL: