summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLi Zhang <li2012.zhang@samsung.com>2016-05-13 18:46:13 +0800
committerLi Zhang <li2012.zhang@samsung.com>2016-05-13 18:46:13 +0800
commitc501f28596a3f6cd0ee51801dee1fae32c94b0b8 (patch)
treeddd5dea41eb1870eaca64b57bfe4a9b3c1f65950
parent6de1ffe3ca6f03ffa72f3c61c767d71c9c47fdb0 (diff)
downloadisf-c501f28596a3f6cd0ee51801dee1fae32c94b0b8.tar.gz
isf-c501f28596a3f6cd0ee51801dee1fae32c94b0b8.tar.bz2
isf-c501f28596a3f6cd0ee51801dee1fae32c94b0b8.zip
Invoking set_layout() when changing IMEngine
Change-Id: Ib325b62a7bf3eb2f20cbd03c857f43d30ff42aa6
-rw-r--r--ism/modules/panelagent/wayland/isf_wsc_context.h1
-rw-r--r--ism/modules/panelagent/wayland/isf_wsc_control_ui.cpp1
-rw-r--r--ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp12
-rw-r--r--ism/src/scim_helper.cpp6
4 files changed, 5 insertions, 15 deletions
diff --git a/ism/modules/panelagent/wayland/isf_wsc_context.h b/ism/modules/panelagent/wayland/isf_wsc_context.h
index 7259d4f5..a84d98ba 100644
--- a/ism/modules/panelagent/wayland/isf_wsc_context.h
+++ b/ism/modules/panelagent/wayland/isf_wsc_context.h
@@ -108,7 +108,6 @@ Eina_Bool caps_mode_check (WSCContextISF *wsc_ctx, Eina_Bool force, Eina_Bool no
WSCContextISF *get_focused_ic ();
void context_scim_imdata_get (WSCContextISF *wsc_ctx, void* data, int* length);
-void imengine_layout_set (WSCContextISF *wsc_ctx, Ecore_IMF_Input_Panel_Layout layout);
void isf_wsc_context_add (WSCContextISF *wsc_ctx);
void isf_wsc_context_del (WSCContextISF *wsc_ctx);
diff --git a/ism/modules/panelagent/wayland/isf_wsc_control_ui.cpp b/ism/modules/panelagent/wayland/isf_wsc_control_ui.cpp
index 1f2a9668..97cdcccd 100644
--- a/ism/modules/panelagent/wayland/isf_wsc_control_ui.cpp
+++ b/ism/modules/panelagent/wayland/isf_wsc_control_ui.cpp
@@ -189,7 +189,6 @@ isf_wsc_context_input_panel_layout_set (WSCContextISF *ctx, Ecore_IMF_Input_Pane
if (context_scim == get_focused_ic ()) {
LOGD ("layout type : %d\n", layout);
_isf_wsc_context_input_panel_layout_set (_get_context_id (ctx), layout);
- imengine_layout_set (ctx, layout);
}
}
diff --git a/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp b/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp
index b7ca5285..34c54cdd 100644
--- a/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp
+++ b/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp
@@ -1222,18 +1222,6 @@ void context_scim_imdata_get (WSCContextISF *wsc_ctx, void* data, int* length)
}
}
-void
-imengine_layout_set (WSCContextISF *wsc_ctx, Ecore_IMF_Input_Panel_Layout layout)
-{
- LOGD ("");
- WSCContextISF* context_scim = wsc_ctx;
-
- if (context_scim && context_scim->impl && context_scim == _focused_ic) {
- //FIXME: add this interface
- //_info_manager->set_layout (layout);
- }
-}
-
static char *
insert_text (const char *text, uint32_t offset, const char *insert)
{
diff --git a/ism/src/scim_helper.cpp b/ism/src/scim_helper.cpp
index 1820d6c6..914286c3 100644
--- a/ism/src/scim_helper.cpp
+++ b/ism/src/scim_helper.cpp
@@ -146,6 +146,7 @@ public:
uint32 cursor_pos;
bool need_update_surrounding_text;
bool need_update_selection_text;
+ uint32 layout;
HelperAgentSignalVoid signal_exit;
HelperAgentSignalVoid signal_attach_input_context;
@@ -209,7 +210,8 @@ public:
public:
HelperAgentImpl (HelperAgent* thiz) : focused_ic ((uint32) -1), thiz (thiz),
surrounding_text (NULL), selection_text (NULL), cursor_pos (0),
- need_update_surrounding_text (false), need_update_selection_text (false) {
+ need_update_surrounding_text (false), need_update_selection_text (false),
+ layout (0) {
}
~HelperAgentImpl () {
@@ -1053,6 +1055,7 @@ HelperAgent::filter_event ()
uint32 layout;
if (m_impl->recv.get_data (layout)) {
+ m_impl->layout = layout;
m_impl->signal_set_layout (this, layout);
if (!m_impl->si.null ()) m_impl->si->set_layout(layout);
}
@@ -2253,6 +2256,7 @@ HelperAgent::set_keyboard_ise_by_uuid (const String &uuid) const
m_impl->attach_instance ();
LOGD ("Require UUID: %s Current UUID: %s", uuid.c_str (), m_impl->si->get_factory_uuid ().c_str ());
+ m_impl->si->set_layout (m_impl->layout);
if(m_impl->focused_ic != (uint32)-1)
m_impl->si->focus_in ();
}