Use input method protocol from wayland-protocols

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Mariusz Ceier <mceier+wayland@gmail.com>
Reviewed-by: Jan Arne Petersen <janarne@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
diff --git a/clients/keyboard.c b/clients/keyboard.c
index e1f8ad3..b843fda 100644
--- a/clients/keyboard.c
+++ b/clients/keyboard.c
@@ -32,15 +32,15 @@
 #include <cairo.h>
 
 #include "window.h"
-#include "input-method-client-protocol.h"
+#include "input-method-unstable-v1-client-protocol.h"
 #include "text-input-unstable-v1-client-protocol.h"
 
 struct keyboard;
 
 struct virtual_keyboard {
-	struct wl_input_panel *input_panel;
-	struct wl_input_method *input_method;
-	struct wl_input_method_context *context;
+	struct zwp_input_panel_v1 *input_panel;
+	struct zwp_input_method_v1 *input_method;
+	struct zwp_input_method_context_v1 *context;
 	struct display *display;
 	struct output *output;
 	char *preedit_string;
@@ -427,11 +427,11 @@
 	    strlen(keyboard->preedit_string) == 0)
 		return;
 
-	wl_input_method_context_cursor_position(keyboard->context,
-						0, 0);
-	wl_input_method_context_commit_string(keyboard->context,
-					      keyboard->serial,
-					      keyboard->preedit_string);
+	zwp_input_method_context_v1_cursor_position(keyboard->context,
+						    0, 0);
+	zwp_input_method_context_v1_commit_string(keyboard->context,
+						  keyboard->serial,
+						  keyboard->preedit_string);
 
 	if (keyboard->surrounding_text) {
 		surrounding_text = insert_text(keyboard->surrounding_text,
@@ -456,18 +456,18 @@
 	uint32_t index = strlen(keyboard->preedit_string);
 
 	if (keyboard->preedit_style)
-		wl_input_method_context_preedit_styling(keyboard->context,
-							0,
-							strlen(keyboard->preedit_string),
-							keyboard->preedit_style);
+		zwp_input_method_context_v1_preedit_styling(keyboard->context,
+							    0,
+							    strlen(keyboard->preedit_string),
+							    keyboard->preedit_style);
 	if (cursor > 0)
 		index = cursor;
-	wl_input_method_context_preedit_cursor(keyboard->context,
-					       index);
-	wl_input_method_context_preedit_string(keyboard->context,
-					       keyboard->serial,
-					       keyboard->preedit_string,
-					       keyboard->preedit_string);
+	zwp_input_method_context_v1_preedit_cursor(keyboard->context,
+						   index);
+	zwp_input_method_context_v1_preedit_string(keyboard->context,
+						   keyboard->serial,
+						   keyboard->preedit_string,
+						   keyboard->preedit_string);
 }
 
 static const char *
@@ -499,12 +499,12 @@
 
 	end = keyboard->surrounding_text + keyboard->surrounding_cursor;
 
-	wl_input_method_context_delete_surrounding_text(keyboard->context,
-							(start - keyboard->surrounding_text) - keyboard->surrounding_cursor,
-							end - start);
-	wl_input_method_context_commit_string(keyboard->context,
-					      keyboard->serial,
-					      "");
+	zwp_input_method_context_v1_delete_surrounding_text(keyboard->context,
+							    (start - keyboard->surrounding_text) - keyboard->surrounding_cursor,
+							    end - start);
+	zwp_input_method_context_v1_commit_string(keyboard->context,
+						  keyboard->serial,
+						  "");
 
 	/* Update surrounding text */
 	keyboard->surrounding_cursor = start - keyboard->surrounding_text;
@@ -571,10 +571,10 @@
 			break;
 		case keytype_enter:
 			virtual_keyboard_commit_preedit(keyboard->keyboard);
-			wl_input_method_context_keysym(keyboard->keyboard->context,
-						       display_get_serial(keyboard->keyboard->display),
-						       time,
-						       XKB_KEY_Return, key_state, mod_mask);
+			zwp_input_method_context_v1_keysym(keyboard->keyboard->context,
+							   display_get_serial(keyboard->keyboard->display),
+							   time,
+							   XKB_KEY_Return, key_state, mod_mask);
 			break;
 		case keytype_space:
 			if (state != WL_POINTER_BUTTON_STATE_PRESSED)
@@ -615,38 +615,38 @@
 			break;
 		case keytype_tab:
 			virtual_keyboard_commit_preedit(keyboard->keyboard);
-			wl_input_method_context_keysym(keyboard->keyboard->context,
-						       display_get_serial(keyboard->keyboard->display),
-						       time,
-						       XKB_KEY_Tab, key_state, mod_mask);
+			zwp_input_method_context_v1_keysym(keyboard->keyboard->context,
+							   display_get_serial(keyboard->keyboard->display),
+							   time,
+							   XKB_KEY_Tab, key_state, mod_mask);
 			break;
 		case keytype_arrow_up:
 			virtual_keyboard_commit_preedit(keyboard->keyboard);
-			wl_input_method_context_keysym(keyboard->keyboard->context,
-						       display_get_serial(keyboard->keyboard->display),
-						       time,
-						       XKB_KEY_Up, key_state, mod_mask);
+			zwp_input_method_context_v1_keysym(keyboard->keyboard->context,
+							   display_get_serial(keyboard->keyboard->display),
+							   time,
+							   XKB_KEY_Up, key_state, mod_mask);
 			break;
 		case keytype_arrow_left:
 			virtual_keyboard_commit_preedit(keyboard->keyboard);
-			wl_input_method_context_keysym(keyboard->keyboard->context,
-						       display_get_serial(keyboard->keyboard->display),
-						       time,
-						       XKB_KEY_Left, key_state, mod_mask);
+			zwp_input_method_context_v1_keysym(keyboard->keyboard->context,
+							   display_get_serial(keyboard->keyboard->display),
+							   time,
+							   XKB_KEY_Left, key_state, mod_mask);
 			break;
 		case keytype_arrow_right:
 			virtual_keyboard_commit_preedit(keyboard->keyboard);
-			wl_input_method_context_keysym(keyboard->keyboard->context,
-						       display_get_serial(keyboard->keyboard->display),
-						       time,
-						       XKB_KEY_Right, key_state, mod_mask);
+			zwp_input_method_context_v1_keysym(keyboard->keyboard->context,
+							   display_get_serial(keyboard->keyboard->display),
+							   time,
+							   XKB_KEY_Right, key_state, mod_mask);
 			break;
 		case keytype_arrow_down:
 			virtual_keyboard_commit_preedit(keyboard->keyboard);
-			wl_input_method_context_keysym(keyboard->keyboard->context,
-						       display_get_serial(keyboard->keyboard->display),
-						       time,
-						       XKB_KEY_Down, key_state, mod_mask);
+			zwp_input_method_context_v1_keysym(keyboard->keyboard->context,
+							   display_get_serial(keyboard->keyboard->display),
+							   time,
+							   XKB_KEY_Down, key_state, mod_mask);
 			break;
 		case keytype_style:
 			if (state != WL_POINTER_BUTTON_STATE_PRESSED)
@@ -750,7 +750,7 @@
 
 static void
 handle_surrounding_text(void *data,
-			struct wl_input_method_context *context,
+			struct zwp_input_method_context_v1 *context,
 			const char *text,
 			uint32_t cursor,
 			uint32_t anchor)
@@ -765,7 +765,7 @@
 
 static void
 handle_reset(void *data,
-	     struct wl_input_method_context *context)
+	     struct zwp_input_method_context_v1 *context)
 {
 	struct virtual_keyboard *keyboard = data;
 
@@ -779,7 +779,7 @@
 
 static void
 handle_content_type(void *data,
-		    struct wl_input_method_context *context,
+		    struct zwp_input_method_context_v1 *context,
 		    uint32_t hint,
 		    uint32_t purpose)
 {
@@ -791,7 +791,7 @@
 
 static void
 handle_invoke_action(void *data,
-		     struct wl_input_method_context *context,
+		     struct zwp_input_method_context_v1 *context,
 		     uint32_t button,
 		     uint32_t index)
 {
@@ -805,7 +805,7 @@
 
 static void
 handle_commit_state(void *data,
-		    struct wl_input_method_context *context,
+		    struct zwp_input_method_context_v1 *context,
 		    uint32_t serial)
 {
 	struct virtual_keyboard *keyboard = data;
@@ -822,15 +822,19 @@
 			       layout->columns * key_width,
 			       layout->rows * key_height);
 
-	wl_input_method_context_language(context, keyboard->serial, layout->language);
-	wl_input_method_context_text_direction(context, keyboard->serial, layout->text_direction);
+	zwp_input_method_context_v1_language(context,
+					     keyboard->serial,
+					     layout->language);
+	zwp_input_method_context_v1_text_direction(context,
+						   keyboard->serial,
+						   layout->text_direction);
 
 	widget_schedule_redraw(keyboard->keyboard->widget);
 }
 
 static void
 handle_preferred_language(void *data,
-			  struct wl_input_method_context *context,
+			  struct zwp_input_method_context_v1 *context,
 			  const char *language)
 {
 	struct virtual_keyboard *keyboard = data;
@@ -844,7 +848,7 @@
 		keyboard->preferred_language = strdup(language);
 }
 
-static const struct wl_input_method_context_listener input_method_context_listener = {
+static const struct zwp_input_method_context_v1_listener input_method_context_listener = {
 	handle_surrounding_text,
 	handle_reset,
 	handle_content_type,
@@ -855,8 +859,8 @@
 
 static void
 input_method_activate(void *data,
-		      struct wl_input_method *input_method,
-		      struct wl_input_method_context *context)
+		      struct zwp_input_method_v1 *input_method,
+		      struct zwp_input_method_context_v1 *context)
 {
 	struct virtual_keyboard *keyboard = data;
 	struct wl_array modifiers_map;
@@ -865,7 +869,7 @@
 	keyboard->keyboard->state = KEYBOARD_STATE_DEFAULT;
 
 	if (keyboard->context)
-		wl_input_method_context_destroy(keyboard->context);
+		zwp_input_method_context_v1_destroy(keyboard->context);
 
 	if (keyboard->preedit_string)
 		free(keyboard->preedit_string);
@@ -881,15 +885,15 @@
 	keyboard->serial = 0;
 
 	keyboard->context = context;
-	wl_input_method_context_add_listener(context,
-					     &input_method_context_listener,
-					     keyboard);
+	zwp_input_method_context_v1_add_listener(context,
+						 &input_method_context_listener,
+						 keyboard);
 
 	wl_array_init(&modifiers_map);
 	keysym_modifiers_add(&modifiers_map, "Shift");
 	keysym_modifiers_add(&modifiers_map, "Control");
 	keysym_modifiers_add(&modifiers_map, "Mod1");
-	wl_input_method_context_modifiers_map(context, &modifiers_map);
+	zwp_input_method_context_v1_modifiers_map(context, &modifiers_map);
 	keyboard->keysym.shift_mask = keysym_modifiers_get_mask(&modifiers_map, "Shift");
 	wl_array_release(&modifiers_map);
 
@@ -899,27 +903,31 @@
 			       layout->columns * key_width,
 			       layout->rows * key_height);
 
-	wl_input_method_context_language(context, keyboard->serial, layout->language);
-	wl_input_method_context_text_direction(context, keyboard->serial, layout->text_direction);
+	zwp_input_method_context_v1_language(context,
+					     keyboard->serial,
+					     layout->language);
+	zwp_input_method_context_v1_text_direction(context,
+						   keyboard->serial,
+						   layout->text_direction);
 
 	widget_schedule_redraw(keyboard->keyboard->widget);
 }
 
 static void
 input_method_deactivate(void *data,
-			struct wl_input_method *input_method,
-			struct wl_input_method_context *context)
+			struct zwp_input_method_v1 *input_method,
+			struct zwp_input_method_context_v1 *context)
 {
 	struct virtual_keyboard *keyboard = data;
 
 	if (!keyboard->context)
 		return;
 
-	wl_input_method_context_destroy(keyboard->context);
+	zwp_input_method_context_v1_destroy(keyboard->context);
 	keyboard->context = NULL;
 }
 
-static const struct wl_input_method_listener input_method_listener = {
+static const struct zwp_input_method_v1_listener input_method_listener = {
 	input_method_activate,
 	input_method_deactivate
 };
@@ -930,14 +938,16 @@
 {
 	struct virtual_keyboard *keyboard = data;
 
-	if (!strcmp(interface, "wl_input_panel")) {
+	if (!strcmp(interface, "zwp_input_panel_v1")) {
 		keyboard->input_panel =
-			display_bind(display, name, &wl_input_panel_interface, 1);
-	} else if (!strcmp(interface, "wl_input_method")) {
+			display_bind(display, name, &zwp_input_panel_v1_interface, 1);
+	} else if (!strcmp(interface, "zwp_input_method_v1")) {
 		keyboard->input_method =
 			display_bind(display, name,
-				     &wl_input_method_interface, 1);
-		wl_input_method_add_listener(keyboard->input_method, &input_method_listener, keyboard);
+				     &zwp_input_method_v1_interface, 1);
+		zwp_input_method_v1_add_listener(keyboard->input_method,
+						 &input_method_listener,
+						 keyboard);
 	}
 }
 
@@ -946,7 +956,7 @@
 {
 	struct keyboard *keyboard;
 	const struct layout *layout;
-	struct wl_input_panel_surface *ips;
+	struct zwp_input_panel_surface_v1 *ips;
 
 	layout = get_current_layout(virtual_keyboard);
 
@@ -971,12 +981,12 @@
 			       layout->rows * key_height);
 
 
-	ips = wl_input_panel_get_input_panel_surface(virtual_keyboard->input_panel,
-						     window_get_wl_surface(keyboard->window));
+	ips = zwp_input_panel_v1_get_input_panel_surface(virtual_keyboard->input_panel,
+							 window_get_wl_surface(keyboard->window));
 
-	wl_input_panel_surface_set_toplevel(ips,
-					    output_get_wl_output(output),
-					    WL_INPUT_PANEL_SURFACE_POSITION_CENTER_BOTTOM);
+	zwp_input_panel_surface_v1_set_toplevel(ips,
+						output_get_wl_output(output),
+						ZWP_INPUT_PANEL_SURFACE_V1_POSITION_CENTER_BOTTOM);
 }
 
 int