swc

Unnamed repository; edit this file 'description' to name the repository.
git clone git://git.nihaljere.xyz/swc
Log | Files | Refs | README | LICENSE

commit e025cb5459e551241056f8909ecf34a1fe9a9117
parent 284eb72f61af57f981573e8ee4a5d034d0f477a6
Author: Michael Forney <mforney@mforney.org>
Date:   Sat, 29 Nov 2014 11:06:22 -0800

Pass button/key structure to handler instead of just press

This way, we can make the start_interaction/end_interaction in
libswc/window.c more symmetrical.

Diffstat:
Mlibswc/bindings.c | 12++++++------
Mlibswc/keyboard.c | 24++++++++++++------------
Mlibswc/keyboard.h | 2+-
Mlibswc/pointer.c | 10+++++-----
Mlibswc/pointer.h | 2+-
Mlibswc/window.c | 6+++---
6 files changed, 28 insertions(+), 28 deletions(-)

diff --git a/libswc/bindings.c b/libswc/bindings.c @@ -41,14 +41,14 @@ struct binding }; static bool handle_key(struct keyboard * keyboard, uint32_t time, - struct press * press, uint32_t state); + struct key * key, uint32_t state); static struct keyboard_handler key_binding_handler = { .key = &handle_key }; static bool handle_button(struct pointer_handler * handler, uint32_t time, - struct press * press, uint32_t state); + struct button * button, uint32_t state); static struct pointer_handler button_binding_handler = { .button = &handle_button @@ -136,15 +136,15 @@ static bool handle_binding } bool handle_key(struct keyboard * keyboard, uint32_t time, - struct press * key, uint32_t state) + struct key * key, uint32_t state) { - return handle_binding(time, key, state, &find_key_binding); + return handle_binding(time, &key->press, state, &find_key_binding); } bool handle_button(struct pointer_handler * handler, uint32_t time, - struct press * button, uint32_t state) + struct button * button, uint32_t state) { - return handle_binding(time, button, state, &find_button_binding); + return handle_binding(time, &button->press, state, &find_button_binding); } bool swc_bindings_initialize() diff --git a/libswc/keyboard.c b/libswc/keyboard.c @@ -62,24 +62,24 @@ static void leave(struct input_focus_handler * handler, } static bool client_handle_key(struct keyboard * keyboard, uint32_t time, - struct press * press, uint32_t state) + struct key * key, uint32_t state) { - uint32_t * key; + uint32_t * value; if (state == WL_KEYBOARD_KEY_STATE_PRESSED) { - if (!(key = wl_array_add(&keyboard->client_keys, sizeof *key))) + if (!(value = wl_array_add(&keyboard->client_keys, sizeof *value))) return false; - *key = press->value; + *value = key->press.value; } else { - wl_array_for_each(key, &keyboard->client_keys) + wl_array_for_each(value, &keyboard->client_keys) { - if (*key == press->value) + if (*value == key->press.value) { - swc_array_remove(&keyboard->client_keys, key, sizeof *key); + swc_array_remove(&keyboard->client_keys, value, sizeof *value); break; } } @@ -87,8 +87,8 @@ static bool client_handle_key(struct keyboard * keyboard, uint32_t time, if (keyboard->focus.resource) { - wl_keyboard_send_key(keyboard->focus.resource, press->serial, time, - press->value, state); + wl_keyboard_send_key(keyboard->focus.resource, key->press.serial, time, + key->press.value, state); } return true; @@ -163,7 +163,7 @@ void keyboard_reset(struct keyboard * keyboard) if (key->handler) { key->press.serial = wl_display_next_serial(swc.display); - key->handler->key(keyboard, time, &key->press, + key->handler->key(keyboard, time, key, WL_KEYBOARD_KEY_STATE_RELEASED); /* Don't bother updating the XKB state because we will be resetting * it later on and it is unlikely that a key handler cares about the @@ -255,7 +255,7 @@ void keyboard_handle_key(struct keyboard * keyboard, uint32_t time, if (key->handler) { key->press.serial = serial; - key->handler->key(keyboard, time, &key->press, state); + key->handler->key(keyboard, time, key, state); } swc_array_remove(&keyboard->keys, key, sizeof *key); @@ -277,7 +277,7 @@ void keyboard_handle_key(struct keyboard * keyboard, uint32_t time, /* Go through handlers to see if any will accept this key event. */ wl_list_for_each(handler, &keyboard->handlers, link) { - if (handler->key && handler->key(keyboard, time, &key->press, state)) + if (handler->key && handler->key(keyboard, time, key, state)) { key->handler = handler; break; diff --git a/libswc/keyboard.h b/libswc/keyboard.h @@ -50,7 +50,7 @@ struct keyboard_modifier_state struct keyboard_handler { bool (* key)(struct keyboard * keyboard, uint32_t time, - struct press * press, uint32_t state); + struct key * key, uint32_t state); bool (* modifiers)(struct keyboard * keyboard, const struct keyboard_modifier_state * state); diff --git a/libswc/pointer.c b/libswc/pointer.c @@ -153,7 +153,7 @@ void pointer_set_cursor(struct pointer * pointer, uint32_t id) static bool client_handle_button (struct pointer_handler * handler, uint32_t time, - struct press * press, uint32_t state) + struct button * button, uint32_t state) { struct pointer * pointer = wl_container_of(handler, pointer, client_handler); @@ -161,8 +161,8 @@ static bool client_handle_button if (!pointer->focus.resource) return false; - wl_pointer_send_button(pointer->focus.resource, press->serial, time, - press->value, state); + wl_pointer_send_button(pointer->focus.resource, button->press.serial, time, + button->press.value, state); return true; } @@ -371,7 +371,7 @@ void pointer_handle_button(struct pointer * pointer, uint32_t time, { button->press.serial = serial; button->handler->button(button->handler, time, - &button->press, state); + button, state); } swc_array_remove(&pointer->buttons, button, sizeof *button); @@ -393,7 +393,7 @@ void pointer_handle_button(struct pointer * pointer, uint32_t time, wl_list_for_each(handler, &pointer->handlers, link) { if (handler->button && handler->button(handler, time, - &button->press, state)) + button, state)) { button->handler = handler; break; diff --git a/libswc/pointer.h b/libswc/pointer.h @@ -42,7 +42,7 @@ struct pointer_handler bool (* motion)(struct pointer_handler * handler, uint32_t time, wl_fixed_t x, wl_fixed_t y); bool (* button)(struct pointer_handler * handler, uint32_t time, - struct press * press, uint32_t state); + struct button * button, uint32_t state); bool (* axis)(struct pointer_handler * handler, uint32_t time, enum wl_pointer_axis axis, wl_fixed_t amount); diff --git a/libswc/window.c b/libswc/window.c @@ -87,7 +87,7 @@ static void end_interaction(struct window_pointer_interaction * interaction) button = pointer_get_button(swc.seat->pointer, interaction->serial); interaction->original_handler->button(interaction->original_handler, - swc_time(), &button->press, + swc_time(), button, WL_POINTER_BUTTON_STATE_RELEASED); } @@ -324,7 +324,7 @@ static bool resize_motion(struct pointer_handler * handler, uint32_t time, } static bool handle_button(struct pointer_handler * handler, uint32_t time, - struct press * press, uint32_t state) + struct button * button, uint32_t state) { struct window_pointer_interaction * interaction = wl_container_of(handler, interaction, handler); @@ -337,7 +337,7 @@ static bool handle_button(struct pointer_handler * handler, uint32_t time, end_interaction(interaction); interaction->original_handler->button(interaction->original_handler, time, - press, state); + button, state); return true; }