Add return_key_type in remote_control_entry_metadata 26/188826/1
authorInHong Han <inhong1.han@samsung.com>
Tue, 11 Sep 2018 01:44:37 +0000 (10:44 +0900)
committerInHong Han <inhong1.han@samsung.com>
Tue, 11 Sep 2018 01:44:37 +0000 (10:44 +0900)
Change-Id: I84a7dbd676e2424901e5f9f911ad026e47567066

13 files changed:
ism/modules/panelagent/ecoresocket/ecore_socket_panel_agent_module.cpp
ism/modules/panelagent/wayland/isf_wsc_context.h
ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp
ism/src/isf_info_manager.cpp
ism/src/isf_info_manager.h
ism/src/isf_panel_agent_base.cpp
ism/src/isf_panel_agent_base.h
ism/src/isf_panel_agent_manager.cpp
ism/src/isf_panel_agent_manager.h
ism/src/isf_remote_client.cpp
ism/src/isf_remote_client.h
ism/src/isf_remote_control.cpp
ism/src/isf_remote_control.h

index dbdc1ef..f4e2dff 100644 (file)
@@ -1146,7 +1146,7 @@ private:
         }
     }
 
-    void socket_remoteinput_entry_metadata (int client, uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled) {
+    void socket_remoteinput_entry_metadata (int client, uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled, uint32 return_key_type) {
         SCIM_DEBUG_MAIN(4) << __FUNCTION__ << "...\n";
         LOGD ("client id:%d", client);
 
@@ -1164,6 +1164,7 @@ private:
             m_send_trans.put_data(variation);
             m_send_trans.put_data(autocapital_type);
             m_send_trans.put_data(return_key_disabled);
+            m_send_trans.put_data(return_key_type);
             m_send_trans.write_to_socket(client_socket);
         }
     }
index 6342432..1380f0b 100644 (file)
@@ -168,7 +168,8 @@ void isf_wsc_context_bidi_direction_set (WSCContextISF* wsc_ctx, Ecore_IMF_BiDi_
 void isf_wsc_context_send_surrounding_text (WSCContextISF* wsc_ctx, const char *text, int cursor);
 void isf_wsc_context_send_entry_metadata (WSCContextISF* wsc_ctx, Ecore_IMF_Input_Hints hint,
                                           Ecore_IMF_Input_Panel_Layout layout, int variation,
-                                          Ecore_IMF_Autocapital_Type type, int return_key_disabled);
+                                          Ecore_IMF_Autocapital_Type type, int return_key_disabled,
+                                          Ecore_IMF_Input_Panel_Return_Key_Type return_key_type);
 
 #if !(ENABLE_GRAB_KEYBOARD)
 void isf_wsc_context_filter_key_event (WSCContextISF* wsc_ctx,
index 15e99fe..6a11640 100644 (file)
@@ -88,6 +88,7 @@ struct _WSCContextISFImpl {
     Ecore_IMF_Input_Hints    input_hint;
     Ecore_IMF_BiDi_Direction bidi_direction;
     Ecore_IMF_Input_Panel_Layout panel_layout;
+    Ecore_IMF_Input_Panel_Return_Key_Type return_key_type;
     String                   mime_type;
     void                    *imdata;
     int                      imdata_size;
@@ -117,6 +118,7 @@ struct _WSCContextISFImpl {
                            input_hint(ECORE_IMF_INPUT_HINT_NONE),
                            bidi_direction(ECORE_IMF_BIDI_DIRECTION_NEUTRAL),
                            panel_layout(ECORE_IMF_INPUT_PANEL_LAYOUT_NORMAL),
+                           return_key_type(ECORE_IMF_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT),
                            imdata(NULL),
                            imdata_size(0),
                            preedit_caret(0),
@@ -305,7 +307,8 @@ _wsc_im_ctx_content_type (void *data, struct wl_input_method_context *im_ctx, ui
 
     if (_TV) {
         isf_wsc_context_send_entry_metadata (wsc_ctx, wsc_context_input_hint_get (wsc_ctx), wsc_context_input_panel_layout_get (wsc_ctx),
-                wsc_context_input_panel_layout_variation_get (wsc_ctx), wsc_context_autocapital_type_get (wsc_ctx), wsc_ctx->return_key_disabled);
+                wsc_context_input_panel_layout_variation_get (wsc_ctx), wsc_context_autocapital_type_get (wsc_ctx), wsc_ctx->return_key_disabled,
+                (Ecore_IMF_Input_Panel_Return_Key_Type)wsc_ctx->return_key_type);
     }
 }
 
@@ -366,6 +369,10 @@ _wsc_im_ctx_return_key_type (void *data, struct wl_input_method_context *im_ctx,
     if (wsc_ctx->return_key_type != return_key_type) {
         wsc_ctx->return_key_type = return_key_type;
         isf_wsc_context_input_panel_return_key_type_set (wsc_ctx, (Ecore_IMF_Input_Panel_Return_Key_Type)wsc_ctx->return_key_type);
+        if (_TV)
+            isf_wsc_context_send_entry_metadata (wsc_ctx, wsc_context_input_hint_get (wsc_ctx), wsc_context_input_panel_layout_get (wsc_ctx),
+                    wsc_context_input_panel_layout_variation_get (wsc_ctx), wsc_context_autocapital_type_get (wsc_ctx), wsc_ctx->return_key_disabled,
+                    (Ecore_IMF_Input_Panel_Return_Key_Type)wsc_ctx->return_key_type);
     }
 }
 
@@ -383,7 +390,8 @@ _wsc_im_ctx_return_key_disabled (void *data, struct wl_input_method_context *im_
         isf_wsc_context_input_panel_return_key_disabled_set (wsc_ctx, wsc_ctx->return_key_disabled);
         if (_TV)
             isf_wsc_context_send_entry_metadata (wsc_ctx, wsc_context_input_hint_get (wsc_ctx), wsc_context_input_panel_layout_get (wsc_ctx),
-                    wsc_context_input_panel_layout_variation_get (wsc_ctx), wsc_context_autocapital_type_get (wsc_ctx), wsc_ctx->return_key_disabled);
+                    wsc_context_input_panel_layout_variation_get (wsc_ctx), wsc_context_autocapital_type_get (wsc_ctx), wsc_ctx->return_key_disabled,
+                    (Ecore_IMF_Input_Panel_Return_Key_Type)wsc_ctx->return_key_type);
     }
 }
 
