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:
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;
}