Implement set capital mode protocols 12/93712/3
authorLi Zhang <li2012.zhang@samsung.com>
Tue, 25 Oct 2016 10:48:16 +0000 (18:48 +0800)
committerJihoon Kim <jihoon48.kim@samsung.com>
Mon, 31 Oct 2016 04:41:04 +0000 (13:41 +0900)
Change-Id: I96837a879c4b5a2e74981091e8550222d6be430e

src/e_mod_main.c

index 326a2c6..b41bd69 100644 (file)
@@ -1633,6 +1633,29 @@ _e_text_input_cb_get_hide_permission(struct wl_client *client EINA_UNUSED, struc
 }
 
 static void
+_e_text_input_cb_set_capital_mode(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, uint32_t mode)
+{
+   E_Text_Input *text_input = wl_resource_get_user_data(resource);
+   E_Input_Method *input_method = NULL;
+   Eina_List *l = NULL;
+
+   if (!text_input)
+     {
+        wl_resource_post_error(resource,
+                               WL_DISPLAY_ERROR_INVALID_OBJECT,
+                               "No Text Input For Resource");
+        return;
+     }
+
+   EINA_LIST_FOREACH(text_input->input_methods, l, input_method)
+     {
+        if (!input_method || !input_method->context) continue;
+        if (input_method->context->resource)
+          wl_input_method_context_send_capital_mode(input_method->context->resource, mode);
+     }
+}
+
+static void
 _e_text_input_cb_resource_destroy(struct wl_resource *resource)
 {
    E_Text_Input *text_input = wl_resource_get_user_data(resource);
@@ -1692,7 +1715,8 @@ static const struct wl_text_input_interface _e_text_input_implementation = {
      _e_text_input_cb_process_input_device_event,
      _e_text_input_cb_filter_key_event,
      _e_text_input_cb_reset_sync,
-     _e_text_input_cb_get_hide_permission
+     _e_text_input_cb_get_hide_permission,
+     _e_text_input_cb_set_capital_mode
 };
 
 static void