@@ -1586,7 +1594,8 @@ isf_wsc_context_send_surrounding_text (WSCContextISF* wsc_ctx, const char *text,
 void
 isf_wsc_context_send_entry_metadata (WSCContextISF* wsc_ctx, Ecore_IMF_Input_Hints hint,
                                      Ecore_IMF_Input_Panel_Layout layout, int variation,
-                                     Ecore_IMF_Autocapital_Type type, int return_key_disabled)
+                                     Ecore_IMF_Autocapital_Type type, int return_key_disabled,
+                                     Ecore_IMF_Input_Panel_Return_Key_Type return_key_type)
 {
     SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
 
@@ -1595,7 +1604,7 @@ isf_wsc_context_send_entry_metadata (WSCContextISF* wsc_ctx, Ecore_IMF_Input_Hin
     if (context_scim && context_scim->impl) {
         if (!context_scim->impl->init_remote_entry_metadata || (context_scim->impl->input_hint != hint || context_scim->impl->panel_layout != layout ||
             context_scim->impl->variation != variation || context_scim->impl->autocapital_type != type ||
-            context_scim->impl->return_key_disabled != return_key_disabled)) {
+            context_scim->impl->return_key_disabled != return_key_disabled || context_scim->impl->return_key_type != return_key_type)) {
             if (context_scim->impl->panel_layout != layout || context_scim->impl->variation != variation) {
                 if (context_scim->impl->input_resource == INPUT_RESOURCE_REMOTE)
                     context_scim->impl->input_resource = INPUT_RESOURCE_NONE;
@@ -1606,10 +1615,12 @@ isf_wsc_context_send_entry_metadata (WSCContextISF* wsc_ctx, Ecore_IMF_Input_Hin
             context_scim->impl->variation = variation;
             context_scim->impl->autocapital_type = type;
             context_scim->impl->return_key_disabled = return_key_disabled;
+            context_scim->impl->return_key_type = return_key_type;
 
             if (_TV)
                 g_info_manager->remoteinput_callback_entry_metadata (context_scim->impl->input_hint, context_scim->impl->panel_layout,
-                        context_scim->impl->variation, context_scim->impl->autocapital_type, context_scim->impl->return_key_disabled);
+                        context_scim->impl->variation, context_scim->impl->autocapital_type, context_scim->impl->return_key_disabled,
+                        context_scim->impl->return_key_type);
 
             context_scim->impl->init_remote_entry_metadata = true;
 
@@ -3506,7 +3517,8 @@ public:
 
         if (_TV) {
             isf_wsc_context_send_entry_metadata (ic, wsc_context_input_hint_get (ic),  wsc_context_input_panel_layout_get (ic),
-                    wsc_context_input_panel_layout_variation_get (ic), wsc_context_autocapital_type_get (ic), ic->return_key_disabled);
+                    wsc_context_input_panel_layout_variation_get (ic), wsc_context_autocapital_type_get (ic), ic->return_key_disabled,
+                    (Ecore_IMF_Input_Panel_Return_Key_Type)ic->return_key_type);
         }
     }
 
index 1fb3fc6..b01ec56 100644 (file)
@@ -3113,11 +3113,12 @@ client context helpers: %d, helpers uuid count: %d",
         }
     }
 
