text: Add support for control keys to the protocol
Add key event to the text_model interface and a key request to the
input_method_context interface. Implement it in the example editor
client and the example keyboard.
Signed-off-by: Jan Arne Petersen <jpetersen@openismus.com>
diff --git a/clients/editor.c b/clients/editor.c
index 0ed217f..2baf6af 100644
--- a/clients/editor.c
+++ b/clients/editor.c
@@ -284,8 +284,31 @@
static void
text_model_key(void *data,
- struct text_model *text_model)
+ struct text_model *text_model,
+ uint32_t key,
+ uint32_t state)
{
+ const char *state_label;
+ const char *key_label;
+
+ if (state == WL_KEYBOARD_KEY_STATE_PRESSED) {
+ state_label = "pressed";
+ } else {
+ state_label = "released";
+ }
+
+ switch (key) {
+ case XKB_KEY_Tab:
+ key_label = "Tab";
+ break;
+ case XKB_KEY_KP_Enter:
+ key_label = "Enter";
+ break;
+ default:
+ key_label = "Unknown";
+ }
+
+ fprintf(stderr, "%s key was %s.\n", key_label, state_label);
}
static void