vconf_ignore_key_changed(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, setting_display_brightness_lowbat_cb);
SettingDisplayUG *ad = (SettingDisplayUG *) cb;
+ if (ad->set_idler) {
+ ecore_idler_del(ad->set_idler);
+ ad->set_idler = NULL;
+ }
elm_naviframe_item_pop(ad->navi_bar);
if (ad->popup)
{
}
}
+static Eina_Bool __set_brightness_on_idle(void *data)
+{
+ SETTING_TRACE_BEGIN;
+ SettingDisplayUG *ad = (SettingDisplayUG *) data;
+ if (!ad || !ad->data_br_sli || !ad->data_br_sli->eo_check)
+ {
+ SETTING_TRACE_ERROR("!ad || !ad->data_br_sli || !ad->data_br_sli->eo_check");
+ ad->set_idler = NULL;
+ return FALSE;
+ }
+ //Get the current real value of slider
+ Evas_Object *obj = ad->data_br_sli->eo_check;
+ double val = elm_slider_value_get(obj);
+ int value = (int)(val + 0.5);
+ SETTING_TRACE("val:%f", val);
+ SETTING_TRACE("value:%d", value);
+ setting_display_set_slider_value(ad, obj, value);
+ //After return False, the idler will be deleted directly,so here set ad->set_idler as NULL directly.
+ ad->set_idler = NULL;
+ return FALSE;
+}
static void
setting_display_birghtness_bright_slider_value_change_cb(void *data,
SETTING_TRACE("value:%d", value);
if (value != old_val)
{
- setting_display_set_slider_value(ad, obj, value);
+ //setting_display_set_slider_value(ad, obj, value);
+ if(isEmulBin())
+ {
+ SETTING_TRACE("It is in Emulator, need special process to improve the performence");
+ if (ad->set_idler) {
+ ecore_idler_del(ad->set_idler);
+ ad->set_idler = NULL;
+ }
+ ad->set_idler = ecore_idler_add((Ecore_Task_Cb) __set_brightness_on_idle, ad);
+ }
+ else
+ {
+ SETTING_TRACE("It is in Real Target, Set the brightness directly.");
+ setting_display_set_slider_value(ad, obj, value);
+ }
old_val = value;
}
}