elm: register legacy_type correctly
authorMarcel Hollerbach <mail@marcel-hollerbach.de>
Tue, 26 Jun 2018 16:21:54 +0000 (12:21 -0400)
committerWonki Kim <wonki_.kim@samsung.com>
Wed, 27 Jun 2018 08:02:28 +0000 (17:02 +0900)
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
src/lib/elementary/efl_ui_button.eo
src/lib/elementary/efl_ui_button_legacy.eo
src/lib/elementary/efl_ui_layout_legacy.eo
src/lib/elementary/efl_ui_layout_object.c
src/lib/elementary/efl_ui_layout_object.eo

index 47d67d6..9b896c0 100644 (file)
@@ -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)
 {
index 20be706..5c752a0 100644 (file)
@@ -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; }
index f1d5d3a..bf01ef8 100644 (file)
@@ -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;
index 012d3e2..383f461 100644 (file)
@@ -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;
    }
 }
index a454b16..dc4841a 100644 (file)
@@ -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)
index e1eaaf4..7b36f05 100644 (file)
@@ -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; }