From: Michal Szczecinski Date: Tue, 12 Sep 2023 08:45:03 +0000 (+0200) Subject: efl_ui_widget: Improved safety of the efl_ui_widget_sub_object_del. X-Git-Tag: accepted/tizen/unified/20230913.091622^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F74%2F298674%2F1;p=platform%2Fupstream%2Fefl.git efl_ui_widget: Improved safety of the efl_ui_widget_sub_object_del. Set focusable flag only for valid objects in tree. Change-Id: I869d0e78212c2dcf295b0259e5de977ae8bf3113 --- diff --git a/src/lib/elementary/efl_ui_widget.c b/src/lib/elementary/efl_ui_widget.c index 95580c3..c9fd50a 100644 --- a/src/lib/elementary/efl_ui_widget.c +++ b/src/lib/elementary/efl_ui_widget.c @@ -1828,22 +1828,26 @@ _efl_ui_widget_widget_sub_object_del(Eo *obj, Elm_Widget_Smart_Data *sd, Evas_Ob Evas_Object *subobj; ELM_WIDGET_DATA_GET(parent, sdp); - - sdp->child_can_focus = EINA_FALSE; - for (unsigned int i = 0; i < eina_array_count(sdp->children); ++i) + //TIZEN_ONLY(20230912): Improved safety of efl_ui_widget_sub_object_del + if (sdp) { - subobj = eina_array_data_get(sdp->children, i); - if ((subobj != sobj) && (_is_focusable(subobj))) + sdp->child_can_focus = EINA_FALSE; + for (unsigned int i = 0; i < eina_array_count(sdp->children); ++i) { - sdp->child_can_focus = EINA_TRUE; - break; + subobj = eina_array_data_get(sdp->children, i); + if ((subobj != sobj) && (_is_focusable(subobj))) + { + sdp->child_can_focus = EINA_TRUE; + break; + } } - } - /* break again, child_can_focus went back to - * original value */ - if (sdp->child_can_focus) break; - parent = sdp->parent_obj; + /* break again, child_can_focus went back to + * original value */ + if (sdp->child_can_focus) break; + parent = sdp->parent_obj; + } + // } } //