further improve bryce portability across zones

also fix typo from yesterday which broke everything and was definitely not
noticed by anyone
This commit is contained in:
Mike Blumenkrantz 2016-10-14 08:03:43 -04:00
parent ebefa49e4b
commit b86efbe301
1 changed files with 27 additions and 6 deletions

View File

@ -3,7 +3,7 @@
#define DEFAULT_LAYER E_LAYER_CLIENT_ABOVE #define DEFAULT_LAYER E_LAYER_CLIENT_ABOVE
#define E_BRYCE_TYPE 0xE31338 #define E_BRYCE_TYPE 0xE31338
static unsigned int bryce_version = 1; static unsigned int bryce_version = 2;
typedef struct Bryce typedef struct Bryce
{ {
@ -424,6 +424,20 @@ _bryce_zone_setup(Bryce *b)
evas_object_event_callback_add(zone_clip, EVAS_CALLBACK_RESIZE, _bryce_zone_moveresize, b); evas_object_event_callback_add(zone_clip, EVAS_CALLBACK_RESIZE, _bryce_zone_moveresize, b);
} }
static void
_bryce_rename(Bryce *b, int num)
{
char buf[1024], buf2[1024], *name, *p;
name = strdup(b->name);
p = strrchr(name, '_');
p[0] = 0;
snprintf(buf, sizeof(buf), "__bryce%s", name);
snprintf(buf2, sizeof(buf2), "__bryce%s_%d", name, num);
e_gadget_site_rename(buf, buf2);
free(name);
}
static void static void
_bryce_moveresize(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) _bryce_moveresize(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
{ {
@ -511,6 +525,7 @@ _bryce_moveresize(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event
if (!zone) return; if (!zone) return;
if (b->zone == zone->num) return; if (b->zone == zone->num) return;
e_config_save_queue(); e_config_save_queue();
_bryce_rename(b, zone->num);
b->zone = zone->num; b->zone = zone->num;
_bryce_zone_setup(b); _bryce_zone_setup(b);
_bryce_autosize(b); _bryce_autosize(b);
@ -939,6 +954,7 @@ e_bryce_add(Evas_Object *parent, const char *name, E_Gadget_Site_Orient orient,
b->anchor = an; b->anchor = an;
b->orient = orient; b->orient = orient;
b->layer = DEFAULT_LAYER; b->layer = DEFAULT_LAYER;
b->version = bryce_version;
_bryce_create(b, parent); _bryce_create(b, parent);
bryces->bryces = eina_list_append(bryces->bryces, b); bryces->bryces = eina_list_append(bryces->bryces, b);
e_config_save_queue(); e_config_save_queue();
@ -1168,13 +1184,18 @@ e_bryce_init(void)
EINA_LIST_FOREACH(bryces->bryces, l, b) EINA_LIST_FOREACH(bryces->bryces, l, b)
{ {
if (b->version < 1) if (b->version < 2)
{ {
char buf[4096]; /* I broke this the first time by forgetting the __bryce prefix :(
*/
_bryce_rename(b, b->zone);
if (b->version < 1)
{
char buf[1024];
snprintf(buf, sizeof(buf), "%s_%u", b->name, b->zone); snprintf(buf, sizeof(buf), "%s_%u", b->name, b->zone);
e_gadget_site_rename(b->name, buf); eina_stringshare_replace(&b->name, buf);
eina_stringshare_replace(&b->name, buf); }
} }
b->version = bryce_version; b->version = bryce_version;
if (!e_comp_zone_number_get(b->zone)) continue; if (!e_comp_zone_number_get(b->zone)) continue;