diff --git a/legacy/efreet/src/lib/efreet_utils.c b/legacy/efreet/src/lib/efreet_utils.c index 06b69742a4..a4f98656ce 100644 --- a/legacy/efreet/src/lib/efreet_utils.c +++ b/legacy/efreet/src/lib/efreet_utils.c @@ -293,7 +293,7 @@ efreet_util_desktop_file_id_find(const char *file_id) ecore_hash_set(desktop_by_file_id, (void *)ecore_string_instance(file_id), ud); ev = NEW(Efreet_Event_Desktop_Change, 1); - ev->desktop = desktop; + ev->current = desktop; ev->change = EFREET_DESKTOP_CHANGE_ADD; ecore_event_add(EFREET_EVENT_DESKTOP_CHANGE, ev, NULL, NULL); } @@ -518,7 +518,7 @@ efreet_util_cache_add(const char *path, const char *file_id, int priority) ecore_hash_set(desktop_by_file_id, (void *)ecore_string_instance(file_id), ud); ev = NEW(Efreet_Event_Desktop_Change, 1); - ev->desktop = desktop; + ev->current = desktop; ev->change = EFREET_DESKTOP_CHANGE_ADD; ecore_event_add(EFREET_EVENT_DESKTOP_CHANGE, ev, NULL, NULL); } @@ -527,8 +527,9 @@ efreet_util_cache_add(const char *path, const char *file_id, int priority) Efreet_Event_Desktop_Change *ev; ev = NEW(Efreet_Event_Desktop_Change, 1); - ev->desktop = desktop; - ev->change = EFREET_DESKTOP_CHANGE_ADD; + ev->current = desktop; + ev->previous = ud->desktop; + ev->change = EFREET_DESKTOP_CHANGE_UPDATE; ecore_event_add(EFREET_EVENT_DESKTOP_CHANGE, ev, NULL, NULL); ud->desktop = desktop; @@ -555,7 +556,7 @@ efreet_util_cache_remove(const char *path, const char *file_id, int priority) ecore_hash_remove(desktop_by_file_id, file_id); ev = NEW(Efreet_Event_Desktop_Change, 1); - ev->desktop = ud->desktop; + ev->current = ud->desktop; ev->change = EFREET_DESKTOP_CHANGE_REMOVE; ecore_event_add(EFREET_EVENT_DESKTOP_CHANGE, ev, NULL, NULL); @@ -588,11 +589,9 @@ efreet_util_cache_reload(const char *path, const char *file_id, int priority) if (ud->priority < priority) return; ev = NEW(Efreet_Event_Desktop_Change, 1); - ev->desktop = desktop; - if (ud->desktop == desktop) - ev->change = EFREET_DESKTOP_CHANGE_UPDATE; - else - ev->change = EFREET_DESKTOP_CHANGE_ADD; + ev->current = desktop; + ev->previous = ud->desktop; + ev->change = EFREET_DESKTOP_CHANGE_UPDATE; ecore_event_add(EFREET_EVENT_DESKTOP_CHANGE, ev, NULL, NULL); ud->desktop = desktop; @@ -607,7 +606,7 @@ efreet_util_cache_reload(const char *path, const char *file_id, int priority) ecore_hash_set(desktop_by_file_id, (void *)ecore_string_instance(file_id), ud); ev = NEW(Efreet_Event_Desktop_Change, 1); - ev->desktop = desktop; + ev->current = desktop; ev->change = EFREET_DESKTOP_CHANGE_ADD; ecore_event_add(EFREET_EVENT_DESKTOP_CHANGE, ev, NULL, NULL); } diff --git a/legacy/efreet/src/lib/efreet_utils.h b/legacy/efreet/src/lib/efreet_utils.h index dc1cc73baf..e9c4bd21e3 100644 --- a/legacy/efreet/src/lib/efreet_utils.h +++ b/legacy/efreet/src/lib/efreet_utils.h @@ -15,7 +15,8 @@ typedef struct Efreet_Event_Desktop_Change Efreet_Event_Desktop_Change; struct Efreet_Event_Desktop_Change { - Efreet_Desktop *desktop; + Efreet_Desktop *current; + Efreet_Desktop *previous; Efreet_Desktop_Change change; };