Pass input device and time in key_handler callback

Move the modifiers to a input device getter function.
diff --git a/clients/window.h b/clients/window.h
index b4457bc..9d6a22a 100644
--- a/clients/window.h
+++ b/clients/window.h
@@ -110,8 +110,9 @@
 					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 @@
 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);