Add return_key_disabled in remote_control_entry_metadata structure 83/103083/1
authorInHong Han <inhong1.han@samsung.com>
Wed, 7 Dec 2016 02:06:09 +0000 (11:06 +0900)
committerInHong Han <inhong1.han@samsung.com>
Wed, 7 Dec 2016 07:45:14 +0000 (16:45 +0900)
Change-Id: I1a080afb82e89fdcaef43fc74c96c1f074312b05

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 cfb5240..bbb4acd 100755 (executable)
@@ -1039,7 +1039,7 @@ private:
         }
     }
 
-    void socket_remoteinput_entry_metadata (int client, uint32 hint, uint32 layout, int variation, uint32 autocapital_type) {
+    void socket_remoteinput_entry_metadata (int client, uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled) {
         SCIM_DEBUG_MAIN(4) << __FUNCTION__ << "...\n";
         LOGD ("client id:%d\n", client);
 
@@ -1056,6 +1056,7 @@ private:
             m_send_trans.put_data(layout);
             m_send_trans.put_data(variation);
             m_send_trans.put_data(autocapital_type);
+            m_send_trans.put_data(return_key_disabled);
             m_send_trans.write_to_socket(client_socket);
         }
     }
index fe99fbf..eee60a1 100644 (file)
@@ -145,7 +145,7 @@ 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);
+                                          Ecore_IMF_Autocapital_Type type, uint32_t return_key_disabled);
 
 #if !(ENABLE_GRAB_KEYBOARD)
 void isf_wsc_context_filter_key_event (WSCContextISF* wsc_ctx,
index 80dd019..459e2ee 100644 (file)
@@ -94,6 +94,7 @@ struct _WSCContextISFImpl {
     int                      cursor_top_y;
     int                      cursor_pos;
     int                      variation;
+    int                      return_key_disabled;
     bool                     use_preedit;
     bool                     is_on;
     bool                     preedit_started;
@@ -121,6 +122,7 @@ struct _WSCContextISFImpl {
                            cursor_top_y(0),
                            cursor_pos(-1),
                            variation(0),
+                           return_key_disabled(0),
                            use_preedit(true),
                            is_on(true),
                            preedit_started(false),
@@ -260,7 +262,7 @@ _wsc_im_ctx_content_type (void *data, struct wl_input_method_context *im_ctx, ui
     isf_wsc_context_input_panel_language_set (wsc_ctx, wsc_context_input_panel_language_get (wsc_ctx));
 
     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_context_input_panel_layout_variation_get (wsc_ctx), wsc_context_autocapital_type_get (wsc_ctx), wsc_ctx->return_key_disabled);
 
 #if ENABLE_REMOTE_INPUT
     remote_surrounding_get (wsc_ctx);
@@ -339,6 +341,8 @@ _wsc_im_ctx_return_key_disabled (void *data, struct wl_input_method_context *im_
     if (wsc_ctx->return_key_disabled != return_key_disabled) {
         wsc_ctx->return_key_disabled = return_key_disabled;
         isf_wsc_context_input_panel_return_key_disabled_set (wsc_ctx, wsc_ctx->return_key_disabled);
+        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);
     }
 }
 
@@ -1384,7 +1388,7 @@ 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)
+                                     Ecore_IMF_Autocapital_Type type, uint32_t return_key_disabled)
 {
     SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
 
@@ -1392,14 +1396,16 @@ 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->variation != variation || context_scim->impl->autocapital_type != type ||
+            context_scim->impl->return_key_disabled != return_key_disabled)) {
             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;
 
             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->variation, context_scim->impl->autocapital_type, context_scim->impl->return_key_disabled);
 
             context_scim->impl->init_remote_entry_metadata = true;
         }
index b704ff7..14b6da7 100644 (file)
@@ -2800,12 +2800,12 @@ client context helpers: %d, helpers uuid count: %d",
         unlock ();
     }
 
-    void remoteinput_callback_entry_metadata (uint32 hint, uint32 layout, int variation, uint32 autocapital_type) {
+    void remoteinput_callback_entry_metadata (uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled) {
         SCIM_DEBUG_MAIN (4) << __FUNCTION__ << "...\n";
         LOGD ("");
 
         lock();
-        m_panel_agent_manager.socket_remoteinput_entry_metadata (m_current_recv_remoteinput_id, hint, layout, variation, autocapital_type);
+        m_panel_agent_manager.socket_remoteinput_entry_metadata (m_current_recv_remoteinput_id, hint, layout, variation, autocapital_type, return_key_disabled);
         unlock ();
     }
 
@@ -4704,9 +4704,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)
+void InfoManager::remoteinput_callback_entry_metadata (uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled)
 {
-    m_impl->remoteinput_callback_entry_metadata (hint, layout, variation, autocapital_type);
+    m_impl->remoteinput_callback_entry_metadata (hint, layout, variation, autocapital_type, return_key_disabled);
 }
 
 void InfoManager::remoteinput_callback_surrounding_text (String text, uint32 cursor)
index 7a5b8c0..d709b98 100644 (file)
@@ -574,7 +574,7 @@ public:
 
     void remoteinput_callback_focus_out (void);
 
-    void remoteinput_callback_entry_metadata (uint32 hint, uint32 layout, int variation, uint32 autocapital_type);
+    void remoteinput_callback_entry_metadata (uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled);
 
     void remoteinput_callback_surrounding_text (String text, uint32 cursor);
 
