@fix broken slider popup hide logic
authorzmike <michael.blumenkrantz@gmail.com>
Sun, 2 Mar 2014 20:38:42 +0000 (15:38 -0500)
committerMike Blumenkrantz <zmike@samsung.com>
Sun, 2 Mar 2014 20:41:57 +0000 (15:41 -0500)
setting a flag here made it impossible to have any kind of transition animation on the indicator and was a poor workaround for fixing a theme issue

src/lib/elm_slider.c
src/lib/elm_widget_slider.h

index 7c9e5637f0fe6afda5bce8bbfe38faed42534cc2..977500f5acdc1ce94dd5cf15cd76d2128e6661a3 100644 (file)
@@ -317,14 +317,10 @@ _popup_hide(void *data,
    ELM_SLIDER_DATA_GET(data, sd);
    if (sd->popup)
      {
-        if (!sd->popup_hiding)
+        if (!(elm_widget_focus_get(data) && sd->always_popup_show))
           {
-             if (!(elm_widget_focus_get(data) && sd->always_popup_show))
-               {
-                  edje_object_signal_emit(sd->popup, "popup,hide", "elm"); // XXX: for compat
-                  edje_object_signal_emit(sd->popup, "elm,popup,hide", "elm");
-                  sd->popup_hiding = EINA_TRUE;
-               }
+             edje_object_signal_emit(sd->popup, "popup,hide", "elm"); // XXX: for compat
+             edje_object_signal_emit(sd->popup, "elm,popup,hide", "elm");
           }
      }
 }
@@ -338,14 +334,8 @@ _popup_hide_done(void *data,
    ELM_SLIDER_DATA_GET(data, sd);
    if (sd->popup)
      {
-        if (sd->popup_hiding)
-          {
-             if (!(elm_widget_focus_get(data) && sd->always_popup_show))
-               {
-                  evas_object_hide(sd->popup);
-                  sd->popup_hiding = EINA_FALSE;
-               }
-          }
+        if (!(elm_widget_focus_get(data) && sd->always_popup_show))
+          evas_object_hide(sd->popup);
      }
 }
 
index 3a6304f8aad5636e212cb8e1e75645d40ecde6c1..8f9f14b07b4c629d1df0a1e8e5ff9197c312f23b 100644 (file)
@@ -41,7 +41,6 @@ struct _Elm_Slider_Smart_Data
    Eina_Bool             indicator_show : 1;
    Eina_Bool             spacer_down : 1;
    Eina_Bool             frozen : 1;
-   Eina_Bool             popup_hiding : 1;
    Eina_Bool             units_show : 1;
    Eina_Bool             always_popup_show : 1; /*this flag is to set the visiblity of slider indicator
                                                 * if this flag is set  then the indicator always show