From 08be3a29a36196377e0d067ef45f6412b1853f18 Mon Sep 17 00:00:00 2001 From: Davide Andreoli Date: Thu, 26 Jan 2012 21:20:55 +0000 Subject: [PATCH] * open the fm when clicking on an unmounted volume (mount and then open when mounted) * unsigned char -> Eina_Bool SVN revision: 67558 --- src/e_mod_places.c | 22 +++++++++++++++------- src/e_mod_places.h | 6 +++--- src/e_mod_udisks.c | 2 +- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/e_mod_places.c b/src/e_mod_places.c index b1a3ac9..272c04e 100644 --- a/src/e_mod_places.c +++ b/src/e_mod_places.c @@ -16,6 +16,7 @@ static Eina_Bool _places_poller(void *data); static const char *_places_human_size_get(unsigned long long size); static void _places_volume_object_update(Volume *vol, Evas_Object *obj); +static void _places_run_fm(void *data, E_Menu *m, E_Menu_Item *mi); /* Edje callbacks */ @@ -82,21 +83,21 @@ places_volume_add(const char *id, int dont_auto_mount, int dont_auto_open) // safe defaults v->id = eina_stringshare_add(id); - v->valid = 0; + v->valid = EINA_FALSE; v->objs = NULL; v->icon = NULL; v->device = NULL; - v->to_mount = 0; - v->force_open = 0; + v->to_mount = EINA_FALSE; + v->force_open = EINA_FALSE; v->drive_type = ""; v->model = ""; v->bus = ""; if (places_conf->auto_mount && !dont_auto_mount) - v->to_mount = 1; + v->to_mount = EINA_TRUE; if (places_conf->auto_open && !dont_auto_open) - v->force_open = 1; + v->force_open = EINA_TRUE; volumes = eina_list_append(volumes, v); @@ -187,6 +188,13 @@ places_volume_update(Volume *vol) EINA_LIST_FOREACH(vol->objs, l, obj) _places_volume_object_update(vol, obj); + + // the volume has been mounted as requested, open the fm + if (vol->force_open && vol->mounted && vol->mount_point) + { + _places_run_fm((void*)vol->mount_point,NULL, NULL); + vol->force_open = EINA_FALSE; + } } void @@ -394,7 +402,7 @@ places_mount_volume(Volume *vol) } vol->mount_func(vol, opts); - vol->to_mount = 0; + vol->to_mount = EINA_FALSE; eina_list_free(opts); } @@ -667,7 +675,7 @@ _places_icon_activated_cb(void *data, Evas_Object *o, const char *emission, cons _places_run_fm((void*)vol->mount_point, NULL, NULL); else { - vol->force_open = 1; + vol->force_open = EINA_TRUE; places_mount_volume(vol); } } diff --git a/src/e_mod_places.h b/src/e_mod_places.h index 5c45b5b..4a78e87 100644 --- a/src/e_mod_places.h +++ b/src/e_mod_places.h @@ -33,9 +33,9 @@ struct _Volume Eina_Bool unlocked; Eina_Bool encrypted; - unsigned char valid; - unsigned char to_mount; - unsigned char force_open; + Eina_Bool valid; + Eina_Bool to_mount; + Eina_Bool force_open; Eina_List *objs; void (*mount_func)(Volume *vol, Eina_List *opts); diff --git a/src/e_mod_udisks.c b/src/e_mod_udisks.c index e6cfe16..1b46ab7 100644 --- a/src/e_mod_udisks.c +++ b/src/e_mod_udisks.c @@ -422,7 +422,7 @@ _places_udisks_sto_prop_cb(void *data, void *reply_data, DBusError *error) if (!v->valid) { - v->valid = 1; + v->valid = EINA_TRUE; // trigger a full redraw, the only way to show a new device places_update_all_gadgets(); places_print_volume(v); // JUST FOR DEBUG will remove sooner or later