slider: fix slider vector logic for supporting slider popup. 51/45551/1
authorHosang Kim <hosang12.kim@samsung.com>
Thu, 6 Aug 2015 09:15:54 +0000 (18:15 +0900)
committerJaehwan Kim <jae.hwan.kim@samsung.com>
Fri, 7 Aug 2015 08:54:46 +0000 (17:54 +0900)
Change-Id: I724a17249783dd27f33eec3fb970654446af5fb0

src/lib/elm_priv.h
src/lib/elm_slider.c
src/lib/tizen_vector.c

index 810e7cd..dcc162c 100644 (file)
@@ -575,7 +575,7 @@ void tizen_vg_button_set(Elm_Button *obj);
 void tizen_vg_check_set(Elm_Check *obj);
 void tizen_vg_radio_set(Elm_Radio *obj);
 void tizen_vg_progressbar_set(Elm_Progressbar *obj);
-void tizen_vg_slider_set(Elm_Slider *obj);
+void tizen_vg_slider_set(Elm_Slider *obj, Evas_Object *popup);
 void tizen_vg_check_state_set(Elm_Check *obj);
 #endif
 
index 9c6f296..09824ad 100644 (file)
@@ -505,7 +505,6 @@ _popup_add(Elm_Slider_Data *sd, Eo *obj)
 
    // XXX popup needs to adapt to theme etc.
    sd->popup = edje_object_add(evas_object_evas_get(obj));
-   evas_object_smart_member_add(sd->popup, obj);
    if (sd->horizontal)
      _elm_theme_set(NULL, sd->popup, "slider", "horizontal/popup", elm_widget_style_get(obj));
    else
@@ -557,7 +556,7 @@ _elm_slider_elm_widget_theme_apply(Eo *obj, Elm_Slider_Data *sd)
    if (!int_ret) return EINA_FALSE;
 
 #ifdef TIZEN_VECTOR_UX
-   tizen_vg_slider_set(obj);
+   tizen_vg_slider_set(obj, sd->popup);
 #endif
 
    if (sd->popup)
@@ -875,12 +874,12 @@ _elm_slider_evas_object_smart_add(Eo *obj, Elm_Slider_Data *priv)
    evas_object_pass_events_set(priv->spacer, EINA_TRUE);
    elm_layout_content_set(obj, "elm.swallow.bar", priv->spacer);
 
+   _popup_add(priv, obj);
+
 #ifdef TIZEN_VECTOR_UX
-   tizen_vg_slider_set(obj);
+   tizen_vg_slider_set(obj, priv->popup);
 #endif
 
-   _popup_add(priv, obj);
-
    evas_object_event_callback_add
      (priv->spacer, EVAS_CALLBACK_MOUSE_DOWN, _spacer_down_cb, obj);
    evas_object_event_callback_add
index 572fdde..264f04c 100644 (file)
@@ -1743,6 +1743,7 @@ typedef struct vg_slider_s
    Evas_Object *vg[7];
    Efl_VG_Shape *shape[7];
    Evas_Object *obj;
+   Evas_Object *popup;
    Eina_Stringshare *style;
 } vg_slider;
 
@@ -1912,11 +1913,12 @@ _slider_create_handle(vg_slider *vd)
    evas_object_event_callback_add(vd->vg[slider_handle_pressed], EVAS_CALLBACK_RESIZE,
                                   slider_vg_handle_pressed_resize_cb, vd);
    elm_object_part_content_set(vd->obj, "elm.dragable.slider:elm.swallow.tizen_vg_shape1", vd->vg[slider_handle]);
-   elm_object_part_content_set(vd->obj, "elm.dragable.slider:elm.swallow.tizen_vg_shape2", vd->vg[slider_handle_pressed]);
+   if (vd->popup)
+     edje_object_part_swallow(vd->popup, "elm.swallow.tizen_vg_shape2", vd->vg[slider_handle_pressed]);
 }
 
 void
-tizen_vg_slider_set(Elm_Slider *obj)
+tizen_vg_slider_set(Elm_Slider *obj, Evas_Object *popup)
 {
    vg_slider *vd = evas_object_data_get(obj, vg_key);
    if (vd)
@@ -1936,6 +1938,7 @@ tizen_vg_slider_set(Elm_Slider *obj)
         vd = calloc(1, sizeof(vg_slider));
         evas_object_data_set(obj, vg_key, vd);
         vd->obj = obj;
+        vd->popup = popup;
         // callback to free vd data
         evas_object_event_callback_add(vd->obj, EVAS_CALLBACK_DEL,
                                        slider_del_cb, NULL);