From 9b5dc24ea1d87f4aaf17a6fc6ef447165c395ef6 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Fri, 18 Sep 2020 21:17:50 +0900 Subject: [PATCH] Fix issue not to get profile Change-Id: I999f285e4e5491d61c2d29099adfedd26e80b7b0 Signed-off-by: Jihoon Kim --- ism/extras/efl_panel/isf_panel_efl.cpp | 13 -------- ism/extras/wayland_immodule/wayland_imcontext.c | 3 +- .../wayland/wayland_panel_agent_module.cpp | 2 +- ism/src/Makefile.am | 4 +-- ism/src/tizen_profile.cpp | 37 +++++++++++++++++++--- 5 files changed, 38 insertions(+), 21 deletions(-) diff --git a/ism/extras/efl_panel/isf_panel_efl.cpp b/ism/extras/efl_panel/isf_panel_efl.cpp index f0b838d..17af469 100644 --- a/ism/extras/efl_panel/isf_panel_efl.cpp +++ b/ism/extras/efl_panel/isf_panel_efl.cpp @@ -7535,17 +7535,6 @@ static Eina_Bool monitor_user_data_path_timer(void *data) return ECORE_CALLBACK_RENEW; } -void set_tizen_profile() -{ - char *profile_name = NULL; - system_info_get_platform_string("http://tizen.org/feature/profile", &profile_name); - if (profile_name) { - LOGD("profile name : %s", profile_name); - isf_set_tizen_profile(profile_name); - free(profile_name); - } -} - int main (int argc, char *argv []) { struct tms tiks_buf; @@ -7800,8 +7789,6 @@ int main (int argc, char *argv []) _candidate_font_size = (int)(_candidate_font_size * (_width_rate < _height_rate ? _width_rate : _height_rate)); #endif /* CANDIDATE */ - set_tizen_profile(); - /* Load ISF configuration */ user_data_path = scim_get_user_data_dir (); user_data_path_exists = g_file_test (user_data_path.c_str(), G_FILE_TEST_EXISTS); diff --git a/ism/extras/wayland_immodule/wayland_imcontext.c b/ism/extras/wayland_immodule/wayland_imcontext.c index b24333e..7041b79 100644 --- a/ism/extras/wayland_immodule/wayland_imcontext.c +++ b/ism/extras/wayland_immodule/wayland_imcontext.c @@ -3500,7 +3500,7 @@ wayland_im_context_filter_event(Ecore_IMF_Context *ctx, int val; if (vconf_get_bool (VCONFKEY_ISF_HW_KEYBOARD_INPUT_DETECTED, &val) == 0) { if (val) { - LOGD ("Changed keyboard mode from H/W to S/W "); + LOGI ("Changed keyboard mode from H/W to S/W"); hw_keyboard_mode = EINA_FALSE; vconf_set_bool (VCONFKEY_ISF_HW_KEYBOARD_INPUT_DETECTED, 0); if (ecore_imf_context_input_panel_enabled_get (ctx)) { @@ -3511,6 +3511,7 @@ wayland_im_context_filter_event(Ecore_IMF_Context *ctx, } } } + if (strcmp (ecore_key_ev.key, "space") == 0 || strcmp (ecore_key_ev.key, "KP_Space") == 0) { autoperiod_insert (ctx); diff --git a/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp b/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp index 1b23206..a7f4d1e 100644 --- a/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp +++ b/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp @@ -1476,7 +1476,7 @@ isf_wsc_context_focus_out (WSCContextISF *wsc_ctx) _focused_ic = 0; if (_TV) - g_info_manager->remoteinput_callback_focus_out (); + g_info_manager->remoteinput_callback_focus_out (); context_scim->impl->surrounding_text.clear (); context_scim->impl->preedit_string.clear (); diff --git a/ism/src/Makefile.am b/ism/src/Makefile.am index fb3d690..40677a6 100644 --- a/ism/src/Makefile.am +++ b/ism/src/Makefile.am @@ -114,8 +114,8 @@ libprivilege_checker_la_CXXFLAGS = @DLOG_CFLAGS@ @CYNARA_CFLAGS@ libprivilege_checker_la_LIBADD = @DLOG_LIBS@ @CYNARA_LIBS@ libprofile_la_SOURCES = tizen_profile.cpp -libprofile_la_CXXFLAGS = -libprofile_la_LIBADD = +libprofile_la_CXXFLAGS = @SYSTEM_INFO_CFLAGS@ +libprofile_la_LIBADD = @SYSTEM_INFO_LIBS@ libisf_pkg_la_SOURCES = isf_pkg.cpp libisf_pkg_la_CXXFLAGS = @DLOG_CFLAGS@ @PKGMGR_INFO_CFLAGS@ @TZPLATFORM_CONFIG_CFLAGS@ diff --git a/ism/src/tizen_profile.cpp b/ism/src/tizen_profile.cpp index 6456bb5..59d00d8 100644 --- a/ism/src/tizen_profile.cpp +++ b/ism/src/tizen_profile.cpp @@ -23,21 +23,50 @@ */ #include +#include #include "tizen_profile.h" -static tizen_profile_t g_profile = TIZEN_PROFILE_WEARABLE; +static tizen_profile_t g_profile = TIZEN_PROFILE_UNKNOWN; /** * The current profile information will be passed as a return value */ tizen_profile_t _get_tizen_profile() { + static tizen_profile_t profile = TIZEN_PROFILE_UNKNOWN; + if (__builtin_expect(profile != TIZEN_PROFILE_UNKNOWN, 1)) + return profile; + + char *profileName; + system_info_get_platform_string("http://tizen.org/feature/profile", &profileName); + switch (*profileName) + { + case 'm': + case 'M': + g_profile = TIZEN_PROFILE_MOBILE; + break; + case 'w': + case 'W': + g_profile = TIZEN_PROFILE_WEARABLE; + break; + case 't': + case 'T': + g_profile = TIZEN_PROFILE_TV; + break; + case 'i': + case 'I': + g_profile = TIZEN_PROFILE_IVI; + break; + default: // common or unknown ==> ALL ARE COMMON. + g_profile = TIZEN_PROFILE_COMMON; + } + return g_profile; } -void isf_set_tizen_profile(const char *profile_name) +void isf_set_tizen_profile(const char *profileName) { - switch (*profile_name) + switch (*profileName) { case 'm': case 'M': @@ -58,4 +87,4 @@ void isf_set_tizen_profile(const char *profile_name) default: // common or unknown ==> ALL ARE COMMON. g_profile = TIZEN_PROFILE_COMMON; } -} +} \ No newline at end of file -- 2.7.4