forked from enlightenment/enlightenment
Efsd updates. Now I remember what I forgot in the efsd commit comment --
I changed the name of some of the convenience calls from efsd_reply_... to efsd_event_... because they're no longer applicable to reply events only. I've also hooked in a cleanup function for Efsd when E exits, and duplicated memory when accessing a returned metadata string. SVN revision: 5736
This commit is contained in:
parent
0ce64e39cf
commit
630bf3c408
|
@ -1555,7 +1555,7 @@ e_act_exit_start (E_Object *object, E_Action *a, void *data, int x, int y, int r
|
|||
ecore_sync();
|
||||
|
||||
e_db_flush();
|
||||
|
||||
|
||||
exit(0);
|
||||
|
||||
D_RETURN;
|
||||
|
|
12
src/fs.c
12
src/fs.c
|
@ -220,6 +220,18 @@ e_fs_init(void)
|
|||
D_RETURN;
|
||||
}
|
||||
|
||||
void
|
||||
e_fs_cleanup(void)
|
||||
{
|
||||
D_ENTER;
|
||||
|
||||
efsd_close(ec);
|
||||
D("Connection to Efsd closed.\n");
|
||||
|
||||
D_RETURN;
|
||||
}
|
||||
|
||||
|
||||
EfsdConnection *
|
||||
e_fs_get_connection(void)
|
||||
{
|
||||
|
|
8
src/fs.h
8
src/fs.h
|
@ -20,6 +20,14 @@ struct _E_FS_Restarter
|
|||
*/
|
||||
void e_fs_init(void);
|
||||
|
||||
/**
|
||||
* e_fs_cleanup - Filesystem code cleanup routine.
|
||||
*
|
||||
* This function takes care of properly saying
|
||||
* good bye to Efsd.
|
||||
*/
|
||||
void e_fs_cleanup(void);
|
||||
|
||||
E_FS_Restarter *e_fs_add_restart_handler(void (*func) (void *data), void *data);
|
||||
void e_fs_del_restart_handler(E_FS_Restarter *rs);
|
||||
void e_fs_add_event_handler(void (*func) (EfsdEvent *ev));
|
||||
|
|
|
@ -35,6 +35,7 @@ static void cb_exit(void)
|
|||
{
|
||||
D_ENTER;
|
||||
|
||||
e_fs_cleanup();
|
||||
E_PROF_DUMP;
|
||||
|
||||
D_RETURN;
|
||||
|
|
23
src/view.c
23
src/view.c
|
@ -2006,7 +2006,7 @@ e_view_handle_fs(EfsdEvent *ev)
|
|||
{
|
||||
E_View *v;
|
||||
|
||||
v = e_view_find_by_monitor_id(efsd_reply_id(ev));
|
||||
v = e_view_find_by_monitor_id(efsd_event_id(ev));
|
||||
if (v) v->is_listing = 0;
|
||||
/* D("EFSD_CHANGE_END_EXISTS: %i %s\n",
|
||||
ev->efsd_filechange_event.id,
|
||||
|
@ -2042,11 +2042,11 @@ e_view_handle_fs(EfsdEvent *ev)
|
|||
char *file;
|
||||
|
||||
file = NULL;
|
||||
if ( (file = efsd_reply_filename(ev)) )
|
||||
if ( (file = efsd_event_filename(ev)) )
|
||||
{
|
||||
file = e_file_get_file(file);
|
||||
}
|
||||
v = e_view_find_by_monitor_id(efsd_reply_id(ev));
|
||||
v = e_view_find_by_monitor_id(efsd_event_id(ev));
|
||||
|
||||
if ((v) && (file))
|
||||
{
|
||||
|
@ -2098,15 +2098,15 @@ e_view_handle_fs(EfsdEvent *ev)
|
|||
E_Icon *ic;
|
||||
E_View *v;
|
||||
|
||||
v = e_view_find_by_monitor_id(efsd_reply_id(ev));
|
||||
v = e_view_find_by_monitor_id(efsd_event_id(ev));
|
||||
|
||||
if (v)
|
||||
{
|
||||
ic = e_icon_find_by_file(v, e_file_get_file(efsd_reply_filename(ev)));
|
||||
ic = e_icon_find_by_file(v, e_file_get_file(efsd_event_filename(ev)));
|
||||
|
||||
if (ic)
|
||||
{
|
||||
ic->stat = *((struct stat*)efsd_reply_data(ev));
|
||||
ic->stat = *((struct stat*)efsd_event_data(ev));
|
||||
e_icon_check_permissions(ic);
|
||||
}
|
||||
}
|
||||
|
@ -2121,17 +2121,17 @@ e_view_handle_fs(EfsdEvent *ev)
|
|||
char *file;
|
||||
|
||||
file = NULL;
|
||||
if ( (file = efsd_reply_filename(ev)) )
|
||||
if ( (file = efsd_event_filename(ev)) )
|
||||
{
|
||||
file = e_file_get_file(file);
|
||||
}
|
||||
v = e_view_find_by_monitor_id(efsd_reply_id(ev));
|
||||
v = e_view_find_by_monitor_id(efsd_event_id(ev));
|
||||
if ((v) && (file))
|
||||
{
|
||||
ic = e_icon_find_by_file(v, file);
|
||||
if ((ic) &&
|
||||
(ev->efsd_reply_event.data))
|
||||
e_icon_set_link(ic, (char*)efsd_reply_data(ev));
|
||||
e_icon_set_link(ic, (char*)efsd_event_data(ev));
|
||||
e_icon_initial_show(ic);
|
||||
}
|
||||
}
|
||||
|
@ -2147,7 +2147,7 @@ e_view_handle_fs(EfsdEvent *ev)
|
|||
Evas_List l;
|
||||
EfsdCmdId cmd;
|
||||
|
||||
cmd = efsd_reply_id(ev);
|
||||
cmd = efsd_event_id(ev);
|
||||
for (l = views; l; l = l->next)
|
||||
{
|
||||
E_View *v;
|
||||
|
@ -2246,7 +2246,7 @@ e_view_handle_fs(EfsdEvent *ev)
|
|||
char buf[PATH_MAX];
|
||||
|
||||
IF_FREE(v->bg_file);
|
||||
v->bg_file = efsd_metadata_get_str(ev);
|
||||
e_strdup(v->bg_file, efsd_metadata_get_str(ev));
|
||||
sprintf(buf, "background_reload:%s", v->dir);
|
||||
ecore_add_event_timer(buf, 0.5, e_view_bg_reload_timeout, 0, v);
|
||||
}
|
||||
|
@ -2397,6 +2397,7 @@ e_view_bg_reload_timeout(int val, void *data)
|
|||
e_view_bg_load(v);
|
||||
|
||||
D_RETURN;
|
||||
UN(val);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
12
src/view.h
12
src/view.h
|
@ -52,6 +52,16 @@ struct _E_View
|
|||
struct {
|
||||
int x, y;
|
||||
} location;
|
||||
|
||||
/* This part stores the Efsd command
|
||||
IDs for requested metadata. */
|
||||
struct {
|
||||
struct {
|
||||
EfsdCmdId x, y, w, h, bg;
|
||||
} id;
|
||||
int busy;
|
||||
} metadata;
|
||||
|
||||
struct {
|
||||
/* +-----------------+
|
||||
* | Wt |
|
||||
|
@ -136,7 +146,7 @@ struct _E_View
|
|||
E_Background *bg;
|
||||
|
||||
struct {
|
||||
E_Scrollbar *h, *v;
|
||||
E_Scrollbar *h, *v;
|
||||
} scrollbar;
|
||||
|
||||
int is_listing;
|
||||
|
|
Loading…
Reference in New Issue