cedric pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=cbbf08b4ed1157efaa1597cad798fb506c1853a8

commit cbbf08b4ed1157efaa1597cad798fb506c1853a8
Author: Subodh Kumar <s7158.ku...@samsung.com>
Date:   Fri Feb 12 21:00:50 2016 +0100

    spinner: fix vertical drag style and logic
    
    Summary:
    Fix vertical drag style and logic.
    
    For vertical spinner graggable should move
    in y direction and since drag value is inverse
    of spinner increment and decrement so delta should be inversed.
    
    @fix
    
    Test Plan:
    1. Elementary test
    2. Vertical spinner
    
    Reviewers: cedric
    
    Projects: #elementary
    
    Differential Revision: https://phab.enlightenment.org/D3662
    
    Signed-off-by: Cedric BAIL <ced...@osg.samsung.com>
---
 data/themes/edc/elm/spinner.edc | 11 +++++++++++
 src/lib/elm_spinner.c           |  8 +++++++-
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/data/themes/edc/elm/spinner.edc b/data/themes/edc/elm/spinner.edc
index 9b4257d..463c6c3 100644
--- a/data/themes/edc/elm/spinner.edc
+++ b/data/themes/edc/elm/spinner.edc
@@ -224,5 +224,16 @@ group { name: "elm/spinner/base/vertical";
             align: 0.0 0.5;
          }
       }
+      part { name: "elm.dragable.slider"; type: RECT;
+         repeat_events: 1;
+         dragable.x: 0 0 0;
+         dragable.y: 1 1 0;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            rel1.to: "elm.swallow.text_button";
+            rel2.to: "elm.swallow.text_button";
+            color: 0 0 0 0;
+         }
+      }
    }
 }
diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c
index 45674bd..0e94cf1 100644
--- a/src/lib/elm_spinner.c
+++ b/src/lib/elm_spinner.c
@@ -260,15 +260,18 @@ _drag_cb(void *data,
 {
    double pos = 0.0, delta;
    Evas_Object *obj = data;
+   const char *style;
 
    ELM_SPINNER_DATA_GET(obj, sd);
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
 
    if (sd->entry_visible) return;
 
+   style = elm_widget_style_get(obj);
+
    if (sd->button_layout)
      {
-        if (!strncmp(elm_widget_style_get(obj), "vertical", 8))
+        if (!strncmp(style, "vertical", 8))
           eo_do((Eo *)wd->resize_obj,
                 edje_obj_part_drag_value_get("elm.dragable.slider", NULL, 
&pos));
         else
@@ -288,6 +291,9 @@ _drag_cb(void *data,
    delta = sd->drag_val_step * sd->step * _elm_config->scale;
    if (pos < sd->drag_prev_pos) delta *= -1;
    sd->drag_prev_pos = pos;
+
+   /* Dragable is inverse of spinner value */
+   if (!strncmp(style, "vertical", 8)) delta *= -1;
    /* If we are on rtl mode, change the delta to be negative on such changes */
    if (elm_widget_mirrored_get(obj)) delta *= -1;
    if (_value_set(data, sd->val + delta)) _label_write(data);

-- 


Reply via email to