slider: fix slider indicator behavior 25/125825/3
authorHosang Kim <hosang12.kim@samsung.com>
Wed, 19 Apr 2017 04:18:39 +0000 (13:18 +0900)
committerYoungbok Shin <youngb.shin@samsung.com>
Wed, 19 Apr 2017 09:24:39 +0000 (02:24 -0700)
1. Slider indicator will be shown, when always visible mode is on.

2. When slider is disabled, slider indicator will be disabled, too.

@tizen_fix

Change-Id: Ia08e15a191c5cfced14b9cc4a1944af11b0acf5e

src/lib/elm_slider.c
src/lib/elm_slider.eo

index 78ef839..cb1677e 100644 (file)
@@ -1194,6 +1194,16 @@ _elm_slider_indicator_visible_mode_set(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd,
 {
    if (sd->indicator_visible_mode == indicator_visible_mode) return;
    sd->indicator_visible_mode = indicator_visible_mode;
+   //TIZEN_ONLY(20170419): fix slider indicator behavior
+   if (sd->indicator_visible_mode == ELM_SLIDER_INDICATOR_VISIBLE_MODE_ALWAYS)
+     {
+        _popup_show(obj, NULL, NULL, NULL);
+     }
+   else
+     {
+        _popup_hide(obj, NULL, NULL, NULL);
+     }
+   //
 }
 
 EOLIAN static Elm_Slider_Indicator_Visible_Mode
@@ -1247,6 +1257,25 @@ _elm_slider_elm_widget_mirrored_set(Eo *obj EINA_UNUSED, Elm_Slider_Data *_pd EI
 }
 //
 
+//TIZEN_ONLY(20170419): fix slider indicator behavior
+EOLIAN static Eina_Bool
+_elm_slider_elm_widget_disable(Eo *obj, Elm_Slider_Data *sd)
+{
+   Eina_Bool int_ret = EINA_FALSE;
+   eo_do_super(obj, MY_CLASS, int_ret = elm_obj_widget_disable());
+   if (!int_ret) return EINA_FALSE;
+
+   if (sd->popup)
+     {
+        if (elm_widget_disabled_get(obj))
+          edje_object_signal_emit(sd->popup, "elm,state,disabled", "elm");
+        else
+          edje_object_signal_emit(sd->popup, "elm,state,enabled", "elm");
+     }
+   return EINA_TRUE;
+}
+//
+
 EOLIAN static void
 _elm_slider_class_constructor(Eo_Class *klass)
 {
index 19c2439..d22d9e8 100644 (file)
@@ -379,6 +379,9 @@ class Elm.Slider (Elm.Layout, Elm_Interface_Atspi_Value,
       Elm.Widget.focus_direction_manager_is;
       Elm.Widget.on_focus;
       Elm.Widget.event;
+      //TIZEN_ONLY(20170419): fix slider indicator behavior
+      Elm.Widget.disable;
+      //
       //TIZEN_ONLY(20161115): apply UI Mirroring for Tizen 3.0 UX
       Elm.Widget.mirrored;
       //