From: Jihoon Kim Date: Fri, 8 Mar 2024 06:23:40 +0000 (+0900) Subject: Fix crash issue in case of no IME window X-Git-Tag: accepted/tizen/8.0/unified/20240311.164617~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=22e3adde806894c177459b1ac5fbc45a44ee5f42;p=platform%2Fcore%2Fuifw%2Flibscl-core.git Fix crash issue in case of no IME window Change-Id: I9b5197acc3a932e8761d76a4b8544e8d6b6af366 Signed-off-by: Jihoon Kim --- diff --git a/src/sclcoreui-efl.cpp b/src/sclcoreui-efl.cpp index ffa3920..34215a1 100644 --- a/src/sclcoreui-efl.cpp +++ b/src/sclcoreui-efl.cpp @@ -843,11 +843,15 @@ static void _render_pre_cb(void *data, Evas *e, void *event_info) { LOGD("_render_pre_cb() called, now invoking zwp_input_panel_surface_v1_set_ready()"); - zwp_input_panel_surface_v1_set_ready(wlkb.ips, 1); + if (wlkb.ips) + zwp_input_panel_surface_v1_set_ready(wlkb.ips, 1); Evas_Object *main_window = NATIVE_WINDOW_CAST(data); - evas_event_callback_del_full(evas_object_evas_get(main_window), - EVAS_CALLBACK_RENDER_PRE, _render_pre_cb, main_window); + if (main_window) + { + evas_event_callback_del_full(evas_object_evas_get(main_window), + EVAS_CALLBACK_RENDER_PRE, _render_pre_cb, main_window); + } delete_render_pre_timer(); } @@ -868,13 +872,17 @@ void CSCLCoreUIEFL::process_keyboard_ui_state_change(KEYBOARD_UI_STATE state) #ifdef WAYLAND 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); + if (m_main_window) { + 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"); - evas_render(evas_object_evas_get(NATIVE_WINDOW_CAST(m_main_window))); + if (m_main_window) { + LOGD("Forcing keyboard window to render"); + evas_render(evas_object_evas_get(NATIVE_WINDOW_CAST(m_main_window))); + } } #endif }