-    void remoteinput_callback_entry_metadata (uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled) {
+    void remoteinput_callback_entry_metadata (uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled, uint32 return_key_type) {
         SCIM_DEBUG_MAIN (4) << __FUNCTION__ << "...\n";
         if (m_ise_context_buffer != NULL && m_ise_context_length > 0) {
             Ise_Context *iseContext = reinterpret_cast<Ise_Context *>(m_ise_context_buffer);
             iseContext->layout = static_cast<Ecore_IMF_Input_Panel_Layout>(layout);
+            iseContext->return_key_type = static_cast<Ecore_IMF_Input_Panel_Return_Key_Type>(return_key_type);
             iseContext->return_key_disabled = static_cast<Eina_Bool>(return_key_disabled);
             iseContext->layout_variation = static_cast<int>(variation);
             iseContext->autocapital_type = static_cast<Ecore_IMF_Autocapital_Type>(autocapital_type);
@@ -3125,7 +3126,7 @@ client context helpers: %d, helpers uuid count: %d",
         }
         for (unsigned int i = 0; i < m_current_recv_remoteinput_id.size (); i++) {
             lock();
-            m_panel_agent_manager.socket_remoteinput_entry_metadata (m_current_recv_remoteinput_id.at (i), hint, layout, variation, autocapital_type, return_key_disabled);
+            m_panel_agent_manager.socket_remoteinput_entry_metadata (m_current_recv_remoteinput_id.at (i), hint, layout, variation, autocapital_type, return_key_disabled, return_key_type);
             unlock ();
         }
     }
@@ -5120,9 +5121,9 @@ void InfoManager::remoteinput_callback_focus_out (void)
     m_impl->remoteinput_callback_focus_out ();
 }
 
-void InfoManager::remoteinput_callback_entry_metadata (uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled)
+void InfoManager::remoteinput_callback_entry_metadata (uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled, uint32 return_key_type)
 {
-    m_impl->remoteinput_callback_entry_metadata (hint, layout, variation, autocapital_type, return_key_disabled);
+    m_impl->remoteinput_callback_entry_metadata (hint, layout, variation, autocapital_type, return_key_disabled, return_key_type);
 }
 
 void InfoManager::remoteinput_callback_surrounding_text (String text, uint32 cursor)
index 54b3851..2a83785 100644 (file)
@@ -587,7 +587,7 @@ public:
 
     void remoteinput_callback_focus_out (void);
 
-    void remoteinput_callback_entry_metadata (uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled);
+    void remoteinput_callback_entry_metadata (uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled, uint32 return_key_type);
 
     void remoteinput_callback_surrounding_text (String text, uint32 cursor);
 
index 77b2339..c50e338 100644 (file)
@@ -333,7 +333,7 @@ void PanelAgentBase::socket_remoteinput_focus_out (int client)
 {
 }
 
