elm_conform: remember window pointer. 57/43057/2
authorJaehwan Kim <jae.hwan.kim@samsung.com>
Tue, 7 Jul 2015 07:22:31 +0000 (16:22 +0900)
committerJaehwan Kim <jae.hwan.kim@samsung.com>
Tue, 7 Jul 2015 10:50:42 +0000 (03:50 -0700)
When the conformant is removed, elm_widget_sub_object_del is called
before calling _elm_conformant_evas_object_smart_del.
Because parent-child relation about window-conformant is unrelated,
there's no meaning elm_widget_top_get in
_elm_conformant_evas_object_smart_del.

@fix

Conflicts:
src/lib/elm_conform.c

Change-Id: I5199cf5469d32c40f417670058531c642b49f845
origin: upstream

src/lib/elm_conform.c
src/lib/elm_widget_conform.h

index 92f33fe..908f3a9 100644 (file)
@@ -946,8 +946,6 @@ _elm_conformant_evas_object_smart_add(Eo *obj, Elm_Conformant_Data *_pd EINA_UNU
 EOLIAN static void
 _elm_conformant_evas_object_smart_del(Eo *obj, Elm_Conformant_Data *sd)
 {
-   Evas_Object *top;
-
 #ifdef HAVE_ELEMENTARY_X
    ecore_event_handler_del(sd->prop_hdl);
 #endif
@@ -958,8 +956,7 @@ _elm_conformant_evas_object_smart_del(Eo *obj, Elm_Conformant_Data *sd)
    evas_object_del(sd->portrait_indicator);
    evas_object_del(sd->landscape_indicator);
 
-   top = elm_widget_top_get(obj);
-   evas_object_data_set(top, "\377 elm,conformant", NULL);
+   evas_object_data_set(sd->win, "\377 elm,conformant", NULL);
 
    eo_do_super(obj, MY_CLASS, evas_obj_smart_del());
 }
@@ -1000,29 +997,27 @@ elm_conformant_add(Evas_Object *parent)
 EOLIAN static void
 _elm_conformant_eo_base_constructor(Eo *obj, Elm_Conformant_Data *sd)
 {
-   Evas_Object *top;
-
    eo_do_super(obj, MY_CLASS, eo_constructor());
    eo_do(obj,
          evas_obj_type_set(MY_CLASS_NAME_LEGACY),
          evas_obj_smart_callbacks_descriptions_set(_smart_callbacks),
          elm_interface_atspi_accessible_role_set(ELM_ATSPI_ROLE_FILLER));
 
-   top = elm_widget_top_get(obj);
-   _on_indicator_mode_changed(obj, top, NULL);
-   _on_rotation_changed(obj, top, NULL);
+   sd->win = elm_widget_top_get(obj);
+   _on_indicator_mode_changed(obj, sd->win, NULL);
+   _on_rotation_changed(obj, sd->win, NULL);
 
-   sd->indmode = elm_win_indicator_mode_get(top);
-   sd->ind_o_mode = elm_win_indicator_opacity_get(top);
-   sd->rot = elm_win_rotation_get(top);
-   evas_object_data_set(top, "\377 elm,conformant", obj);
+   sd->indmode = elm_win_indicator_mode_get(sd->win);
+   sd->ind_o_mode = elm_win_indicator_opacity_get(sd->win);
+   sd->rot = elm_win_rotation_get(sd->win);
+   evas_object_data_set(sd->win, "\377 elm,conformant", obj);
 
    evas_object_smart_callback_add
-     (top, "indicator,prop,changed", _on_indicator_mode_changed, obj);
+     (sd->win, "indicator,prop,changed", _on_indicator_mode_changed, obj);
    evas_object_smart_callback_add
-     (top, "rotation,changed", _on_rotation_changed, obj);
+     (sd->win, "rotation,changed", _on_rotation_changed, obj);
    evas_object_smart_callback_add
-     (top, "conformant,changed", _on_conformant_changed, obj);
+     (sd->win, "conformant,changed", _on_conformant_changed, obj);
 }
 
 static void
index 16a3509..c312314 100644 (file)
@@ -26,6 +26,7 @@
 typedef struct _Elm_Conformant_Data Elm_Conformant_Data;
 struct _Elm_Conformant_Data
 {
+   Evas_Object                   *win;
    Evas_Object                   *portrait_indicator;
    Evas_Object                   *landscape_indicator;
    Evas_Object                   *softkey;