diff --git a/src/bin/e_backlight.c b/src/bin/e_backlight.c index dbd63cedb..76850e1b5 100644 --- a/src/bin/e_backlight.c +++ b/src/bin/e_backlight.c @@ -253,6 +253,7 @@ _e_backlight_update(E_Zone *zone) if (bl_sysval) { sysmode = MODE_SYS; + xbl_avail = EINA_FALSE; _bl_sys_level_get(); return; } @@ -338,6 +339,17 @@ _bl_anim(void *data, double pos) } #ifdef HAVE_EEZE +static void +_bl_sys_change(const char *device, Eeze_Udev_Event event EINA_UNUSED, void *data EINA_UNUSED, Eeze_Udev_Watch *watch EINA_UNUSED) +{ + if (device == bl_sysval) + { + _bl_sys_level_get(); + ecore_event_add(E_EVENT_BACKLIGHT_CHANGE, NULL, NULL, NULL); + } + eina_stringshare_del(device); +} + static void _bl_sys_find(void) { @@ -422,6 +434,7 @@ _bl_sys_find(void) } /* clear out preferred devs list */ E_FREE_LIST(pdevs, eina_stringshare_del); + eeze_udev_watch_add(EEZE_UDEV_TYPE_BACKLIGHT, EEZE_UDEV_EVENT_CHANGE, _bl_sys_change, NULL); } static void