forked from enlightenment/enlightenment
reset gadman when zone 0 is added/removed to ensure proper gadget placement
ticket #1372 SVN revision: 75643
This commit is contained in:
parent
09d26d74af
commit
8bc7ac007e
|
@ -531,7 +531,6 @@ gadman_update_bg(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Internals */
|
|
||||||
static E_Gadcon *
|
static E_Gadcon *
|
||||||
_gadman_gadcon_new(const char *name, Gadman_Layer_Type layer, E_Zone *zone, E_Gadcon_Location *loc)
|
_gadman_gadcon_new(const char *name, Gadman_Layer_Type layer, E_Zone *zone, E_Gadcon_Location *loc)
|
||||||
{
|
{
|
||||||
|
@ -1496,29 +1495,30 @@ _e_gadman_cb_zone_add(void *data __UNUSED__, int type __UNUSED__, void *event)
|
||||||
{
|
{
|
||||||
E_Event_Zone_Add *ev;
|
E_Event_Zone_Add *ev;
|
||||||
E_Zone *zone;
|
E_Zone *zone;
|
||||||
E_Gadcon *gc;
|
|
||||||
Eina_List *l;
|
|
||||||
unsigned int layer;
|
unsigned int layer;
|
||||||
|
const char *layer_name[] = {"gadman", "gadman_top"};
|
||||||
|
|
||||||
ev = event;
|
ev = event;
|
||||||
zone = ev->zone;
|
zone = ev->zone;
|
||||||
|
|
||||||
for (layer = 0; layer < GADMAN_LAYER_COUNT; layer++)
|
if ((!zone->x) || (!zone->y))
|
||||||
{
|
{
|
||||||
EINA_LIST_FOREACH(Man->gadcons[layer], l, gc)
|
/* first zone removed, need to reinit to re-place every gadget */
|
||||||
if (gc->zone == zone) return ECORE_CALLBACK_PASS_ON;
|
E_Module *m = Man->module;
|
||||||
|
gadman_shutdown();
|
||||||
|
gadman_init(m);
|
||||||
|
return ECORE_CALLBACK_RENEW;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Not exist, then add
|
// Not exist, then add
|
||||||
/* iterating through zones - and making gadmans on each */
|
/* iterating through zones - and making gadmans on each */
|
||||||
const char *layer_name[] = {"gadman", "gadman_top"};
|
|
||||||
|
|
||||||
for (layer = 0; layer < GADMAN_LAYER_COUNT; layer++)
|
for (layer = 0; layer < GADMAN_LAYER_COUNT; layer++)
|
||||||
{
|
{
|
||||||
E_Gadcon *gdc;
|
E_Gadcon *gc;
|
||||||
|
|
||||||
gdc = _gadman_gadcon_new(layer_name[layer], layer, zone, location);
|
gc = _gadman_gadcon_new(layer_name[layer], layer, zone, location);
|
||||||
Man->gadcons[layer] = eina_list_append(Man->gadcons[layer], gdc);
|
Man->gadcons[layer] = eina_list_append(Man->gadcons[layer], gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ECORE_CALLBACK_PASS_ON;
|
return ECORE_CALLBACK_PASS_ON;
|
||||||
|
@ -1537,6 +1537,15 @@ _e_gadman_cb_zone_del(void *data __UNUSED__, int type __UNUSED__, void *event)
|
||||||
ev = event;
|
ev = event;
|
||||||
zone = ev->zone;
|
zone = ev->zone;
|
||||||
|
|
||||||
|
if ((!zone->x) || (!zone->y))
|
||||||
|
{
|
||||||
|
/* another first zone added, need to reinit to re-place every gadget */
|
||||||
|
E_Module *m = Man->module;
|
||||||
|
gadman_shutdown();
|
||||||
|
gadman_init(m);
|
||||||
|
return ECORE_CALLBACK_RENEW;
|
||||||
|
}
|
||||||
|
|
||||||
for (layer = 0; layer < GADMAN_LAYER_COUNT; layer++)
|
for (layer = 0; layer < GADMAN_LAYER_COUNT; layer++)
|
||||||
{
|
{
|
||||||
EINA_LIST_FOREACH(Man->gadcons[layer], l, gc)
|
EINA_LIST_FOREACH(Man->gadcons[layer], l, gc)
|
||||||
|
|
Loading…
Reference in New Issue