tasks gadgets now respect skip_taskbar with greater alacrity

ticket #1681


SVN revision: 78529
This commit is contained in:
Mike Blumenkrantz 2012-10-26 12:34:37 +00:00
parent 133d4db5f4
commit 4f563f20f3
1 changed files with 10 additions and 0 deletions

View File

@ -45,6 +45,7 @@ struct _Tasks_Item
E_Border *border; // The border this item points to E_Border *border; // The border this item points to
Evas_Object *o_item; // The edje theme object Evas_Object *o_item; // The edje theme object
Evas_Object *o_icon; // The icon Evas_Object *o_icon; // The icon
Eina_Bool skip_taskbar : 1;
}; };
static Tasks *_tasks_new(Evas *evas, E_Zone *zone, const char *id); static Tasks *_tasks_new(Evas *evas, E_Zone *zone, const char *id);
@ -430,6 +431,7 @@ _tasks_refill_border(E_Border *border)
{ {
const Eina_List *l; const Eina_List *l;
Tasks *tasks; Tasks *tasks;
Eina_Bool found = EINA_FALSE;
EINA_LIST_FOREACH(tasks_config->tasks, l, tasks) EINA_LIST_FOREACH(tasks_config->tasks, l, tasks)
{ {
@ -440,10 +442,12 @@ _tasks_refill_border(E_Border *border)
if (item->border == border) if (item->border == border)
{ {
_tasks_item_refill(item); _tasks_item_refill(item);
found = EINA_TRUE;
break; break;
} }
} }
} }
if (!found) _tasks_refill_all();
} }
static void static void
@ -487,6 +491,7 @@ _tasks_item_new(Tasks *tasks, E_Border *border)
e_object_ref(E_OBJECT(border)); e_object_ref(E_OBJECT(border));
item->tasks = tasks; item->tasks = tasks;
item->border = border; item->border = border;
item->skip_taskbar = border->client.netwm.state.skip_taskbar;
item->o_item = edje_object_add(evas_object_evas_get(tasks->o_items)); item->o_item = edje_object_add(evas_object_evas_get(tasks->o_items));
if (tasks->horizontal) if (tasks->horizontal)
e_theme_edje_object_set(item->o_item, e_theme_edje_object_set(item->o_item,
@ -569,6 +574,11 @@ _tasks_item_free(Tasks_Item *item)
static void static void
_tasks_item_refill(Tasks_Item *item) _tasks_item_refill(Tasks_Item *item)
{ {
if (item->border->client.netwm.state.skip_taskbar != item->skip_taskbar)
{
_tasks_refill(item->tasks);
return;
}
if (item->o_icon) evas_object_del(item->o_icon); if (item->o_icon) evas_object_del(item->o_icon);
_tasks_item_fill(item); _tasks_item_fill(item);
} }