On 04/11/15 09:49, Jonas Ådahl wrote: > Signed-off-by: Jonas Ådahl <[email protected]>
Reviewed-by: Jan Arne Petersen <[email protected]> > --- > Makefile.am | 17 ++- > clients/keyboard.c | 174 +++++++++++++------------- > clients/weston-simple-im.c | 122 +++++++++---------- > desktop-shell/input-panel.c | 12 +- > ivi-shell/input-panel-ivi.c | 12 +- > protocol/input-method.xml | 291 > -------------------------------------------- > src/text-backend.c | 26 ++-- > 7 files changed, 186 insertions(+), 468 deletions(-) > delete mode 100644 protocol/input-method.xml > > diff --git a/Makefile.am b/Makefile.am > index e14878e..6b2b3da 100644 > --- a/Makefile.am > +++ b/Makefile.am > @@ -119,8 +119,8 @@ nodist_weston_SOURCES = > \ > protocol/text-cursor-position-server-protocol.h \ > protocol/text-input-unstable-v1-protocol.c \ > protocol/text-input-unstable-v1-server-protocol.h \ > - protocol/input-method-protocol.c \ > - protocol/input-method-server-protocol.h \ > + protocol/input-method-unstable-v1-protocol.c \ > + protocol/input-method-unstable-v1-server-protocol.h \ > protocol/workspaces-protocol.c \ > protocol/workspaces-server-protocol.h \ > protocol/presentation-timing-unstable-v1-protocol.c \ > @@ -696,15 +696,15 @@ weston_keyboard_SOURCES = clients/keyboard.c > nodist_weston_keyboard_SOURCES = \ > protocol/desktop-shell-client-protocol.h \ > protocol/desktop-shell-protocol.c \ > - protocol/input-method-protocol.c \ > - protocol/input-method-client-protocol.h > + protocol/input-method-unstable-v1-protocol.c \ > + protocol/input-method-unstable-v1-client-protocol.h > weston_keyboard_LDADD = libtoytoolkit.la > weston_keyboard_CFLAGS = $(AM_CFLAGS) $(CLIENT_CFLAGS) > > weston_simple_im_SOURCES = clients/weston-simple-im.c > nodist_weston_simple_im_SOURCES = \ > - protocol/input-method-protocol.c \ > - protocol/input-method-client-protocol.h > + protocol/input-method-unstable-v1-protocol.c \ > + protocol/input-method-unstable-v1-client-protocol.h > weston_simple_im_LDADD = $(CLIENT_LIBS) > weston_simple_im_CFLAGS = $(AM_CFLAGS) $(CLIENT_CFLAGS) > > @@ -755,8 +755,8 @@ BUILT_SOURCES += \ > protocol/text-cursor-position-protocol.c \ > protocol/text-input-unstable-v1-protocol.c \ > protocol/text-input-unstable-v1-client-protocol.h \ > - protocol/input-method-protocol.c \ > - protocol/input-method-client-protocol.h \ > + protocol/input-method-unstable-v1-protocol.c \ > + protocol/input-method-unstable-v1-client-protocol.h \ > protocol/desktop-shell-client-protocol.h \ > protocol/desktop-shell-protocol.c \ > protocol/scaler-client-protocol.h \ > @@ -1342,7 +1342,6 @@ BUILT_SOURCES += \ > EXTRA_DIST += \ > protocol/desktop-shell.xml \ > protocol/screenshooter.xml \ > - protocol/input-method.xml \ > protocol/workspaces.xml \ > protocol/text-cursor-position.xml \ > protocol/weston-test.xml \ > diff --git a/clients/keyboard.c b/clients/keyboard.c > index 61cfda5..b524423 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 zwl_input_panel1 *input_panel; > + struct zwl_input_method1 *input_method; > + struct zwl_input_method_context1 *context; > struct display *display; > struct output *output; > char *preedit_string; > @@ -427,11 +427,11 @@ virtual_keyboard_commit_preedit(struct virtual_keyboard > *keyboard) > 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); > + zwl_input_method_context1_cursor_position(keyboard->context, > + 0, 0); > + zwl_input_method_context1_commit_string(keyboard->context, > + keyboard->serial, > + keyboard->preedit_string); > > if (keyboard->surrounding_text) { > surrounding_text = insert_text(keyboard->surrounding_text, > @@ -456,18 +456,18 @@ virtual_keyboard_send_preedit(struct virtual_keyboard > *keyboard, > 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); > + zwl_input_method_context1_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); > + zwl_input_method_context1_preedit_cursor(keyboard->context, > + index); > + zwl_input_method_context1_preedit_string(keyboard->context, > + keyboard->serial, > + keyboard->preedit_string, > + keyboard->preedit_string); > } > > static const char * > @@ -499,12 +499,12 @@ delete_before_cursor(struct virtual_keyboard *keyboard) > > 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, > - ""); > + zwl_input_method_context1_delete_surrounding_text(keyboard->context, > + (start - > keyboard->surrounding_text) - keyboard->surrounding_cursor, > + end - start); > + zwl_input_method_context1_commit_string(keyboard->context, > + keyboard->serial, > + ""); > > /* Update surrounding text */ > keyboard->surrounding_cursor = start - keyboard->surrounding_text; > @@ -571,10 +571,10 @@ keyboard_handle_key(struct keyboard *keyboard, uint32_t > time, const struct key * > 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); > + > zwl_input_method_context1_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 @@ keyboard_handle_key(struct keyboard *keyboard, uint32_t > time, const struct key * > 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); > + > zwl_input_method_context1_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); > + > zwl_input_method_context1_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); > + > zwl_input_method_context1_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); > + > zwl_input_method_context1_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); > + > zwl_input_method_context1_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 @@ touch_up_handler(struct widget *widget, struct input > *input, > > static void > handle_surrounding_text(void *data, > - struct wl_input_method_context *context, > + struct zwl_input_method_context1 *context, > const char *text, > uint32_t cursor, > uint32_t anchor) > @@ -765,7 +765,7 @@ handle_surrounding_text(void *data, > > static void > handle_reset(void *data, > - struct wl_input_method_context *context) > + struct zwl_input_method_context1 *context) > { > struct virtual_keyboard *keyboard = data; > > @@ -779,7 +779,7 @@ handle_reset(void *data, > > static void > handle_content_type(void *data, > - struct wl_input_method_context *context, > + struct zwl_input_method_context1 *context, > uint32_t hint, > uint32_t purpose) > { > @@ -791,7 +791,7 @@ handle_content_type(void *data, > > static void > handle_invoke_action(void *data, > - struct wl_input_method_context *context, > + struct zwl_input_method_context1 *context, > uint32_t button, > uint32_t index) > { > @@ -805,7 +805,7 @@ handle_invoke_action(void *data, > > static void > handle_commit_state(void *data, > - struct wl_input_method_context *context, > + struct zwl_input_method_context1 *context, > uint32_t serial) > { > struct virtual_keyboard *keyboard = data; > @@ -822,15 +822,19 @@ handle_commit_state(void *data, > 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); > + zwl_input_method_context1_language(context, > + keyboard->serial, > + layout->language); > + zwl_input_method_context1_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 zwl_input_method_context1 *context, > const char *language) > { > struct virtual_keyboard *keyboard = data; > @@ -844,7 +848,7 @@ handle_preferred_language(void *data, > keyboard->preferred_language = strdup(language); > } > > -static const struct wl_input_method_context_listener > input_method_context_listener = { > +static const struct zwl_input_method_context1_listener > input_method_context_listener = { > handle_surrounding_text, > handle_reset, > handle_content_type, > @@ -855,8 +859,8 @@ static const struct wl_input_method_context_listener > input_method_context_listen > > static void > input_method_activate(void *data, > - struct wl_input_method *input_method, > - struct wl_input_method_context *context) > + struct zwl_input_method1 *input_method, > + struct zwl_input_method_context1 *context) > { > struct virtual_keyboard *keyboard = data; > struct wl_array modifiers_map; > @@ -865,7 +869,7 @@ input_method_activate(void *data, > keyboard->keyboard->state = KEYBOARD_STATE_DEFAULT; > > if (keyboard->context) > - wl_input_method_context_destroy(keyboard->context); > + zwl_input_method_context1_destroy(keyboard->context); > > if (keyboard->preedit_string) > free(keyboard->preedit_string); > @@ -881,15 +885,15 @@ input_method_activate(void *data, > keyboard->serial = 0; > > keyboard->context = context; > - wl_input_method_context_add_listener(context, > - &input_method_context_listener, > - keyboard); > + zwl_input_method_context1_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); > + zwl_input_method_context1_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 @@ input_method_activate(void *data, > 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); > + zwl_input_method_context1_language(context, > + keyboard->serial, > + layout->language); > + zwl_input_method_context1_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 zwl_input_method1 *input_method, > + struct zwl_input_method_context1 *context) > { > struct virtual_keyboard *keyboard = data; > > if (!keyboard->context) > return; > > - wl_input_method_context_destroy(keyboard->context); > + zwl_input_method_context1_destroy(keyboard->context); > keyboard->context = NULL; > } > > -static const struct wl_input_method_listener input_method_listener = { > +static const struct zwl_input_method1_listener input_method_listener = { > input_method_activate, > input_method_deactivate > }; > @@ -930,14 +938,16 @@ global_handler(struct display *display, uint32_t name, > { > struct virtual_keyboard *keyboard = data; > > - if (!strcmp(interface, "wl_input_panel")) { > + if (!strcmp(interface, "zwl_input_panel1")) { > keyboard->input_panel = > - display_bind(display, name, &wl_input_panel_interface, > 1); > - } else if (!strcmp(interface, "wl_input_method")) { > + display_bind(display, name, > &zwl_input_panel1_interface, 1); > + } else if (!strcmp(interface, "zwl_input_method1")) { > keyboard->input_method = > display_bind(display, name, > - &wl_input_method_interface, 1); > - wl_input_method_add_listener(keyboard->input_method, > &input_method_listener, keyboard); > + &zwl_input_method1_interface, 1); > + zwl_input_method1_add_listener(keyboard->input_method, > + &input_method_listener, > + keyboard); > } > } > > @@ -946,7 +956,7 @@ keyboard_create(struct output *output, struct > virtual_keyboard *virtual_keyboard > { > struct keyboard *keyboard; > const struct layout *layout; > - struct wl_input_panel_surface *ips; > + struct zwl_input_panel_surface1 *ips; > > layout = get_current_layout(virtual_keyboard); > > @@ -971,12 +981,12 @@ keyboard_create(struct output *output, struct > virtual_keyboard *virtual_keyboard > layout->rows * key_height); > > > - ips = > wl_input_panel_get_input_panel_surface(virtual_keyboard->input_panel, > - > window_get_wl_surface(keyboard->window)); > + ips = > zwl_input_panel1_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); > + zwl_input_panel_surface1_set_toplevel(ips, > + output_get_wl_output(output), > + > ZWL_INPUT_PANEL_SURFACE1_POSITION_CENTER_BOTTOM); > } > > int > diff --git a/clients/weston-simple-im.c b/clients/weston-simple-im.c > index 0e68d48..304ba6e 100644 > --- a/clients/weston-simple-im.c > +++ b/clients/weston-simple-im.c > @@ -33,7 +33,7 @@ > #include <linux/input.h> > > #include "window.h" > -#include "input-method-client-protocol.h" > +#include "input-method-unstable-v1-client-protocol.h" > > enum compose_state { > state_normal, > @@ -54,8 +54,8 @@ typedef void (*keyboard_input_key_handler_t)(struct > simple_im *keyboard, > enum wl_keyboard_key_state state); > > struct simple_im { > - struct wl_input_method *input_method; > - struct wl_input_method_context *context; > + struct zwl_input_method1 *input_method; > + struct zwl_input_method_context1 *context; > struct wl_display *display; > struct wl_registry *registry; > struct wl_keyboard *keyboard; > @@ -105,7 +105,7 @@ static const uint32_t ignore_keys_on_compose[] = { > > static void > handle_surrounding_text(void *data, > - struct wl_input_method_context *context, > + struct zwl_input_method_context1 *context, > const char *text, > uint32_t cursor, > uint32_t anchor) > @@ -115,7 +115,7 @@ handle_surrounding_text(void *data, > > static void > handle_reset(void *data, > - struct wl_input_method_context *context) > + struct zwl_input_method_context1 *context) > { > struct simple_im *keyboard = data; > > @@ -126,7 +126,7 @@ handle_reset(void *data, > > static void > handle_content_type(void *data, > - struct wl_input_method_context *context, > + struct zwl_input_method_context1 *context, > uint32_t hint, > uint32_t purpose) > { > @@ -134,7 +134,7 @@ handle_content_type(void *data, > > static void > handle_invoke_action(void *data, > - struct wl_input_method_context *context, > + struct zwl_input_method_context1 *context, > uint32_t button, > uint32_t index) > { > @@ -142,7 +142,7 @@ handle_invoke_action(void *data, > > static void > handle_commit_state(void *data, > - struct wl_input_method_context *context, > + struct zwl_input_method_context1 *context, > uint32_t serial) > { > struct simple_im *keyboard = data; > @@ -152,12 +152,12 @@ handle_commit_state(void *data, > > static void > handle_preferred_language(void *data, > - struct wl_input_method_context *context, > + struct zwl_input_method_context1 *context, > const char *language) > { > } > > -static const struct wl_input_method_context_listener > input_method_context_listener = { > +static const struct zwl_input_method_context1_listener > input_method_context_listener = { > handle_surrounding_text, > handle_reset, > handle_content_type, > @@ -256,7 +256,7 @@ input_method_keyboard_modifiers(void *data, > uint32_t group) > { > struct simple_im *keyboard = data; > - struct wl_input_method_context *context = keyboard->context; > + struct zwl_input_method_context1 *context = keyboard->context; > xkb_mod_mask_t mask; > > xkb_state_update_mask(keyboard->state, mods_depressed, > @@ -273,9 +273,9 @@ input_method_keyboard_modifiers(void *data, > if (mask & keyboard->shift_mask) > keyboard->modifiers |= MOD_SHIFT_MASK; > > - wl_input_method_context_modifiers(context, serial, > - mods_depressed, mods_depressed, > - mods_latched, group); > + zwl_input_method_context1_modifiers(context, serial, > + mods_depressed, mods_depressed, > + mods_latched, group); > } > > static const struct wl_keyboard_listener input_method_keyboard_listener = { > @@ -288,23 +288,23 @@ static const struct wl_keyboard_listener > input_method_keyboard_listener = { > > static void > input_method_activate(void *data, > - struct wl_input_method *input_method, > - struct wl_input_method_context *context) > + struct zwl_input_method1 *input_method, > + struct zwl_input_method_context1 *context) > { > struct simple_im *keyboard = data; > > if (keyboard->context) > - wl_input_method_context_destroy(keyboard->context); > + zwl_input_method_context1_destroy(keyboard->context); > > keyboard->compose_state = state_normal; > > keyboard->serial = 0; > > keyboard->context = context; > - wl_input_method_context_add_listener(context, > + zwl_input_method_context1_add_listener(context, > &input_method_context_listener, > keyboard); > - keyboard->keyboard = wl_input_method_context_grab_keyboard(context); > + keyboard->keyboard = zwl_input_method_context1_grab_keyboard(context); > wl_keyboard_add_listener(keyboard->keyboard, > &input_method_keyboard_listener, > keyboard); > @@ -312,19 +312,19 @@ input_method_activate(void *data, > > static void > input_method_deactivate(void *data, > - struct wl_input_method *input_method, > - struct wl_input_method_context *context) > + struct zwl_input_method1 *input_method, > + struct zwl_input_method_context1 *context) > { > struct simple_im *keyboard = data; > > if (!keyboard->context) > return; > > - wl_input_method_context_destroy(keyboard->context); > + zwl_input_method_context1_destroy(keyboard->context); > keyboard->context = NULL; > } > > -static const struct wl_input_method_listener input_method_listener = { > +static const struct zwl_input_method1_listener input_method_listener = { > input_method_activate, > input_method_deactivate > }; > @@ -335,12 +335,12 @@ registry_handle_global(void *data, struct wl_registry > *registry, > { > struct simple_im *keyboard = data; > > - if (!strcmp(interface, "wl_input_method")) { > + if (!strcmp(interface, "zwl_input_method1")) { > keyboard->input_method = > wl_registry_bind(registry, name, > - &wl_input_method_interface, 1); > - wl_input_method_add_listener(keyboard->input_method, > - &input_method_listener, keyboard); > + &zwl_input_method1_interface, 1); > + zwl_input_method1_add_listener(keyboard->input_method, > + &input_method_listener, > keyboard); > } > } > > @@ -379,7 +379,7 @@ simple_im_key_handler(struct simple_im *keyboard, > uint32_t serial, uint32_t time, uint32_t key, uint32_t > sym, > enum wl_keyboard_key_state state) > { > - struct wl_input_method_context *context = keyboard->context; > + struct zwl_input_method_context1 *context = keyboard->context; > char text[64]; > > if (sym == XKB_KEY_Multi_key && > @@ -399,7 +399,7 @@ simple_im_key_handler(struct simple_im *keyboard, > > for (i = 0; i < sizeof(ignore_keys_on_compose) / > sizeof(ignore_keys_on_compose[0]); i++) { > if (sym == ignore_keys_on_compose[i]) { > - wl_input_method_context_key(context, > keyboard->serial, time, key, state); > + zwl_input_method_context1_key(context, > keyboard->serial, time, key, state); > return; > } > } > @@ -414,16 +414,16 @@ simple_im_key_handler(struct simple_im *keyboard, > > if (cs) { > if (cs->keys[i + 1] == 0) { > - > wl_input_method_context_preedit_cursor(keyboard->context, > - 0); > - > wl_input_method_context_preedit_string(keyboard->context, > - > keyboard->serial, > - "", ""); > - > wl_input_method_context_cursor_position(keyboard->context, > - 0, 0); > - > wl_input_method_context_commit_string(keyboard->context, > - > keyboard->serial, > - cs->text); > + > zwl_input_method_context1_preedit_cursor(keyboard->context, > + 0); > + > zwl_input_method_context1_preedit_string(keyboard->context, > + > keyboard->serial, > + "", > ""); > + > zwl_input_method_context1_cursor_position(keyboard->context, > + 0, 0); > + > zwl_input_method_context1_commit_string(keyboard->context, > + > keyboard->serial, > + > cs->text); > keyboard->compose_state = state_normal; > } else { > uint32_t j = 0, idx = 0; > @@ -432,12 +432,12 @@ simple_im_key_handler(struct simple_im *keyboard, > idx += xkb_keysym_to_utf8(cs->keys[j], > text + idx, sizeof(text) - idx); > } > > - > wl_input_method_context_preedit_cursor(keyboard->context, > - > strlen(text)); > - > wl_input_method_context_preedit_string(keyboard->context, > - > keyboard->serial, > - text, > - text); > + > zwl_input_method_context1_preedit_cursor(keyboard->context, > + > strlen(text)); > + > zwl_input_method_context1_preedit_string(keyboard->context, > + > keyboard->serial, > + text, > + text); > } > } else { > uint32_t j = 0, idx = 0; > @@ -445,34 +445,34 @@ simple_im_key_handler(struct simple_im *keyboard, > for (; j <= i; j++) { > idx += > xkb_keysym_to_utf8(keyboard->compose_seq.keys[j], text + idx, sizeof(text) - > idx); > } > - > wl_input_method_context_preedit_cursor(keyboard->context, > - 0); > - > wl_input_method_context_preedit_string(keyboard->context, > - keyboard->serial, > - "", ""); > - > wl_input_method_context_cursor_position(keyboard->context, > - 0, 0); > - wl_input_method_context_commit_string(keyboard->context, > - keyboard->serial, > - text); > + > zwl_input_method_context1_preedit_cursor(keyboard->context, > + 0); > + > zwl_input_method_context1_preedit_string(keyboard->context, > + > keyboard->serial, > + "", ""); > + > zwl_input_method_context1_cursor_position(keyboard->context, > + 0, 0); > + > zwl_input_method_context1_commit_string(keyboard->context, > + > keyboard->serial, > + text); > keyboard->compose_state = state_normal; > } > return; > } > > if (xkb_keysym_to_utf8(sym, text, sizeof(text)) <= 0) { > - wl_input_method_context_key(context, serial, time, key, state); > + zwl_input_method_context1_key(context, serial, time, key, > state); > return; > } > > if (state == WL_KEYBOARD_KEY_STATE_PRESSED) > return; > > - wl_input_method_context_cursor_position(keyboard->context, > - 0, 0); > - wl_input_method_context_commit_string(keyboard->context, > - keyboard->serial, > - text); > + zwl_input_method_context1_cursor_position(keyboard->context, > + 0, 0); > + zwl_input_method_context1_commit_string(keyboard->context, > + keyboard->serial, > + text); > } > > int > diff --git a/desktop-shell/input-panel.c b/desktop-shell/input-panel.c > index 95d6287..f5342aa 100644 > --- a/desktop-shell/input-panel.c > +++ b/desktop-shell/input-panel.c > @@ -31,7 +31,7 @@ > > #include "shell.h" > #include "desktop-shell-server-protocol.h" > -#include "input-method-server-protocol.h" > +#include "input-method-unstable-v1-server-protocol.h" > #include "shared/helpers.h" > > struct input_panel_surface { > @@ -290,7 +290,7 @@ input_panel_surface_set_overlay_panel(struct wl_client > *client, > input_panel_surface->panel = 1; > } > > -static const struct wl_input_panel_surface_interface > input_panel_surface_implementation = { > +static const struct zwl_input_panel_surface1_interface > input_panel_surface_implementation = { > input_panel_surface_set_toplevel, > input_panel_surface_set_overlay_panel > }; > @@ -332,14 +332,14 @@ input_panel_get_input_panel_surface(struct wl_client > *client, > > ipsurf->resource = > wl_resource_create(client, > - &wl_input_panel_surface_interface, 1, id); > + &zwl_input_panel_surface1_interface, 1, id); > wl_resource_set_implementation(ipsurf->resource, > &input_panel_surface_implementation, > ipsurf, > destroy_input_panel_surface_resource); > } > > -static const struct wl_input_panel_interface input_panel_implementation = { > +static const struct zwl_input_panel1_interface input_panel_implementation = { > input_panel_get_input_panel_surface > }; > > @@ -359,7 +359,7 @@ bind_input_panel(struct wl_client *client, > struct wl_resource *resource; > > resource = wl_resource_create(client, > - &wl_input_panel_interface, 1, id); > + &zwl_input_panel1_interface, 1, id); > > if (shell->input_panel.binding == NULL) { > wl_resource_set_implementation(resource, > @@ -398,7 +398,7 @@ input_panel_setup(struct desktop_shell *shell) > wl_list_init(&shell->input_panel.surfaces); > > if (wl_global_create(shell->compositor->wl_display, > - &wl_input_panel_interface, 1, > + &zwl_input_panel1_interface, 1, > shell, bind_input_panel) == NULL) > return -1; > > diff --git a/ivi-shell/input-panel-ivi.c b/ivi-shell/input-panel-ivi.c > index ecd497e..359bd7f 100644 > --- a/ivi-shell/input-panel-ivi.c > +++ b/ivi-shell/input-panel-ivi.c > @@ -32,7 +32,7 @@ > #include <string.h> > > #include "ivi-shell.h" > -#include "input-method-server-protocol.h" > +#include "input-method-unstable-v1-server-protocol.h" > #include "ivi-layout-private.h" > #include "shared/helpers.h" > > @@ -282,7 +282,7 @@ input_panel_surface_set_overlay_panel(struct wl_client > *client, > input_panel_surface->panel = 1; > } > > -static const struct wl_input_panel_surface_interface > input_panel_surface_implementation = { > +static const struct zwl_input_panel_surface1_interface > input_panel_surface_implementation = { > input_panel_surface_set_toplevel, > input_panel_surface_set_overlay_panel > }; > @@ -324,14 +324,14 @@ input_panel_get_input_panel_surface(struct wl_client > *client, > > ipsurf->resource = > wl_resource_create(client, > - &wl_input_panel_surface_interface, 1, id); > + &zwl_input_panel_surface1_interface, 1, id); > wl_resource_set_implementation(ipsurf->resource, > &input_panel_surface_implementation, > ipsurf, > destroy_input_panel_surface_resource); > } > > -static const struct wl_input_panel_interface input_panel_implementation = { > +static const struct zwl_input_panel1_interface input_panel_implementation = { > input_panel_get_input_panel_surface > }; > > @@ -351,7 +351,7 @@ bind_input_panel(struct wl_client *client, > struct wl_resource *resource; > > resource = wl_resource_create(client, > - &wl_input_panel_interface, 1, id); > + &zwl_input_panel1_interface, 1, id); > > if (shell->input_panel.binding == NULL) { > wl_resource_set_implementation(resource, > @@ -390,7 +390,7 @@ input_panel_setup(struct ivi_shell *shell) > wl_list_init(&shell->input_panel.surfaces); > > if (wl_global_create(shell->compositor->wl_display, > - &wl_input_panel_interface, 1, > + &zwl_input_panel1_interface, 1, > shell, bind_input_panel) == NULL) > return -1; > > diff --git a/protocol/input-method.xml b/protocol/input-method.xml > deleted file mode 100644 > index 657230c..0000000 > --- a/protocol/input-method.xml > +++ /dev/null > @@ -1,291 +0,0 @@ > -<?xml version="1.0" encoding="UTF-8"?> > -<protocol name="input_method"> > - > - <copyright> > - Copyright © 2012, 2013 Intel Corporation > - > - Permission is hereby granted, free of charge, to any person obtaining a > - copy of this software and associated documentation files (the > "Software"), > - to deal in the Software without restriction, including without limitation > - the rights to use, copy, modify, merge, publish, distribute, sublicense, > - and/or sell copies of the Software, and to permit persons to whom the > - Software is furnished to do so, subject to the following conditions: > - > - The above copyright notice and this permission notice (including the next > - paragraph) shall be included in all copies or substantial portions of the > - Software. > - > - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS > OR > - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > - THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR > OTHER > - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER > - DEALINGS IN THE SOFTWARE. > - </copyright> > - > - <interface name="wl_input_method_context" version="1"> > - <description summary="input method context"> > - Corresponds to a text input on input method side. An input method > context > - is created on text input activation on the input method side. It > allows to > - receive information about the text input from the application via > events. > - Input method contexts do not keep state after deactivation and should > be > - destroyed after deactivation is handled. > - > - Text is generally UTF-8 encoded, indices and lengths are in bytes. > - > - Serials are used to synchronize the state between the text input and > - an input method. New serials are sent by the text input in the > - commit_state request and are used by the input method to indicate > - the known text input state in events like preedit_string, > commit_string, > - and keysym. The text input can then ignore events from the input method > - which are based on an outdated state (for example after a reset). > - </description> > - > - <request name="destroy" type="destructor"/> > - > - <request name="commit_string"> > - <description summary="commit string"> > - Send the commit string text for insertion to the application. > - > - The text to commit could be either just a single character after a > key > - press or the result of some composing (pre-edit). It could be also an > - empty text when some text should be removed (see > - delete_surrounding_text) or when the input cursor should be moved > (see > - cursor_position). > - > - Any previously set composing text will be removed. > - </description> > - <arg name="serial" type="uint" summary="serial of the latest known > text input state"/> > - <arg name="text" type="string"/> > - </request> > - > - <request name="preedit_string"> > - <description summary="pre-edit string"> > - Send the pre-edit string text to the application text input. > - > - The commit text can be used to replace the preedit text on reset (for > - example on unfocus). > - > - Also previously sent preedit_style and preedit_cursor requests are > - processed bt the text_input also. > - </description> > - <arg name="serial" type="uint" summary="serial of the latest known > text input state"/> > - <arg name="text" type="string"/> > - <arg name="commit" type="string"/> > - </request> > - > - <request name="preedit_styling"> > - <description summary="pre-edit styling"> > - Sets styling information on composing text. The style is applied for > - length in bytes from index relative to the beginning of > - the composing text (as byte offset). Multiple styles can > - be applied to a composing text. > - > - This request should be sent before sending preedit_string request. > - </description> > - <arg name="index" type="uint"/> > - <arg name="length" type="uint"/> > - <arg name="style" type="uint"/> > - </request> > - > - <request name="preedit_cursor"> > - <description summary="pre-edit cursor"> > - Sets the cursor position inside the composing text (as byte offset) > - relative to the start of the composing text. > - > - When index is negative no cursor should be displayed. > - > - This request should be sent before sending preedit_string request. > - </description> > - <arg name="index" type="int"/> > - </request> > - > - <request name="delete_surrounding_text"> > - <description summary="delete text"> > - This request will be handled on text_input side as part of a directly > - following commit_string request. > - </description> > - <arg name="index" type="int"/> > - <arg name="length" type="uint"/> > - </request> > - > - <request name="cursor_position"> > - <description summary="set cursor to a new position"> > - Sets the cursor and anchor to a new position. Index is the new cursor > - position in bytes (when >= 0 relative to the end of inserted text > - else relative to beginning of inserted text). Anchor is the new > anchor > - position in bytes (when >= 0 relative to the end of inserted text, > else > - relative to beginning of inserted text). When there should be no > - selected text anchor should be the same as index. > - > - This request will be handled on text_input side as part of a directly > - following commit_string request. > - </description> > - <arg name="index" type="int"/> > - <arg name="anchor" type="int"/> > - </request> > - > - <request name="modifiers_map"> > - <arg name="map" type="array"/> > - </request> > - > - <request name="keysym"> > - <description summary="keysym"> > - Notify when a key event was sent. Key events should not be used for > - normal text input operations, which should be done with > commit_string, > - delete_surrounfing_text, etc. The key event follows the wl_keyboard > key > - event convention. Sym is a XKB keysym, state a wl_keyboard key_state. > - </description> > - <arg name="serial" type="uint" summary="serial of the latest known > text input state"/> > - <arg name="time" type="uint"/> > - <arg name="sym" type="uint"/> > - <arg name="state" type="uint"/> > - <arg name="modifiers" type="uint"/> > - </request> > - > - <request name="grab_keyboard"> > - <description summary="grab hardware keyboard"> > - Allows an input method to receive hardware keyboard input and process > - key events to generate text events (with pre-edit) over the wire. > This > - allows input methods which compose multiple key events for inputting > - text like it is done for CJK languages. > - </description> > - <arg name="keyboard" type="new_id" interface="wl_keyboard"/> > - </request> > - > - <request name="key"> > - <description summary="forward key event"> > - Should be used when filtering key events with grab_keyboard. > - > - When the wl_keyboard::key event is not processed by the input > - method itself and should be sent to the client instead, forward it > - with this request. The arguments should be the ones from the > - wl_keyboard::key event. > - > - For generating custom key events use the keysym request instead. > - </description> > - <arg name="serial" type="uint" summary="serial from wl_keyboard::key"/> > - <arg name="time" type="uint" summary="time from wl_keyboard::key"/> > - <arg name="key" type="uint" summary="key from wl_keyboard::key"/> > - <arg name="state" type="uint" summary="state from wl_keyboard::key"/> > - </request> > - > - <request name="modifiers"> > - <description summary="forward modifiers event"> > - Should be used when filtering key events with grab_keyboard. > - > - When the wl_keyboard::modifiers event should be also send to the > - client, forward it with this request. The arguments should be the > ones > - from the wl_keyboard::modifiers event. > - </description> > - <arg name="serial" type="uint" summary="serial from > wl_keyboard::modifiers"/> > - <arg name="mods_depressed" type="uint" summary="mods_depressed from > wl_keyboard::modifiers"/> > - <arg name="mods_latched" type="uint" summary="mods_latched from > wl_keyboard::modifiers"/> > - <arg name="mods_locked" type="uint" summary="mods_locked from > wl_keyboard::modifiers"/> > - <arg name="group" type="uint" summary="group from > wl_keyboard::modifiers"/> > - </request> > - > - <request name="language"> > - <arg name="serial" type="uint" summary="serial of the latest known > text input state"/> > - <arg name="language" type="string"/> > - </request> > - <request name="text_direction"> > - <arg name="serial" type="uint" summary="serial of the latest known > text input state"/> > - <arg name="direction" type="uint"/> > - </request> > - > - <event name="surrounding_text"> > - <description summary="surrounding text event"> > - The plain surrounding text around the input position. Cursor is the > - position in bytes within the surrounding text relative to the > beginning > - of the text. Anchor is the position in bytes of the selection anchor > - within the surrounding text relative to the beginning of the text. If > - there is no selected text anchor is the same as cursor. > - </description> > - <arg name="text" type="string"/> > - <arg name="cursor" type="uint"/> > - <arg name="anchor" type="uint"/> > - </event> > - > - <event name="reset"> > - </event> > - > - <event name="content_type"> > - <arg name="hint" type="uint"/> > - <arg name="purpose" type="uint"/> > - </event> > - > - <event name="invoke_action"> > - <arg name="button" type="uint"/> > - <arg name="index" type="uint"/> > - </event> > - > - <event name="commit_state"> > - <arg name="serial" type="uint" summary="serial of text input state"/> > - </event> > - > - <event name="preferred_language"> > - <arg name="language" type="string"/> > - </event> > - </interface> > - > - <interface name="wl_input_method" version="1"> > - <description summary="input method"> > - An input method object is responsible to compose text in response to > - input from hardware or virtual keyboards. There is one input method > - object per seat. On activate there is a new input method context object > - created which allows the input method to communicate with the text > input. > - </description> > - > - <event name="activate"> > - <description summary="activate event"> > - A text input was activated. Creates an input method context object > - which allows communication with the text input. > - </description> > - <arg name="id" type="new_id" interface="wl_input_method_context"/> > - </event> > - > - <event name="deactivate"> > - <description summary="deactivate event"> > - The text input corresponding to the context argument was deactivated. > - The input method context should be destroyed after deactivation is > - handled. > - </description> > - <arg name="context" type="object" interface="wl_input_method_context"/> > - </event> > - </interface> > - > - <interface name="wl_input_panel" version="1"> > - <description summary="interface for implementing keyboards"> > - Only one client can bind this interface at a time. > - </description> > - > - <request name="get_input_panel_surface"> > - <arg name="id" type="new_id" interface="wl_input_panel_surface"/> > - <arg name="surface" type="object" interface="wl_surface"/> > - </request> > - </interface> > - > - <interface name="wl_input_panel_surface" version="1"> > - <enum name="position"> > - <entry name="center_bottom" value="0"/> > - </enum> > - > - <request name="set_toplevel"> > - <description summary="set the surface type as a keyboard"> > - A keyboard surface is only shown when a text input is active. > - </description> > - <arg name="output" type="object" interface="wl_output"/> > - <arg name="position" type="uint"/> > - </request> > - > - <request name="set_overlay_panel"> > - <description summary="set the surface type as an overlay panel"> > - An overlay panel is shown near the input cursor above the application > - window when a text input is active. > - </description> > - </request> > - </interface> > - > -</protocol> > diff --git a/src/text-backend.c b/src/text-backend.c > index 5227b97..9fb5bef 100644 > --- a/src/text-backend.c > +++ b/src/text-backend.c > @@ -34,7 +34,7 @@ > > #include "compositor.h" > #include "text-input-unstable-v1-server-protocol.h" > -#include "input-method-server-protocol.h" > +#include "input-method-unstable-v1-server-protocol.h" > #include "shared/helpers.h" > > struct text_input_manager; > @@ -127,7 +127,7 @@ deactivate_input_method(struct input_method *input_method) > > if (input_method->context && input_method->input_method_binding) { > input_method_context_end_keyboard_grab(input_method->context); > - wl_input_method_send_deactivate( > + zwl_input_method1_send_deactivate( > input_method->input_method_binding, > input_method->context->resource); > } > @@ -172,7 +172,7 @@ text_input_set_surrounding_text(struct wl_client *client, > &text_input->input_methods, link) { > if (!input_method->context) > continue; > - wl_input_method_context_send_surrounding_text( > + zwl_input_method_context1_send_surrounding_text( > input_method->context->resource, text, cursor, anchor); > } > } > @@ -245,7 +245,7 @@ text_input_reset(struct wl_client *client, > &text_input->input_methods, link) { > if (!input_method->context) > continue; > - wl_input_method_context_send_reset( > + zwl_input_method_context1_send_reset( > input_method->context->resource); > } > } > @@ -283,7 +283,7 @@ text_input_set_content_type(struct wl_client *client, > &text_input->input_methods, link) { > if (!input_method->context) > continue; > - wl_input_method_context_send_content_type( > + zwl_input_method_context1_send_content_type( > input_method->context->resource, hint, purpose); > } > } > @@ -301,7 +301,7 @@ text_input_invoke_action(struct wl_client *client, > &text_input->input_methods, link) { > if (!input_method->context) > continue; > - wl_input_method_context_send_invoke_action( > + zwl_input_method_context1_send_invoke_action( > input_method->context->resource, button, index); > } > } > @@ -318,7 +318,7 @@ text_input_commit_state(struct wl_client *client, > &text_input->input_methods, link) { > if (!input_method->context) > continue; > - wl_input_method_context_send_commit_state( > + zwl_input_method_context1_send_commit_state( > input_method->context->resource, serial); > } > } > @@ -368,7 +368,7 @@ text_input_set_preferred_language(struct wl_client > *client, > &text_input->input_methods, link) { > if (!input_method->context) > continue; > - wl_input_method_context_send_preferred_language( > + zwl_input_method_context1_send_preferred_language( > input_method->context->resource, language); > } > } > @@ -745,7 +745,7 @@ input_method_context_text_direction(struct wl_client > *client, > } > > > -static const struct wl_input_method_context_interface context_implementation > = { > +static const struct zwl_input_method_context1_interface > context_implementation = { > input_method_context_destroy, > input_method_context_commit_string, > input_method_context_preedit_string, > @@ -794,7 +794,7 @@ input_method_context_create(struct text_input *input, > binding = input_method->input_method_binding; > context->resource = > wl_resource_create(wl_resource_get_client(binding), > - &wl_input_method_context_interface, 1, 0); > + &zwl_input_method_context1_interface, 1, 0); > wl_resource_set_implementation(context->resource, > &context_implementation, > context, destroy_input_method_context); > @@ -804,7 +804,7 @@ input_method_context_create(struct text_input *input, > input_method->context = context; > > > - wl_input_method_send_activate(binding, context->resource); > + zwl_input_method1_send_activate(binding, context->resource); > } > > static void > @@ -848,7 +848,7 @@ bind_input_method(struct wl_client *client, > struct wl_resource *resource; > > resource = > - wl_resource_create(client, &wl_input_method_interface, 1, id); > + wl_resource_create(client, &zwl_input_method1_interface, 1, id); > > if (input_method->input_method_binding != NULL) { > wl_resource_post_error(resource, > @@ -999,7 +999,7 @@ text_backend_seat_created(struct text_backend > *text_backend, > input_method->text_backend = text_backend; > > input_method->input_method_global = > - wl_global_create(ec->wl_display, &wl_input_method_interface, 1, > + wl_global_create(ec->wl_display, &zwl_input_method1_interface, > 1, > input_method, bind_input_method); > > input_method->destroy_listener.notify = input_method_notifier_destroy; > -- Jan Arne Petersen | [email protected] | Senior Software Engineer KDAB (Deutschland) GmbH&Co KG, a KDAB Group company Tel: +49-30-521325470 KDAB - The Qt Experts _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