index 3cf42a4..0d8108b 100644 (file)
@@ -363,7 +363,7 @@ void PanelAgentBase::socket_remoteinput_focus_out (int client)
     LOGW ("not implemented for %s", m_name.c_str ());
 }
 
-void PanelAgentBase::socket_remoteinput_entry_metadata (int client, uint32 hint, uint32 layout, int variation, uint32 autocapital_type)
+void PanelAgentBase::socket_remoteinput_entry_metadata (int client, uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled)
 {
     LOGW ("not implemented for %s", m_name.c_str ());
 }
index afc18be..dc8ceef 100644 (file)
@@ -572,7 +572,7 @@ public:
      *
      * @return none.
      */
-    virtual void socket_remoteinput_entry_metadata (int client, uint32 hint, uint32 layout, int variation, uint32 autocapital_type);
+    virtual void socket_remoteinput_entry_metadata (int client, uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled);
 
     /**
      * @brief socket_remoteinput_surrounding_text.
index da886fe..0f1e646 100644 (file)
@@ -588,12 +588,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)
+void PanelAgentManager::socket_remoteinput_entry_metadata (int id, uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled)
 {
     PanelAgentPointer _p = m_impl->get_panel_agent_by_id (id);
 
     if (!_p.null ())
-        _p->socket_remoteinput_entry_metadata (id, hint, layout, variation, autocapital_type);
+        _p->socket_remoteinput_entry_metadata (id, hint, layout, variation, autocapital_type, return_key_disabled);
 }
 
 void PanelAgentManager::socket_remoteinput_surrounding_text (int id, String& text, uint32 cursor)
index 530619a..343fd13 100644 (file)
@@ -317,7 +317,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);
+    void socket_remoteinput_entry_metadata (int client, uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled);
     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 f4c912c..2bc0ddf 100644 (file)
@@ -139,7 +139,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;
+    uint32 m_hint, m_cursor, m_layout, m_variation, m_autocapital_type, m_input_resource, m_return_key_disabled;
 
 public:
     RemoteInputClientImpl ()
@@ -152,7 +152,8 @@ public:
             m_layout (0),
             m_variation (0),
             m_autocapital_type (0),
-            m_input_resource (0) {
+            m_input_resource (0),
+            m_return_key_disabled (0) {
     }
 
     int open_connection (void) {
@@ -340,7 +341,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_autocapital_type) && m_trans_recv.get_data (m_return_key_disabled)) {
                     }
                     else
                         LOGW ("wrong format of transaction\n");
@@ -373,11 +374,12 @@ public:
         return type;
     }
 
-    void get_entry_metadata (int *hint, int *layout, int *variation, int *autocapital_type) {
+    void get_entry_metadata (int *hint, int *layout, int *variation, int *autocapital_type, int *return_key_disabled) {
         *hint = m_hint;
         *layout = m_layout;
         *variation = m_variation;
         *autocapital_type = m_autocapital_type;
+        *return_key_disabled = m_return_key_disabled;
     }
 
     void get_surrounding_text (String &surrounding_text, int *cursor) {
@@ -455,9 +457,9 @@ RemoteInputClient::recv_callback_message (void)
 }
 
 void
-RemoteInputClient::get_entry_metadata (int *hint, int *layout, int *variation, int *autocapital_type)
+RemoteInputClient::get_entry_metadata (int *hint, int *layout, int *variation, int *autocapital_type, int *return_key_disabled)
 {
-    m_impl->get_entry_metadata (hint, layout, variation, autocapital_type);
+    m_impl->get_entry_metadata (hint, layout, variation, autocapital_type, return_key_disabled);
 }
 
 void
index 28fbdfa..e7e9883 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);
+    void get_entry_metadata (int *hint, int *layout, int *variation, int *autocapital_type, int *return_key_disabled);
     void get_surrounding_text (String &default_text, int *cursor);
     void get_input_resource (int *input_resource);
 };
index a0474a8..fd80d6a 100644 (file)
@@ -58,16 +58,17 @@ remote_handler(void *data, Ecore_Fd_Handler *fd_handler)
             {
                 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;
+                    int hint = 0, layout = 0, variation = 0, autocapital_type = 0, return_key_disabled = 0;
 
-                    client->remote_client.get_entry_metadata (&hint, &layout, &variation, &autocapital_type);
+                    client->remote_client.get_entry_metadata (&hint, &layout, &variation, &autocapital_type, &return_key_disabled);
                     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;
 
-                    LOGD ("REMOTE_CONTROL_CALLBACK_ENTRY_METADATA hint: 0x%04x, layout: %d, variation: %d, autocapital: %d",
-                        data->hint, data->layout, data->variation, data->autocapital_type);
+                    LOGD ("REMOTE_CONTROL_CALLBACK_ENTRY_METADATA hint: 0x%04x, layout: %d, variation: %d, autocapital: %d, return_key: %d",
+                        data->hint, data->layout, data->variation, data->autocapital_type, data->return_key_disabled);
                     client->metadata_cb (client->metadata_cb_user_data, data);
                     delete data;
                 }
index 4aa663e..5be4e10 100755 (executable)
@@ -73,6 +73,7 @@ typedef struct {
     Ecore_IMF_Input_Panel_Layout layout; /**< The layout information */
     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 */
 } remote_control_entry_metadata_s;
 
 /**