From a20bb21a5b7c8fd03ddabc8a0d915ea704bb8c56 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Thu, 12 Jan 2017 19:24:24 +0900 Subject: [PATCH 01/16] Update package version to 0.4.35 Change-Id: I47327428ef9d65143aea7a1ca4ea9c5d4619b8fb Signed-off-by: Jihoon Kim --- packaging/libscl-core.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libscl-core.spec b/packaging/libscl-core.spec index 4834b4c..1683729 100644 --- a/packaging/libscl-core.spec +++ b/packaging/libscl-core.spec @@ -9,7 +9,7 @@ Name: libscl-core Summary: A library for developing software keyboards -Version: 0.4.34 +Version: 0.4.35 Release: 1 Group: Graphics & UI Framework/Input License: Apache-2.0 -- 2.7.4 From f78b43c34a3d203f924f5431f8d74324b25f4b35 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Fri, 13 Jan 2017 19:52:04 +0900 Subject: [PATCH 02/16] Replace uuid with appid Change-Id: I1c7052b854eda3843d36967825e933d5e6206e0b Signed-off-by: Jihoon Kim --- src/sclcoreui-efl.cpp | 22 +++++++++++----------- src/sclcoreui-efl.h | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/sclcoreui-efl.cpp b/src/sclcoreui-efl.cpp index 9d6a2bb..be6a4db 100644 --- a/src/sclcoreui-efl.cpp +++ b/src/sclcoreui-efl.cpp @@ -77,7 +77,7 @@ CSCLCoreUIEFL::CSCLCoreUIEFL() m_rotation_degree = 0; m_main_window = SCLWINDOW_INVALID; - m_uuid = NULL; + m_appid = NULL; m_display = NULL; } @@ -419,7 +419,7 @@ int CSCLCoreUIEFL::create(void *data) elm_config_accel_preference_set("3d"); elm_policy_set(ELM_POLICY_THROTTLE, ELM_POLICY_THROTTLE_NEVER); - Evas_Object *main_window = elm_win_add(NULL, m_uuid, ELM_WIN_UTILITY); + Evas_Object *main_window = elm_win_add(NULL, m_appid, ELM_WIN_UTILITY); if (!main_window) { LOGE("Failed to create main window\n"); return -1; @@ -438,7 +438,7 @@ int CSCLCoreUIEFL::create(void *data) elm_win_borderless_set(main_window, EINA_TRUE); elm_win_keyboard_win_set(main_window, EINA_TRUE); elm_win_autodel_set(main_window, EINA_TRUE); - elm_win_title_set(main_window, m_uuid); + elm_win_title_set(main_window, m_appid); elm_win_prop_focus_skip_set(main_window, EINA_TRUE); int rots[] = { 0, 90, 180, 270 }; elm_win_wm_rotation_available_rotations_set(main_window, rots, (sizeof(rots) / sizeof(int))); @@ -523,7 +523,7 @@ void CSCLCoreUIEFL::run(const sclchar *display) { char **argv = new char*[4]; int argc = 3; - const sclchar *uuid = NULL; + const sclchar *appid = NULL; ops.create = app_create_cb; ops.terminate = app_terminate_cb; @@ -534,23 +534,23 @@ void CSCLCoreUIEFL::run(const sclchar *display) CSCLCoreImpl *impl = CSCLCoreImpl::get_instance(); if (impl) { - uuid = impl->get_uuid(); + appid = impl->get_uuid(); } - if (!uuid) - uuid = ""; + if (!appid) + appid = ""; - m_uuid = uuid; + m_appid = appid; m_display = display; - argv[0] = const_cast (uuid); + argv[0] = const_cast (appid); argv[1] = (char *)"--display"; argv[2] = const_cast (display); argv[3] = 0; - LOGD("name : %s\n", uuid); + LOGD("name : %s\n", appid); - appcore_efl_main(uuid, &argc, (char ***)&argv, &ops); + appcore_efl_main(appid, &argc, (char ***)&argv, &ops); delete [] argv; } diff --git a/src/sclcoreui-efl.h b/src/sclcoreui-efl.h index 3cd50c6..d12477b 100644 --- a/src/sclcoreui-efl.h +++ b/src/sclcoreui-efl.h @@ -64,7 +64,7 @@ private: sclint m_rotation_degree; sclwindow m_main_window; - const sclchar *m_uuid; + const sclchar *m_appid; const sclchar *m_display; OptionWindowInfo m_option_window_info[OPTION_WINDOW_TYPE_MAX]; -- 2.7.4 From 98fe36447c994dfef2234ab9faaa204111e6047d Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Thu, 19 Jan 2017 16:17:40 +0900 Subject: [PATCH 03/16] Fix IME string translation issue Change-Id: I220872172c16c7e7591fcf344f347a39a1ce1220 Signed-off-by: Jihoon Kim --- src/sclcoreui-efl.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/sclcoreui-efl.cpp b/src/sclcoreui-efl.cpp index be6a4db..60e0eb2 100644 --- a/src/sclcoreui-efl.cpp +++ b/src/sclcoreui-efl.cpp @@ -138,7 +138,7 @@ void CSCLCoreUIEFL::set_keyboard_size_hints(SclSize portrait, SclSize landscape) #endif } -static void language_changed_cb(keynode_t *key, void* data) +static int language_changed_cb(void *event_info, void* data) { char clang[_POSIX_PATH_MAX] = {0}; char *vconf_str = vconf_get_str(VCONFKEY_LANGSET); @@ -155,6 +155,8 @@ static void language_changed_cb(keynode_t *key, void* data) callback->on_set_display_language(clang); } } + + return 0; } static void accessibility_changed_cb(keynode_t *key, void* data) @@ -452,7 +454,8 @@ int CSCLCoreUIEFL::create(void *data) ecore_x_icccm_name_class_set(elm_win_xwindow_get(main_window), "Virtual Keyboard", "ISF"); #endif - vconf_notify_key_changed(VCONFKEY_LANGSET, language_changed_cb, NULL); + appcore_set_event_callback(APPCORE_EVENT_LANG_CHANGE, language_changed_cb, NULL); + vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, accessibility_changed_cb, NULL); /* Should we call these callback functions here? */ @@ -488,7 +491,8 @@ int CSCLCoreUIEFL::terminate(void *data) if (impl) impl->fini(); - vconf_ignore_key_changed(VCONFKEY_LANGSET, language_changed_cb); + appcore_set_event_callback(APPCORE_EVENT_LANG_CHANGE, NULL, NULL); + vconf_ignore_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, accessibility_changed_cb); #ifndef WAYLAND -- 2.7.4 From caa961e75bbfc1403183805eba2b0133026c9717 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Thu, 19 Jan 2017 16:26:08 +0900 Subject: [PATCH 04/16] Update package version to 0.4.36 Change-Id: Ic93d7848279546a32f3108dfd1c316ec7dfc4120 Signed-off-by: Jihoon Kim --- packaging/libscl-core.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libscl-core.spec b/packaging/libscl-core.spec index 1683729..e23b249 100644 --- a/packaging/libscl-core.spec +++ b/packaging/libscl-core.spec @@ -9,7 +9,7 @@ Name: libscl-core Summary: A library for developing software keyboards -Version: 0.4.35 +Version: 0.4.36 Release: 1 Group: Graphics & UI Framework/Input License: Apache-2.0 -- 2.7.4 From bb7c388b4bc7ad8d0d9988d01cc98e3b4d880db2 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Fri, 20 Jan 2017 12:58:49 +0900 Subject: [PATCH 05/16] Remove elm_shutdown() in create callback handler After integrating appcore, elm_shutdown() will be called when it's destroyed automatically Change-Id: Ic545d4b6b6c388d987161d6662574d0d84b08d44 Signed-off-by: Jihoon Kim --- src/sclcoreui-efl.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/sclcoreui-efl.cpp b/src/sclcoreui-efl.cpp index 60e0eb2..8f0147a 100644 --- a/src/sclcoreui-efl.cpp +++ b/src/sclcoreui-efl.cpp @@ -412,7 +412,6 @@ int CSCLCoreUIEFL::create(void *data) #ifdef WAYLAND if (!check_evas_engine(&wlkb)) { LOGW("_wlkb_check_evas_engine error!\n"); - elm_shutdown(); return -1; } LOGD("Selected engine: '%s'\n", wlkb.ee_engine); -- 2.7.4 From 3e4c1afc0a7661d2c13d1f8cfcf450e69b82ea50 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Sun, 22 Jan 2017 08:56:51 +0900 Subject: [PATCH 06/16] Update package version to 0.4.37 Change-Id: Ie8292af79fea53d054e355e88dc03d333b29ac33 Signed-off-by: Jihoon Kim --- packaging/libscl-core.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libscl-core.spec b/packaging/libscl-core.spec index e23b249..fec3207 100644 --- a/packaging/libscl-core.spec +++ b/packaging/libscl-core.spec @@ -9,7 +9,7 @@ Name: libscl-core Summary: A library for developing software keyboards -Version: 0.4.36 +Version: 0.4.37 Release: 1 Group: Graphics & UI Framework/Input License: Apache-2.0 -- 2.7.4 From e403de032d62871f588ab60dfebd5b45a9a1352e Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Mon, 23 Jan 2017 16:47:04 +0900 Subject: [PATCH 07/16] Reduce binary size to use hidden visibility 32bit armv7l size : 101KB -> 61KB Change-Id: I7dfaeea5a7558291e0ad43db33abdf3f0d26b34b Signed-off-by: Jihoon Kim --- packaging/libscl-core.spec | 4 ++-- src/sclcore.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packaging/libscl-core.spec b/packaging/libscl-core.spec index fec3207..58fb073 100644 --- a/packaging/libscl-core.spec +++ b/packaging/libscl-core.spec @@ -51,8 +51,8 @@ A devel package of libscl-core library that helps developing S/W Keyboard %build -export CFLAGS+=" -DTIZEN_DEBUG_ENABLE -Werror" -export CXXFLAGS+=" -DTIZEN_DEBUG_ENABLE -Werror" +export CFLAGS+=" -fvisibility=hidden -DTIZEN_DEBUG_ENABLE -Werror" +export CXXFLAGS+=" -fvisibility=hidden -fvisibility-inlines-hidden -DTIZEN_DEBUG_ENABLE -Werror" export FFLAGS+=" -DTIZEN_DEBUG_ENABLE" rm -rf CMakeFiles diff --git a/src/sclcore.h b/src/sclcore.h index a3fbdd6..b462324 100644 --- a/src/sclcore.h +++ b/src/sclcore.h @@ -39,7 +39,7 @@ class CSCLCoreImpl; * * This class implements all functions for working as a soft-based keyboard */ -class CSCLCore +class EXAPI CSCLCore { public: CSCLCore(ISCLCoreEventCallback *callback); -- 2.7.4 From c3330a1ae19832856b71637bb8c0da78433d29c2 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Tue, 24 Jan 2017 10:25:22 +0900 Subject: [PATCH 08/16] Update package version to 0.4.38 Change-Id: Ie804d9038881939d7c3ad1cf27c1eeed5b7ae07b Signed-off-by: Jihoon Kim --- packaging/libscl-core.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libscl-core.spec b/packaging/libscl-core.spec index 58fb073..2498915 100644 --- a/packaging/libscl-core.spec +++ b/packaging/libscl-core.spec @@ -9,7 +9,7 @@ Name: libscl-core Summary: A library for developing software keyboards -Version: 0.4.37 +Version: 0.4.38 Release: 1 Group: Graphics & UI Framework/Input License: Apache-2.0 -- 2.7.4 From a2550ee776c7510b141c74341df979589b592847 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Tue, 24 Jan 2017 16:35:49 +0900 Subject: [PATCH 09/16] Use elm_win_add() instead for specifying parent window Change-Id: I231bc395d16cc112b4c80252d642861cb8d17b81 --- src/sclcoreui-efl.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/sclcoreui-efl.cpp b/src/sclcoreui-efl.cpp index 8f0147a..8f3a315 100644 --- a/src/sclcoreui-efl.cpp +++ b/src/sclcoreui-efl.cpp @@ -679,7 +679,21 @@ sclwindow CSCLCoreUIEFL::create_option_window(SCLOptionWindowType type) } } - Evas_Object *window = elm_win_util_standard_add("Option window", "Option window"); + Evas_Object *window, *bg; + + window = elm_win_add(NATIVE_WINDOW_CAST(m_main_window), "Option window", ELM_WIN_BASIC); + if (!window) return NULL; + + elm_win_title_set(window, "Option window"); + bg = elm_bg_add(window); + if (!bg) { + evas_object_del(window); + return NULL; + } + + evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(window, bg); + evas_object_show(bg); #ifndef WAYLAND Evas_Coord win_w = 0, win_h = 0; -- 2.7.4 From 04258aa69ea6eb3a6ae37a85f4298ae0704111f7 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Wed, 1 Feb 2017 18:18:39 +0900 Subject: [PATCH 10/16] Update package version to 0.4.39 Change-Id: Ic76514bbbf33c6296659a7201b3a4f67473c5cbf Signed-off-by: Jihoon Kim --- packaging/libscl-core.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libscl-core.spec b/packaging/libscl-core.spec index 2498915..32b02a8 100644 --- a/packaging/libscl-core.spec +++ b/packaging/libscl-core.spec @@ -9,7 +9,7 @@ Name: libscl-core Summary: A library for developing software keyboards -Version: 0.4.38 +Version: 0.4.39 Release: 1 Group: Graphics & UI Framework/Input License: Apache-2.0 -- 2.7.4 From 69b2db0ce615d4cab67ee2566d2cecf9fa04ffcc Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Wed, 15 Feb 2017 08:07:06 +0900 Subject: [PATCH 11/16] Export scim module symbols scim module checks the necessary symbols to execute, so those symbols should be exported. Change-Id: I69b67b0474c3aee30360f315362c26e5bc7d70ed Signed-off-by: Jihoon Kim --- src/sclconnection-isf.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/sclconnection-isf.cpp b/src/sclconnection-isf.cpp index 64abd19..3b21fb7 100644 --- a/src/sclconnection-isf.cpp +++ b/src/sclconnection-isf.cpp @@ -1118,13 +1118,13 @@ void CSCLConnectionISF::request_ise_hide() extern "C" { - void scim_module_init(void) { + EXAPI void scim_module_init(void) { } - void scim_module_exit(void) { + EXAPI void scim_module_exit(void) { } - void scim_helper_module_run_helper(const scim::String &uuid, const scim::ConfigPointer &config, const scim::String &display) { + EXAPI void scim_helper_module_run_helper(const scim::String &uuid, const scim::ConfigPointer &config, const scim::String &display) { _scim_config = config; CSCLCoreImpl *impl = CSCLCoreImpl::get_instance(); if (impl) { -- 2.7.4 From 67d0fe8599e3a2130111f784ff61dec3d009ab2e Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Wed, 15 Feb 2017 08:29:12 +0900 Subject: [PATCH 12/16] Update package version to 0.4.40 Change-Id: I345d7e75c54c71cdd298cbbec368e0cceb012bbe Signed-off-by: Jihoon Kim --- packaging/libscl-core.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libscl-core.spec b/packaging/libscl-core.spec index 32b02a8..194f19e 100644 --- a/packaging/libscl-core.spec +++ b/packaging/libscl-core.spec @@ -9,7 +9,7 @@ Name: libscl-core Summary: A library for developing software keyboards -Version: 0.4.39 +Version: 0.4.40 Release: 1 Group: Graphics & UI Framework/Input License: Apache-2.0 -- 2.7.4 From 3b053253493860d8b30b107d8b8ba2af915f6eed Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Fri, 24 Mar 2017 11:25:59 +0900 Subject: [PATCH 13/16] Use cmake macro in spec file Change-Id: I0d9657e2b12378a97eebc5f0c2100fb0de11f424 Signed-off-by: Jihoon Kim --- packaging/libscl-core.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/libscl-core.spec b/packaging/libscl-core.spec index 194f19e..1c046ce 100644 --- a/packaging/libscl-core.spec +++ b/packaging/libscl-core.spec @@ -59,9 +59,9 @@ rm -rf CMakeFiles rm -rf CMakeCache.txt %if %{with wayland} -cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DLIB_INSTALL_DIR:PATH=%{_libdir} -Dwith_wayland=TRUE -Dwith_websocket=%{WITH_WEBSOCKET} +%cmake . -Dwith_wayland=TRUE -Dwith_websocket=%{WITH_WEBSOCKET} %else -cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DLIB_INSTALL_DIR:PATH=%{_libdir} -Dwith_websocket=%{WITH_WEBSOCKET} +%cmake . -Dwith_websocket=%{WITH_WEBSOCKET} %endif make %{?_smp_mflags} -- 2.7.4 From cfb54ea98f476324dfa239806e182ae7dbbe4f08 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Tue, 30 May 2017 17:02:00 +0900 Subject: [PATCH 14/16] Change libdir in pkgconfig file For 64bit architecture, libdir should be /usr/lib64, but it was /usr/lib Change-Id: I18acf2854e6eeceb58bb3ece01a7618715fa99b4 Signed-off-by: Jihoon Kim --- libscl-core.pc.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libscl-core.pc.in b/libscl-core.pc.in index 78aa9c7..2d6d5cc 100644 --- a/libscl-core.pc.in +++ b/libscl-core.pc.in @@ -1,8 +1,8 @@ # Package Information for pkg-config -prefix=/usr +prefix=@PREFIX@ exec_prefix=${prefix} -libdir=${prefix}/lib +libdir=@LIBDIR@ includedir=${prefix}/include Name: libscl-core -- 2.7.4 From 066ab7f36aae2fb89f3bc87938222aa6854957d1 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Tue, 30 May 2017 19:58:56 +0900 Subject: [PATCH 15/16] Update package version to 0.4.41 Change-Id: Ia5f9d9067b6596fb64e9b8dae482b5d0f0e353cb Signed-off-by: Jihoon Kim --- packaging/libscl-core.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libscl-core.spec b/packaging/libscl-core.spec index 1c046ce..9d81f21 100644 --- a/packaging/libscl-core.spec +++ b/packaging/libscl-core.spec @@ -9,7 +9,7 @@ Name: libscl-core Summary: A library for developing software keyboards -Version: 0.4.40 +Version: 0.4.41 Release: 1 Group: Graphics & UI Framework/Input License: Apache-2.0 -- 2.7.4 From f5c79a34842ded96f79f6d2910bb2ac15aea4508 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Fri, 16 Jun 2017 13:35:14 +0900 Subject: [PATCH 16/16] Use evas_render() to force renderization Change-Id: Id8b96ed1068f43fe76e7a81fee5c22a44ecaad82 --- src/sclcoreui-efl.cpp | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/src/sclcoreui-efl.cpp b/src/sclcoreui-efl.cpp index 8f3a315..6caa4da 100644 --- a/src/sclcoreui-efl.cpp +++ b/src/sclcoreui-efl.cpp @@ -809,32 +809,14 @@ static Eina_Bool _render_pre_timeout(void *data) void CSCLCoreUIEFL::process_keyboard_ui_state_change(KEYBOARD_UI_STATE state) { #ifdef WAYLAND - static Evas_Object *force_update_helper_obj = NULL; - static int force_update_num = 0; - if (state == KEYBOARD_UI_STATE_WILL_SHOW) { evas_event_callback_add(evas_object_evas_get(NATIVE_WINDOW_CAST(m_main_window)), EVAS_CALLBACK_RENDER_PRE, _render_pre_cb, (void*)m_main_window); _render_pre_timer = ecore_timer_add(RENDER_PRE_TIMEOUT, _render_pre_timeout, (void*)m_main_window); LOGD("Registered RENDER_PRE callback, _render_pre_cb() and a timer callback"); } else if (state == KEYBOARD_UI_STATE_DID_SHOW) { - LOGD("Forcing keyboard window to render : %d", force_update_num); - - /* Since the ISE is waiting for RENDER_PRE event, we need to make sure the render event is - * occured on our ISE window. Since right now there is no proper way to trigger render event - * manually, we are creating a half transparent box above the keyboard window. Need to find - * more appropriate way to generate render event */ - if (force_update_helper_obj) evas_object_del(force_update_helper_obj); - force_update_helper_obj = elm_bg_add(NATIVE_WINDOW_CAST(m_main_window)); - evas_object_color_set(force_update_helper_obj, 255, 255, 255, 1); - evas_object_resize(force_update_helper_obj, 1, 1); - evas_object_move(force_update_helper_obj, force_update_num % 100, 0); - evas_object_layer_set(force_update_helper_obj, EVAS_LAYER_MAX); - evas_object_show(force_update_helper_obj); - force_update_num++; - } else if (state == KEYBOARD_UI_STATE_WILL_HIDE) { - if (force_update_helper_obj) evas_object_del(force_update_helper_obj); - force_update_helper_obj = NULL; + LOGD("Forcing keyboard window to render"); + evas_render(evas_object_evas_get(NATIVE_WINDOW_CAST(m_main_window))); } #endif } -- 2.7.4