diff options
author | Subodh Kumar <s7158.kumar@samsung.com> | 2016-02-12 21:00:50 +0100 |
---|---|---|
committer | Cedric BAIL <cedric@osg.samsung.com> | 2016-02-12 21:00:53 +0100 |
commit | cbbf08b4ed1157efaa1597cad798fb506c1853a8 (patch) | |
tree | f42c98aa5056a24e9f9371f679d61089247012c5 | |
parent | f5b3d50b8801d4ec450d4dfbc5e64ecebba8265e (diff) | |
download | elementary-cbbf08b4ed1157efaa1597cad798fb506c1853a8.tar.gz |
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 <cedric@osg.samsung.com>
-rw-r--r-- | data/themes/edc/elm/spinner.edc | 11 | ||||
-rw-r--r-- | src/lib/elm_spinner.c | 8 |
2 files changed, 18 insertions, 1 deletions
diff --git a/data/themes/edc/elm/spinner.edc b/data/themes/edc/elm/spinner.edc index 9b4257d71..463c6c3ea 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 45674bdad..0e94cf119 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); |