From 88949b437c18be90d03d5f0ae96fd9b2ad861670 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Thu, 27 Jul 2023 14:55:48 +0900 Subject: [PATCH] Fix issue to print invalid object error message when pressing H/W key eo.c:1972 Object 0x80006183 is not a valid object in this context: object domain: 0, current domain: 2, local domain: 2, available domains: [ 1 2 ]. Are you trying to access this object from another thread? >>> bt 0 efl_isa (eo_id=0x80006183, klass_id=0x4000003a) at ../src/lib/eo/eo.c:1972 1 0xb6c5937a in evas_object_data_get () from /lib/libevas.so.1 2 0xae60f61a in _e_input_panel_is_effect_running (ec=) at e_mod_input_panel.c:182 3 0xae6118f4 in e_input_panel_is_effect_running () at e_mod_input_panel.c:1582 4 0xae60dbba in _input_panel_hide (client=0x20d87c8, resource=, force_hide=force_hide@entry=0 '\000') at e_mod_main.c:294 5 0xae60ea72 in _e_mod_ecore_key_down_cb (data=, type=, event=) at e_mod_main.c:1129 Change-Id: Id96d0690f05d54498bfa026c83c492231a13b294 Signed-off-by: Jihoon Kim --- src/e_mod_input_panel.c | 4 ++++ src/e_mod_main.c | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/e_mod_input_panel.c b/src/e_mod_input_panel.c index 59a65d9..0ec5ba6 100644 --- a/src/e_mod_input_panel.c +++ b/src/e_mod_input_panel.c @@ -1171,6 +1171,8 @@ e_input_panel_visibility_change(Eina_Bool visible) LOGI("e_input_panel_visibility_change : %d", visible); + ecore_thread_main_loop_begin(); + vconf_set_int (VCONFKEY_ISF_INPUT_PANEL_STATE, visible ? VCONFKEY_ISF_INPUT_PANEL_STATE_SHOW : VCONFKEY_ISF_INPUT_PANEL_STATE_HIDE); EINA_LIST_FOREACH(g_input_panel->surfaces, l, ips) @@ -1180,6 +1182,8 @@ e_input_panel_visibility_change(Eina_Bool visible) _e_input_panel_surface_visible_update(ips); } + ecore_thread_main_loop_end(); + _wait_update_timer_del(); } diff --git a/src/e_mod_main.c b/src/e_mod_main.c index db4203c..929244d 100644 --- a/src/e_mod_main.c +++ b/src/e_mod_main.c @@ -291,7 +291,9 @@ _input_panel_hide(struct wl_client *client, struct wl_resource *resource, Eina_B _cancel_will_hide_timer(); zone = e_zone_current_get(); + ecore_thread_main_loop_begin(); effect_run = e_input_panel_is_effect_running(); + ecore_thread_main_loop_end(); if (zone && (zone->display_state == E_ZONE_DISPLAY_STATE_OFF)) timeout = 0.0f; else if (effect_run) -- 2.34.1