Pass input device and time in key_handler callback

Move the modifiers to a input device getter function.
This commit is contained in:
Kristian Høgsberg 2011-01-19 14:20:33 -05:00
parent 5029a13283
commit 67cac8a565
5 changed files with 28 additions and 10 deletions

View File

@ -128,8 +128,8 @@ keyboard_focus_handler(struct window *window,
}
static void
key_handler(struct window *window, uint32_t key, uint32_t sym,
uint32_t state, uint32_t modifiers, void *data)
key_handler(struct window *window, struct input *input, uint32_t time,
uint32_t key, uint32_t sym, uint32_t state, void *data)
{
struct resizor *resizor = data;

View File

@ -1872,13 +1872,21 @@ terminal_data(struct terminal *terminal, const char *data, size_t length)
}
static void
key_handler(struct window *window, uint32_t key, uint32_t sym,
uint32_t state, uint32_t modifiers, void *data)
static void
key_handler(struct window *window, struct input *input, uint32_t time,
uint32_t key, uint32_t sym, uint32_t state, void *data)
{
struct terminal *terminal = data;
char ch[MAX_RESPONSE];
uint32_t modifiers;
int len = 0;
modifiers = input_get_modifiers(input);
if ((modifiers & WINDOW_MODIFIER_CONTROL) &&
(modifiers & WINDOW_MODIFIER_SHIFT) &&
state && handle_bound_key(terminal, input, sym, 0))
return;
switch (sym) {
case XK_F11:
if (!state)

View File

@ -110,8 +110,8 @@ redraw_handler(struct window *window, void *data)
}
static void
key_handler(struct window *window, uint32_t key, uint32_t unicode,
uint32_t state, uint32_t modifiers, void *data)
key_handler(struct window *window, struct input *input, uint32_t time,
uint32_t key, uint32_t unicode, uint32_t state, void *data)
{
struct view *view = data;

View File

@ -922,8 +922,8 @@ window_handle_key(void *data, struct wl_input_device *input_device,
input->modifiers &= ~d->xkb->map->modmap[code];
if (window->key_handler)
(*window->key_handler)(window, key, sym, state,
input->modifiers, window->user_data);
(*window->key_handler)(window, input, time, key, sym, state,
window->user_data);
}
static void
@ -1014,6 +1014,12 @@ input_get_input_device(struct input *input)
return input->input_device;
}
uint32_t
input_get_modifiers(struct input *input)
{
return input->modifiers;
}
struct wl_drag *
window_create_drag(struct window *window)
{

View File

@ -110,8 +110,9 @@ typedef void (*window_resize_handler_t)(struct window *window,
void *data);
typedef void (*window_redraw_handler_t)(struct window *window, void *data);
typedef void (*window_frame_handler_t)(struct window *window, uint32_t frame, uint32_t timestamp, void *data);
typedef void (*window_key_handler_t)(struct window *window, uint32_t key, uint32_t unicode,
uint32_t state, uint32_t modifiers, void *data);
typedef void (*window_key_handler_t)(struct window *window, struct input *input,
uint32_t time, uint32_t key, uint32_t unicode,
uint32_t state, void *data);
typedef void (*window_keyboard_focus_handler_t)(struct window *window,
struct input *device, void *data);
@ -236,6 +237,9 @@ window_activate_drag(struct wl_drag *drag, struct window *window,
void
input_get_position(struct input *input, int32_t *x, int32_t *y);
uint32_t
input_get_modifiers(struct input *input);
struct wl_input_device *
input_get_input_device(struct input *input);