-void PanelAgentBase::socket_remoteinput_entry_metadata (int client, uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled)
+void PanelAgentBase::socket_remoteinput_entry_metadata (int client, uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled, uint32 return_key_type)
 {
 }
 
index ccc3d8c..b83cabd 100644 (file)
@@ -635,7 +635,7 @@ public:
      *
      * @return none.
      */
-    virtual void socket_remoteinput_entry_metadata (int client, uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled);
+    virtual void socket_remoteinput_entry_metadata (int client, uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled, uint32 return_key_type);
 
     /**
      * @brief socket_remoteinput_surrounding_text.
index 961396d..3e7fbf9 100644 (file)
@@ -644,12 +644,12 @@ void PanelAgentManager::socket_remoteinput_focus_out (int id)
         _p->socket_remoteinput_focus_out (id);
 }
 
-void PanelAgentManager::socket_remoteinput_entry_metadata (int id, uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled)
+void PanelAgentManager::socket_remoteinput_entry_metadata (int id, uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled, uint32 return_key_type)
 {
     PanelAgentPointer _p = m_impl->get_panel_agent_by_id (id);
 
     if (!_p.null ())
-        _p->socket_remoteinput_entry_metadata (id, hint, layout, variation, autocapital_type, return_key_disabled);
+        _p->socket_remoteinput_entry_metadata (id, hint, layout, variation, autocapital_type, return_key_disabled, return_key_type);
 }
 
 void PanelAgentManager::socket_remoteinput_surrounding_text (int id, String& text, uint32 cursor)
index 5ddfb77..2bf5d14 100644 (file)
@@ -324,7 +324,7 @@ public:
     void socket_update_surrounding_text (int client, uint32 context, const String& uuid, String& text, uint32 cursor);
     void socket_remoteinput_focus_in (int client);
     void socket_remoteinput_focus_out (int client);
-    void socket_remoteinput_entry_metadata (int client, uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled);
+    void socket_remoteinput_entry_metadata (int client, uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled, uint32 return_key_type);
     void socket_remoteinput_surrounding_text (int client, String& text, uint32 cursor);
     void socket_remoteinput_input_resource (int client, uint32 input_resource);
     void socket_update_selection (int client, uint32 context, String& uuid, String text);
index a3d2062..35348b4 100644 (file)
@@ -142,7 +142,7 @@ class RemoteInputClient::RemoteInputClientImpl
     RemoteInputClientSignalVoid                 m_signal_hide_ise;
 
     String m_surrounding_text;
-    uint32 m_hint, m_cursor, m_layout, m_variation, m_autocapital_type, m_input_resource, m_return_key_disabled;
+    uint32 m_hint, m_cursor, m_layout, m_variation, m_autocapital_type, m_input_resource, m_return_key_disabled, m_return_key_type;
 
 public:
     RemoteInputClientImpl ()
@@ -156,7 +156,8 @@ public:
             m_variation (0),
             m_autocapital_type (0),
             m_input_resource (0),
-            m_return_key_disabled (0) {
+            m_return_key_disabled (0),
+            m_return_key_type (0) {
     }
 
     int open_connection (void) {
@@ -349,7 +350,7 @@ public:
                     type = REMOTE_CONTROL_CALLBACK_ENTRY_METADATA;
 
                     if (m_trans_recv.get_data (m_hint) && m_trans_recv.get_data (m_layout) && m_trans_recv.get_data (m_variation) &&
-                        m_trans_recv.get_data (m_autocapital_type) && m_trans_recv.get_data (m_return_key_disabled)) {
+                        m_trans_recv.get_data (m_autocapital_type) && m_trans_recv.get_data (m_return_key_disabled) && m_trans_recv.get_data (m_return_key_type)) {
                     }
                     else
                         LOGW ("wrong format of transaction");
@@ -382,12 +383,13 @@ public:
         return type;
     }
 
-    void get_entry_metadata (int *hint, int *layout, int *variation, int *autocapital_type, int *return_key_disabled) {
+    void get_entry_metadata (int *hint, int *layout, int *variation, int *autocapital_type, int *return_key_disabled, int *return_key_type) {
         *hint = m_hint;
         *layout = m_layout;
         *variation = m_variation;
         *autocapital_type = m_autocapital_type;
         *return_key_disabled = m_return_key_disabled;
+        *return_key_type = m_return_key_type;
     }
 
     void get_surrounding_text (String &surrounding_text, int *cursor) {
@@ -465,9 +467,9 @@ RemoteInputClient::recv_callback_message (void)
 }
 
 void
-RemoteInputClient::get_entry_metadata (int *hint, int *layout, int *variation, int *autocapital_type, int *return_key_disabled)
+RemoteInputClient::get_entry_metadata (int *hint, int *layout, int *variation, int *autocapital_type, int *return_key_disabled, int *return_key_type)
 {
-    m_impl->get_entry_metadata (hint, layout, variation, autocapital_type, return_key_disabled);
+    m_impl->get_entry_metadata (hint, layout, variation, autocapital_type, return_key_disabled, return_key_type);
 }
 
 void
index e7e9883..6bd88f7 100644 (file)
@@ -63,7 +63,7 @@ public:
     remote_client_error_type check_privilege        (void);
     remote_client_error_type delete_surrounding_text(int offset, int len);
     remote_control_callback_type recv_callback_message (void);
-    void get_entry_metadata (int *hint, int *layout, int *variation, int *autocapital_type, int *return_key_disabled);
+    void get_entry_metadata (int *hint, int *layout, int *variation, int *autocapital_type, int *return_key_disabled, int *return_key_type);
     void get_surrounding_text (String &default_text, int *cursor);
     void get_input_resource (int *input_resource);
 };
index b08af61..bffc1bd 100644 (file)
@@ -85,17 +85,18 @@ remote_handler(GIOChannel *source, GIOCondition condition, gpointer user_data)
                 {
                     if (focus_flag) {
                         remote_control_entry_metadata_s *data = new remote_control_entry_metadata_s;
-                        int hint = 0, layout = 0, variation = 0, autocapital_type = 0, return_key_disabled = 0;
+                        int hint = 0, layout = 0, variation = 0, autocapital_type = 0, return_key_disabled = 0, return_key_type = 0;
 
-                        client->remote_client->get_entry_metadata (&hint, &layout, &variation, &autocapital_type, &return_key_disabled);
+                        client->remote_client->get_entry_metadata (&hint, &layout, &variation, &autocapital_type, &return_key_disabled, &return_key_type);
                         data->hint = static_cast<Ecore_IMF_Input_Hints> (hint);
                         data->layout = static_cast<Ecore_IMF_Input_Panel_Layout> (layout);
                         data->variation = variation;
                         data->autocapital_type = static_cast<Ecore_IMF_Autocapital_Type> (autocapital_type);
                         data->return_key_disabled = return_key_disabled;
+                        data->return_key_type = static_cast<Ecore_IMF_Input_Panel_Return_Key_Type> (return_key_type);
 
-                        LOGD ("REMOTE_CONTROL_CALLBACK_ENTRY_METADATA: hint=0x%04x, layout=%d, variation=%d, autocap=%d, retKey_disabled=%d",
-                            data->hint, data->layout, data->variation, data->autocapital_type, data->return_key_disabled);
+                        LOGD ("REMOTE_CONTROL_CALLBACK_ENTRY_METADATA: hint=0x%04x, layout=%d, variation=%d, autocap=%d, retKey_disabled=%d, retKey_type=%d",
+                            data->hint, data->layout, data->variation, data->autocapital_type, data->return_key_disabled, data->return_key_type);
 
                         if (client->metadata_cb)
                             client->metadata_cb (client->metadata_cb_user_data, data);
index 839077a..39b6aec 100644 (file)
@@ -74,6 +74,7 @@ typedef struct {
     int variation; /**< The layout variation information */
     Ecore_IMF_Autocapital_Type autocapital_type; /**< The autocapital type information */
     bool return_key_disabled; /**< The return key state information */
+    Ecore_IMF_Input_Panel_Return_Key_Type return_key_type; /**< The return key type information */
 } remote_control_entry_metadata_s;
 
 /**