From: Peter Hutterer Date: Thu, 3 Jul 2014 23:04:10 +0000 (+1000) Subject: tools: map KEY_UP/DOWN to pointer acceleration X-Git-Tag: 0.7.0~104 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fb5f44f7948b72eb9788ac7ccfd837bb9e73356c;p=platform%2Fupstream%2Flibinput.git tools: map KEY_UP/DOWN to pointer acceleration Signed-off-by: Peter Hutterer Reviewed-by: Hans de Goede --- diff --git a/tools/event-gui.c b/tools/event-gui.c index fcae236c..142990d5 100644 --- a/tools/event-gui.c +++ b/tools/event-gui.c @@ -223,6 +223,41 @@ window_cleanup(struct window *w) } } +static void +change_ptraccel(struct window *w, double amount) +{ + struct libinput_device **dev; + + ARRAY_FOR_EACH(w->devices, dev) { + double speed; + enum libinput_config_status status; + + if (*dev == NULL) + continue; + + if (!libinput_device_config_accel_is_available(*dev)) + continue; + + speed = libinput_device_config_accel_get_speed(*dev); + speed = clip(speed + amount, -1, 1); + + status = libinput_device_config_accel_set_speed(*dev, speed); + + if (status != LIBINPUT_CONFIG_STATUS_SUCCESS) { + msg("%s: failed to change accel to %.2f (%s)\n", + libinput_device_get_name(*dev), + speed, + libinput_config_status_to_str(status)); + } else { + printf("%s: speed is %.2f\n", + libinput_device_get_name(*dev), + speed); + } + + } +} + + static void handle_event_device_notify(struct libinput_event *ev) { @@ -344,9 +379,24 @@ static int handle_event_keyboard(struct libinput_event *ev, struct window *w) { struct libinput_event_keyboard *k = libinput_event_get_keyboard_event(ev); + unsigned int key = libinput_event_keyboard_get_key(k); + + if (libinput_event_keyboard_get_key_state(k) == + LIBINPUT_KEY_STATE_RELEASED) + return 0; - if (libinput_event_keyboard_get_key(k) == KEY_ESC) + switch(key) { + case KEY_ESC: return 1; + case KEY_UP: + change_ptraccel(w, 0.1); + break; + case KEY_DOWN: + change_ptraccel(w, -0.1); + break; + default: + break; + } return 0; }