From 248b525bbf8284c5da7ee5d8121ccf4e872528e8 Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Tue, 26 Jun 2018 12:21:54 -0400 Subject: [PATCH] elm: register legacy_type correctly Summary: What happened before is that we registered efl_ui_leyout_legacy for "elm_layout", which is not that good, since checking a (lets say) elm_button, for the type "elm_layout" would result in false. The same is with elm_button. fixes T7081 Reviewers: devilhorns, zmike Reviewed By: zmike Subscribers: cedric, #committers, zmike Tags: #efl Maniphest Tasks: T7081 Differential Revision: https://phab.enlightenment.org/D6430 --- src/lib/elementary/efl_ui_button.c | 16 ++++++++-------- src/lib/elementary/efl_ui_button.eo | 1 + src/lib/elementary/efl_ui_button_legacy.eo | 1 - src/lib/elementary/efl_ui_layout_legacy.eo | 1 - src/lib/elementary/efl_ui_layout_object.c | 17 +++++++++-------- src/lib/elementary/efl_ui_layout_object.eo | 1 + 6 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/lib/elementary/efl_ui_button.c b/src/lib/elementary/efl_ui_button.c index 47d67d6..9b896c0 100644 --- a/src/lib/elementary/efl_ui_button.c +++ b/src/lib/elementary/efl_ui_button.c @@ -48,6 +48,14 @@ static const Elm_Action key_actions[] = { {NULL, NULL} }; +#define MY_CLASS_NAME_LEGACY "elm_button" + +static void +_efl_ui_button_class_constructor(Efl_Class *klass) +{ + evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass); +} + static void _activate(Evas_Object *obj) { @@ -428,14 +436,6 @@ ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT(MY_CLASS_PFX) #include "efl_ui_button_legacy.eo.h" #include "efl_ui_button_legacy_part.eo.h" -#define MY_CLASS_NAME_LEGACY "elm_button" - -static void -_efl_ui_button_legacy_class_constructor(Efl_Class *klass) -{ - evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass); -} - EOLIAN static Eo * _efl_ui_button_legacy_efl_object_constructor(Eo *obj, void *_pd EINA_UNUSED) { diff --git a/src/lib/elementary/efl_ui_button.eo b/src/lib/elementary/efl_ui_button.eo index 20be706..5c752a0 100644 --- a/src/lib/elementary/efl_ui_button.eo +++ b/src/lib/elementary/efl_ui_button.eo @@ -9,6 +9,7 @@ class Efl.Ui.Button (Efl.Ui.Layout.Object, Efl.Ui.Clickable, Efl.Ui.Autorepeat, ]] legacy_prefix: elm_button; implements { + class.constructor; Efl.Object.constructor; Efl.Ui.Autorepeat.autorepeat_initial_timeout { set; get; } Efl.Ui.Autorepeat.autorepeat_gap_timeout { set; get; } diff --git a/src/lib/elementary/efl_ui_button_legacy.eo b/src/lib/elementary/efl_ui_button_legacy.eo index f1d5d3a..bf01ef8 100644 --- a/src/lib/elementary/efl_ui_button_legacy.eo +++ b/src/lib/elementary/efl_ui_button_legacy.eo @@ -7,7 +7,6 @@ class Efl.Ui.Button_Legacy (Efl.Ui.Button, Efl.Ui.Legacy) ]] data: null; implements { - class.constructor; Efl.Object.constructor; Efl.Ui.Widget.theme_apply; Efl.Ui.Widget.widget_sub_object_del; diff --git a/src/lib/elementary/efl_ui_layout_legacy.eo b/src/lib/elementary/efl_ui_layout_legacy.eo index 012d3e2..383f461 100644 --- a/src/lib/elementary/efl_ui_layout_legacy.eo +++ b/src/lib/elementary/efl_ui_layout_legacy.eo @@ -3,7 +3,6 @@ class Efl.Ui.Layout_Legacy (Efl.Ui.Layout.Object, Efl.Ui.Legacy) [[Elementary layout class]] data: null; implements { - class.constructor; Efl.Object.constructor; } } diff --git a/src/lib/elementary/efl_ui_layout_object.c b/src/lib/elementary/efl_ui_layout_object.c index a454b16..dc4841a 100644 --- a/src/lib/elementary/efl_ui_layout_object.c +++ b/src/lib/elementary/efl_ui_layout_object.c @@ -132,6 +132,14 @@ struct _Efl_Ui_Layout_Sub_Object_Cursor Eina_Bool engine_only : 1; }; +#define MY_CLASS_NAME_LEGACY "elm_layout" + +static void +_efl_ui_layout_object_class_constructor(Efl_Class *klass) +{ + evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass); +} + static void _on_sub_object_size_hint_change(void *data, Evas *e EINA_UNUSED, @@ -523,7 +531,7 @@ _efl_ui_layout_theme_internal(Eo *obj, Efl_Ui_Layout_Object_Data *sd) { ret = elm_widget_theme_object_set (obj, wd->resize_obj, - elm_widget_theme_klass_get(obj), + elm_widget_theme_klass_get(obj), elm_widget_theme_element_get(obj), elm_widget_theme_style_get(obj)); } @@ -2745,13 +2753,6 @@ ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(MY_CLASS_PFX) #include "efl_ui_layout_legacy.eo.h" -#define MY_CLASS_NAME_LEGACY "elm_layout" - -static void -_efl_ui_layout_legacy_class_constructor(Efl_Class *klass) -{ - evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass); -} EOLIAN static Eo * _efl_ui_layout_legacy_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED) diff --git a/src/lib/elementary/efl_ui_layout_object.eo b/src/lib/elementary/efl_ui_layout_object.eo index e1eaaf4..7b36f05 100644 --- a/src/lib/elementary/efl_ui_layout_object.eo +++ b/src/lib/elementary/efl_ui_layout_object.eo @@ -45,6 +45,7 @@ class Efl.Ui.Layout.Object (Efl.Ui.Widget, Efl.Part, Efl.Container, Efl.File, } } implements { + class.constructor; Efl.Object.constructor; Efl.Object.finalize; Efl.File.file { get; set; } -- 2.7.4