summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2019-07-22 13:09:03 +0200
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2019-07-22 13:13:53 +0200
commit3fa5d40504d09fc0396afbd8c3e96a552fcc0559 (patch)
tree746778aebb9485989b35a6fc67ad7a15b77a4168
parent0fe136615e8646b7b049d3dff85f46e3b43cde20 (diff)
downloadefl-3fa5d40504d09fc0396afbd8c3e96a552fcc0559.tar.gz
efl_ui_*: add the new events to the widgets
previous commit introduced new events to range_display. This commit ensures correct emittation of those events. ref T7895 Differential Revision: https://phab.enlightenment.org/D9372
-rw-r--r--src/lib/elementary/efl_ui_progressbar.c13
-rw-r--r--src/lib/elementary/efl_ui_slider.c13
2 files changed, 23 insertions, 3 deletions
diff --git a/src/lib/elementary/efl_ui_progressbar.c b/src/lib/elementary/efl_ui_progressbar.c
index e07839d068..8f9c8adbd6 100644
--- a/src/lib/elementary/efl_ui_progressbar.c
+++ b/src/lib/elementary/efl_ui_progressbar.c
@@ -572,8 +572,17 @@ _progressbar_part_value_set(Eo *obj, Efl_Ui_Progressbar_Data *sd, const char *pa
_val_set(obj);
_units_set(obj);
- efl_event_callback_legacy_call
- (obj, EFL_UI_RANGE_EVENT_CHANGED, NULL);
+ if (elm_widget_is_legacy(obj))
+ efl_event_callback_legacy_call
+ (obj, EFL_UI_RANGE_EVENT_CHANGED, NULL);
+ else
+ {
+ efl_event_callback_call(obj, EFL_UI_RANGE_EVENT_CHANGED, NULL);
+ if (sd->val == min)
+ efl_event_callback_call(obj, EFL_UI_RANGE_EVENT_MIN_REACHED, NULL);
+ if (sd->val == max)
+ efl_event_callback_call(obj, EFL_UI_RANGE_EVENT_MAX_REACHED, NULL);
+ }
}
static double
diff --git a/src/lib/elementary/efl_ui_slider.c b/src/lib/elementary/efl_ui_slider.c
index 0458faab83..f6d831f3f7 100644
--- a/src/lib/elementary/efl_ui_slider.c
+++ b/src/lib/elementary/efl_ui_slider.c
@@ -49,6 +49,16 @@ _is_horizontal(Efl_Ui_Layout_Orientation dir)
}
static void
+_emit_events(Eo *obj, Efl_Ui_Slider_Data *sd)
+{
+ efl_event_callback_call(obj, EFL_UI_RANGE_EVENT_CHANGED, NULL);
+ if (sd->val == sd->val_min)
+ efl_event_callback_call(obj, EFL_UI_RANGE_EVENT_MIN_REACHED, NULL);
+ if (sd->val == sd->val_max)
+ efl_event_callback_call(obj, EFL_UI_RANGE_EVENT_MAX_REACHED, NULL);
+}
+
+static void
_efl_ui_slider_val_fetch(Evas_Object *obj, Efl_Ui_Slider_Data *sd, Eina_Bool user_event)
{
double posx = 0.0, posy = 0.0, pos = 0.0, val;
@@ -76,7 +86,7 @@ _efl_ui_slider_val_fetch(Evas_Object *obj, Efl_Ui_Slider_Data *sd, Eina_Bool us
sd->val = val;
if (user_event)
{
- efl_event_callback_call(obj, EFL_UI_RANGE_EVENT_CHANGED, NULL);
+ _emit_events(obj, sd);
efl_event_callback_legacy_call(obj, EFL_UI_RANGE_EVENT_CHANGED, NULL);
ecore_timer_del(sd->delay);
sd->delay = ecore_timer_add(SLIDER_DELAY_CHANGED_INTERVAL, _delay_change, obj);
@@ -778,6 +788,7 @@ _efl_ui_slider_efl_ui_range_display_range_value_set(Eo *obj, Efl_Ui_Slider_Data
if (sd->val < sd->val_min) sd->val = sd->val_min;
if (sd->val > sd->val_max) sd->val = sd->val_max;
+ _emit_events(obj, sd);
efl_ui_slider_val_set(obj);
}