_efl_ui_widget_efl_object_constructor(Eo *obj, Elm_Widget_Smart_Data *sd EINA_UNUSED)
{
sd->on_create = EINA_TRUE;
+ sd->window = efl_provider_find(efl_parent_get(obj), EFL_UI_WIN_CLASS);
+ _efl_ui_focus_event_redirector(obj, obj);
efl_canvas_group_clipped_set(obj, EINA_FALSE);
obj = efl_constructor(efl_super(obj, MY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
if ((klass == EFL_CONFIG_INTERFACE) || (klass == EFL_CONFIG_GLOBAL_CLASS))
return _efl_config_obj;
+ if (klass == EFL_UI_WIN_CLASS)
+ {
+ if (pd->window)
+ return pd->window;
+ //let the parent_obj lookup handle this
+ }
+
if (klass == EFL_ACCESS_OBJECT_MIXIN)
return (Eo*)obj;
Evas_Object *resize_obj; /**< an unique object for each widget that shows the look of a widget. Resize object's geometry is same as the widget. This resize object is different from that of window's resize object. */
Evas_Object *hover_obj;
Evas_Object *bg;
+ Evas_Object *window;
Eina_List *tooltips, *cursors;
//TIZEN_ONLY(20180607): Restore legacy focus
Evas_Object *focus_previous, *focus_next;
eina_log_abort_on_critical_set(1);
}
+EFL_START_TEST(efl_ui_test_widget_win_provider_find)
+{
+ State s;
+
+ _small_ui(&s);
+ ck_assert_ptr_eq(efl_provider_find(s.btn1, EFL_UI_WIN_CLASS), s.win);
+ efl_ui_widget_sub_object_del(s.box, s.btn1);
+ ck_assert_ptr_eq(efl_ui_widget_parent_get(s.btn1), NULL);
+ ck_assert_ptr_eq(efl_provider_find(s.btn1, EFL_UI_WIN_CLASS), s.win);
+}
+EFL_END_TEST
+
void efl_ui_test_widget(TCase *tc)
{
tcase_add_checked_fixture(tc, _setup, _shutdown);
tcase_add_test(tc, efl_ui_test_widget_parent_relation);
tcase_add_test(tc, efl_ui_test_widget_disabled_parent);
tcase_add_test(tc, efl_ui_test_widget_disabled_behaviour);
+ tcase_add_test(tc, efl_ui_test_widget_win_provider_find);
}