summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/themes/edc/elm/spinner.edc11
-rw-r--r--src/lib/elm_spinner.c8
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);