if (impl) {
IISECommonEventCallback *callback = impl->get_core_event_callback();
if (callback) {
- //callback->attach_input_context(ic, ic_uuid.c_str());
+ callback->attach_input_context(ic, ic_uuid.c_str());
}
}
}
if (impl) {
IISECommonEventCallback *callback = impl->get_core_event_callback();
if (callback) {
- //callback->detach_input_context(ic, ic_uuid.c_str());
+ callback->detach_input_context(ic, ic_uuid.c_str());
}
}
}
struct IISECommonEventCallback {
virtual void init () {}
virtual void exit (sclint ic, const sclchar *ic_uuid) {}
+ virtual void attach_input_context(sclint ic, const sclchar *ic_uuid) {}
+ virtual void detach_input_context(sclint ic, const sclchar *ic_uuid) {}
virtual void reload_config (sclint ic, const sclchar *ic_uuid) {}
virtual void update_spot_location (sclint ic, const sclchar *ic_uuid, sclint x, sclint y) {}
virtual void update_cursor_position (sclint ic, const sclchar *ic_uuid, sclint cursor_pos) {}
#include "languages.h"
-#define ISE_VERSION "0.8.4-1"
+#define ISE_VERSION "0.8.5-1"
#define LOCALEDIR "/usr/share/locale"
#define PRIMARY_LATIN_LANGUAGE "English"
void ise_focus_in(int ic);
void ise_focus_out(int ic);
+void ise_attach_input_context(int ic);
+void ise_detach_input_context(int ic);
void ise_show(int ic);
void ise_hide();
void ise_create();
{
}
-sclboolean check_ic_temporary(int ic)
+sclboolean
+check_ic_temporary(int ic)
{
if ((ic & 0xFFFF) == 0) {
return TRUE;
void
ise_focus_in(int ic)
{
+ LOGD("ic : %d , %d , g_ic : %d , %d, g_focused_ic : %d , %d", ic, check_ic_temporary(ic),
+ g_keyboard_state.ic, check_ic_temporary(g_keyboard_state.ic),
+ g_keyboard_state.focused_ic, check_ic_temporary(g_keyboard_state.focused_ic));
if (check_ic_temporary(g_keyboard_state.ic) && !check_ic_temporary(ic)) {
g_keyboard_state.ic = ic;
}
g_keyboard_state.focused_ic = 0;
}
-void ise_show(int ic)
+void
+ise_attach_input_context(int ic)
+{
+ LOGD("attaching, ic : %d , %d , g_ic : %d , %d, g_focused_ic : %d , %d", ic, check_ic_temporary(ic),
+ g_keyboard_state.ic, check_ic_temporary(g_keyboard_state.ic),
+ g_keyboard_state.focused_ic, check_ic_temporary(g_keyboard_state.focused_ic));
+ ise_focus_in(ic);
+}
+void
+ise_detach_input_context(int ic)
+{
+ ise_focus_out(ic);
+}
+
+void
+ise_show(int ic)
{
sclboolean reset_inputmode = FALSE;
if (gSCLUI && g_ise_common) {
_language_manager.set_enabled_languages(g_config_values.enabled_languages);
+ LOGD("ic : %d , %d , g_ic : %d , %d, g_focused_ic : %d , %d", ic, check_ic_temporary(ic),
+ g_keyboard_state.ic, check_ic_temporary(g_keyboard_state.ic),
+ g_keyboard_state.focused_ic, check_ic_temporary(g_keyboard_state.focused_ic));
if (check_ic_temporary(ic) && !check_ic_temporary(g_keyboard_state.focused_ic)) {
ic = g_keyboard_state.focused_ic;
}
+ if (!check_ic_temporary(ic) && check_ic_temporary(g_keyboard_state.focused_ic)) {
+ g_keyboard_state.focused_ic = ic;
+ }
if (ic == g_keyboard_state.focused_ic) {
if (g_keyboard_state.layout == ISE_LAYOUT_STYLE_PHONENUMBER ||
g_keyboard_state.layout == ISE_LAYOUT_STYLE_IP ||
void init();
void exit(sclint ic, const sclchar *ic_uuid);
+ void attach_input_context(sclint ic, const sclchar *ic_uuid);
+ void detach_input_context(sclint ic, const sclchar *ic_uuid);
+
void focus_out (sclint ic, const sclchar *ic_uuid);
void focus_in (sclint ic, const sclchar *ic_uuid);
::ise_hide();
}
+void CCoreEventCallback::attach_input_context(sclint ic, const sclchar *ic_uuid)
+{
+ ise_attach_input_context(ic);
+}
+
+void CCoreEventCallback::detach_input_context(sclint ic, const sclchar *ic_uuid)
+{
+ ise_detach_input_context(ic);
+}
+
void CCoreEventCallback::focus_in(sclint ic, const sclchar *ic_uuid)
{
- ::ise_focus_in(ic);
+ ise_focus_in(ic);
}
void CCoreEventCallback::focus_out(sclint ic, const sclchar *ic_uuid)
{
- ::ise_focus_out(ic);
+ ise_focus_out(ic);
}
void CCoreEventCallback::ise_show(sclint ic, const sclint degree, Ise_Context context)