seoz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=26b6320f46478f8d1a6abbf76fd20144e369664f
commit 26b6320f46478f8d1a6abbf76fd20144e369664f Author: Daniel Juyung Seo <juyung....@samsung.com> Date: Thu Nov 28 17:06:39 2013 +0900 elm_spinner.c: support mouse wheel in spinner. Spinner didn't work with mouse wheel which is a bug. This fixes T587. --- ChangeLog | 4 ++++ NEWS | 1 + src/lib/elm_spinner.c | 18 +++++++++++++++++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 0f7d397..6703d47 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1756,3 +1756,7 @@ 2013-11-25 ChunEon Park (Hermet) * image: fix the elm_image_prescale_set() to work properly. + +2013-11-28 Daniel Juyung Seo (SeoZ) + + * spinner: fix mouse wheel support. diff --git a/NEWS b/NEWS index 740858c..c99ebce 100644 --- a/NEWS +++ b/NEWS @@ -157,6 +157,7 @@ Improvements: * Popup: Change the behavior of adding/removing buttons dynamically. User defined button's position is kept. * Fileselector: Monitor and update changes of selected path automatically while EIO is working. * Hoversel: Added focus support on hoversel items. + * Spinner: Support mouse wheel. Fixes: * Now elm_datetime_field_limit_set() can set year limits wihtout problems. diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c index 2021f3a..e7c881b 100644 --- a/src/lib/elm_spinner.c +++ b/src/lib/elm_spinner.c @@ -431,8 +431,10 @@ _elm_spinner_smart_event(Eo *obj, void *_pd EINA_UNUSED, va_list *list) Evas_Object *src = va_arg(*list, Evas_Object *); Evas_Callback_Type type = va_arg(*list, Evas_Callback_Type); - Evas_Event_Key_Down *ev = va_arg(*list, void *); + void *event_info = va_arg(*list, void *); + Evas_Event_Key_Down *ev = event_info; Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Evas_Event_Mouse_Wheel *mev; if (ret) *ret = EINA_FALSE; (void) src; @@ -490,6 +492,20 @@ _elm_spinner_smart_event(Eo *obj, void *_pd EINA_UNUSED, va_list *list) goto success; } + else if (type == EVAS_CALLBACK_MOUSE_WHEEL) + { + mev = event_info; + if (mev->z < 0) + { + _val_inc_start(obj); + elm_layout_signal_emit(obj, "elm,right,anim,activate", "elm"); + } + else + { + _val_dec_start(obj); + elm_layout_signal_emit(obj, "elm,left,anim,activate", "elm"); + } + } return; --