Use enum wl_keyboard_key_state instead of integer

Instead of using a uint32_t for state everywhere (except on the wire,
where that's still the call signature), use the new
wl_keyboard_key_state enum, and explicit comparisons.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
This commit is contained in:
Daniel Stone
2012-05-30 16:31:52 +01:00
committed by Kristian Høgsberg
parent 4dbadb1556
commit c9785eacca
14 changed files with 50 additions and 29 deletions
+3 -1
View File
@@ -607,7 +607,9 @@ input_handle_key(void *data, struct wl_keyboard *keyboard,
struct wayland_input *input = data;
struct wayland_compositor *c = input->compositor;
notify_key(&c->base.seat->seat, time, key, state);
notify_key(&c->base.seat->seat, time, key,
state ? WL_KEYBOARD_KEY_STATE_PRESSED :
WL_KEYBOARD_KEY_STATE_RELEASED);
}
static void
+6 -3
View File
@@ -586,7 +586,8 @@ x11_compositor_handle_event(int fd, uint32_t mask, void *data)
* event below. */
notify_key(&c->base.seat->seat,
weston_compositor_get_time(),
key_release->detail - 8, 0);
key_release->detail - 8,
WL_KEYBOARD_KEY_STATE_RELEASED);
free(prev);
prev = NULL;
break;
@@ -623,7 +624,8 @@ x11_compositor_handle_event(int fd, uint32_t mask, void *data)
key_press = (xcb_key_press_event_t *) event;
notify_key(&c->base.seat->seat,
weston_compositor_get_time(),
key_press->detail - 8, 1);
key_press->detail - 8,
WL_KEYBOARD_KEY_STATE_PRESSED);
break;
case XCB_KEY_RELEASE:
prev = event;
@@ -707,7 +709,8 @@ x11_compositor_handle_event(int fd, uint32_t mask, void *data)
key_release = (xcb_key_press_event_t *) prev;
notify_key(&c->base.seat->seat,
weston_compositor_get_time(),
key_release->detail - 8, 0);
key_release->detail - 8,
WL_KEYBOARD_KEY_STATE_RELEASED);
free(prev);
prev = NULL;
break;
+4 -3
View File
@@ -1790,7 +1790,8 @@ update_modifier_state(struct weston_seat *seat, uint32_t key, uint32_t state)
}
WL_EXPORT void
notify_key(struct wl_seat *seat, uint32_t time, uint32_t key, uint32_t state)
notify_key(struct wl_seat *seat, uint32_t time, uint32_t key,
enum wl_keyboard_key_state state)
{
struct weston_seat *ws = (struct weston_seat *) seat;
struct weston_compositor *compositor = ws->compositor;
@@ -1801,7 +1802,7 @@ notify_key(struct wl_seat *seat, uint32_t time, uint32_t key, uint32_t state)
uint32_t *k, *end;
int mods;
if (state) {
if (state == WL_KEYBOARD_KEY_STATE_PRESSED) {
if (compositor->ping_handler && focus)
compositor->ping_handler(focus, serial);
@@ -1819,7 +1820,7 @@ notify_key(struct wl_seat *seat, uint32_t time, uint32_t key, uint32_t state)
*k = *--end;
}
seat->keyboard->keys.size = (void *) end - seat->keyboard->keys.data;
if (state) {
if (state == WL_KEYBOARD_KEY_STATE_PRESSED) {
k = wl_array_add(&seat->keyboard->keys, sizeof *k);
*k = key;
}
+1 -1
View File
@@ -484,7 +484,7 @@ notify_axis(struct wl_seat *seat, uint32_t time, uint32_t axis,
int32_t value);
void
notify_key(struct wl_seat *seat, uint32_t time, uint32_t key,
uint32_t state);
enum wl_keyboard_key_state state);
void
notify_pointer_focus(struct wl_seat *seat, struct weston_output *output,
+3 -1
View File
@@ -86,7 +86,9 @@ evdev_process_key(struct evdev_input_device *device,
default:
notify_key(&device->master->base.seat,
time, e->code, e->value);
time, e->code,
e->value ? WL_KEYBOARD_KEY_STATE_PRESSED :
WL_KEYBOARD_KEY_STATE_RELEASED);
break;
}
}
+3 -2
View File
@@ -2482,11 +2482,12 @@ switcher_destroy(struct switcher *switcher)
static void
switcher_key(struct wl_keyboard_grab *grab,
uint32_t time, uint32_t key, uint32_t state)
uint32_t time, uint32_t key, uint32_t state_w)
{
struct switcher *switcher = container_of(grab, struct switcher, grab);
enum wl_keyboard_key_state state = state_w;
if (key == KEY_TAB && state)
if (key == KEY_TAB && state == WL_KEYBOARD_KEY_STATE_PRESSED)
switcher_next(switcher);
}
+3 -2
View File
@@ -249,17 +249,18 @@ struct binding_keyboard_grab {
static void
binding_key(struct wl_keyboard_grab *grab,
uint32_t time, uint32_t key, uint32_t state)
uint32_t time, uint32_t key, uint32_t state_w)
{
struct binding_keyboard_grab *b =
container_of(grab, struct binding_keyboard_grab, grab);
struct wl_resource *resource;
struct wl_display *display;
enum wl_keyboard_key_state state = state_w;
uint32_t serial;
resource = grab->keyboard->focus_resource;
if (key == b->key) {
if (!state) {
if (state == WL_KEYBOARD_KEY_STATE_RELEASED) {
wl_keyboard_end_grab(grab->keyboard);
free(b);
}