Pārlūkot izejas kodu

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>
Fabian Lesniak 8 gadi atpakaļ
vecāks
revīzija
1266b68c6e
2 mainītis faili ar 10 papildinājumiem un 0 dzēšanām
  1. 4 0
      ui/gtk.c
  2. 6 0
      ui/input-linux.c

+ 4 - 0
ui/gtk.c

@@ -1007,6 +1007,10 @@ static gboolean gd_button_event(GtkWidget *widget, GdkEventButton *button,
         btn = INPUT_BUTTON_MIDDLE;
         btn = INPUT_BUTTON_MIDDLE;
     } else if (button->button == 3) {
     } else if (button->button == 3) {
         btn = INPUT_BUTTON_RIGHT;
         btn = INPUT_BUTTON_RIGHT;
+    } else if (button->button == 8) {
+        btn = INPUT_BUTTON_SIDE;
+    } else if (button->button == 9) {
+        btn = INPUT_BUTTON_EXTRA;
     } else {
     } else {
         return TRUE;
         return TRUE;
     }
     }

+ 6 - 0
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,
             qemu_input_queue_btn(NULL, INPUT_BUTTON_WHEEL_DOWN,
                                  event->value);
                                  event->value);
             break;
             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;
         break;
     case EV_REL:
     case EV_REL: