forked from enlightenment/efl
elm/config: monitor MODIFIED events on config files
eio/inotify now receives these events when the config file is modified, even though the file is copied onto that location. this fixes config updating at runtime @fix Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D9432
This commit is contained in:
parent
2057957d21
commit
b561e9632e
|
@ -34,6 +34,7 @@ Eina_Bool _config_profile_lock = EINA_FALSE;
|
||||||
static Ecore_Timer *_config_change_delay_timer = NULL;
|
static Ecore_Timer *_config_change_delay_timer = NULL;
|
||||||
static Ecore_Timer *_config_profile_change_delay_timer = NULL;
|
static Ecore_Timer *_config_profile_change_delay_timer = NULL;
|
||||||
static Ecore_Event_Handler *_monitor_file_created_handler = NULL;
|
static Ecore_Event_Handler *_monitor_file_created_handler = NULL;
|
||||||
|
static Ecore_Event_Handler *_monitor_file_modified_handler = NULL;
|
||||||
static Ecore_Event_Handler *_monitor_directory_created_handler = NULL;
|
static Ecore_Event_Handler *_monitor_directory_created_handler = NULL;
|
||||||
static Eio_Monitor *_eio_config_monitor = NULL;
|
static Eio_Monitor *_eio_config_monitor = NULL;
|
||||||
static Eio_Monitor *_eio_profile_monitor = NULL;
|
static Eio_Monitor *_eio_profile_monitor = NULL;
|
||||||
|
@ -4196,6 +4197,7 @@ _elm_config_sub_shutdown(void)
|
||||||
ELM_SAFE_FREE(_config_change_delay_timer, ecore_timer_del);
|
ELM_SAFE_FREE(_config_change_delay_timer, ecore_timer_del);
|
||||||
ELM_SAFE_FREE(_config_profile_change_delay_timer, ecore_timer_del);
|
ELM_SAFE_FREE(_config_profile_change_delay_timer, ecore_timer_del);
|
||||||
ELM_SAFE_FREE(_monitor_file_created_handler, ecore_event_handler_del);
|
ELM_SAFE_FREE(_monitor_file_created_handler, ecore_event_handler_del);
|
||||||
|
ELM_SAFE_FREE(_monitor_file_modified_handler, ecore_event_handler_del);
|
||||||
ELM_SAFE_FREE(_monitor_directory_created_handler, ecore_event_handler_del);
|
ELM_SAFE_FREE(_monitor_directory_created_handler, ecore_event_handler_del);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4226,7 +4228,7 @@ _config_change_delay_cb(void *data EINA_UNUSED)
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_elm_config_file_monitor_cb(void *data EINA_UNUSED,
|
_elm_config_file_monitor_cb(void *data EINA_UNUSED,
|
||||||
int type EINA_UNUSED,
|
int type,
|
||||||
void *event)
|
void *event)
|
||||||
{
|
{
|
||||||
Eio_Monitor_Event *ev = event;
|
Eio_Monitor_Event *ev = event;
|
||||||
|
@ -4234,7 +4236,7 @@ _elm_config_file_monitor_cb(void *data EINA_UNUSED,
|
||||||
|
|
||||||
if (ev->monitor == _eio_config_monitor)
|
if (ev->monitor == _eio_config_monitor)
|
||||||
{
|
{
|
||||||
if (type == EIO_MONITOR_FILE_CREATED)
|
if ((type == EIO_MONITOR_FILE_CREATED) || (type == EIO_MONITOR_FILE_MODIFIED))
|
||||||
{
|
{
|
||||||
if (!strcmp(file, "base.cfg"))
|
if (!strcmp(file, "base.cfg"))
|
||||||
{
|
{
|
||||||
|
@ -4246,7 +4248,7 @@ _elm_config_file_monitor_cb(void *data EINA_UNUSED,
|
||||||
}
|
}
|
||||||
if (ev->monitor == _eio_profile_monitor)
|
if (ev->monitor == _eio_profile_monitor)
|
||||||
{
|
{
|
||||||
if (type == EIO_MONITOR_FILE_CREATED)
|
if ((type == EIO_MONITOR_FILE_CREATED) || (type == EIO_MONITOR_FILE_MODIFIED))
|
||||||
{
|
{
|
||||||
if ((!_config_profile_lock) && (!strcmp(file, "profile.cfg")))
|
if ((!_config_profile_lock) && (!strcmp(file, "profile.cfg")))
|
||||||
{
|
{
|
||||||
|
@ -4299,6 +4301,8 @@ _elm_config_sub_init(void)
|
||||||
_eio_profile_monitor = eio_monitor_add(buf);
|
_eio_profile_monitor = eio_monitor_add(buf);
|
||||||
_monitor_file_created_handler = ecore_event_handler_add
|
_monitor_file_created_handler = ecore_event_handler_add
|
||||||
(EIO_MONITOR_FILE_CREATED, _elm_config_file_monitor_cb, NULL);
|
(EIO_MONITOR_FILE_CREATED, _elm_config_file_monitor_cb, NULL);
|
||||||
|
_monitor_file_modified_handler = ecore_event_handler_add
|
||||||
|
(EIO_MONITOR_FILE_MODIFIED, _elm_config_file_monitor_cb, NULL);
|
||||||
_monitor_directory_created_handler = ecore_event_handler_add
|
_monitor_directory_created_handler = ecore_event_handler_add
|
||||||
(EIO_MONITOR_DIRECTORY_CREATED, _elm_config_file_monitor_cb, NULL);
|
(EIO_MONITOR_DIRECTORY_CREATED, _elm_config_file_monitor_cb, NULL);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue