Properly hide borders from the cache that are no longer needed
SVN revision: 12871
This commit is contained in:
parent
c437e1731f
commit
3ded7141ba
|
@ -737,6 +737,9 @@ _e_border_free(E_Border *bd)
|
|||
ecore_x_window_del(bd->win);
|
||||
bd->container->clients = evas_list_remove(bd->container->clients, bd);
|
||||
borders = evas_list_remove(borders, bd);
|
||||
|
||||
bd->zone->clients = evas_list_remove(bd->zone->clients, bd);
|
||||
bd->desk->clients = evas_list_remove(bd->desk->clients, bd);
|
||||
free(bd);
|
||||
}
|
||||
|
||||
|
|
|
@ -271,10 +271,12 @@ _pager_refresh(Pager *e)
|
|||
px = e->fx + (x * pw);
|
||||
py = e->fy + (y * ph);
|
||||
|
||||
desk_obj = NULL;
|
||||
if (desks)
|
||||
desk_obj = (Evas_Object *) desks->data; /* re-use the objects if possible */
|
||||
if (!desk_obj)
|
||||
{
|
||||
desk_obj = (Evas_Object *) desks->data; /* re-use the objects if possible */
|
||||
desks = desks->next;
|
||||
}
|
||||
else
|
||||
{
|
||||
desk_obj = edje_object_add(e->evas);
|
||||
edje_object_file_set(desk_obj,
|
||||
|
@ -282,11 +284,11 @@ _pager_refresh(Pager *e)
|
|||
e_path_find(path_themes, "default.eet"),
|
||||
"modules/pager/desk");
|
||||
evas_object_pass_events_set(desk_obj, 1);
|
||||
evas_object_show(desk_obj);
|
||||
e->desks = evas_list_append(e->desks, desk_obj);
|
||||
}
|
||||
evas_object_resize(desk_obj, pw, ph);
|
||||
evas_object_move(desk_obj, px, py);
|
||||
evas_object_show(desk_obj);
|
||||
|
||||
top = evas_object_layer_get(desk_obj);
|
||||
|
||||
|
@ -295,16 +297,17 @@ _pager_refresh(Pager *e)
|
|||
{
|
||||
Evas_Coord winx, winy, winw, winh;
|
||||
border = (E_Border *) clients->data;
|
||||
|
||||
winx = (Evas_Coord) ((double) border->x) * scalex;
|
||||
winy = (Evas_Coord) ((double) border->y) * scaley;
|
||||
winw = (Evas_Coord) ((double) border->w) * scalex;
|
||||
winh = (Evas_Coord) ((double) border->h) * scaley;
|
||||
|
||||
win_obj = NULL;
|
||||
if (wins)
|
||||
win_obj = (Evas_Object *) wins->data;
|
||||
if (!win_obj)
|
||||
{
|
||||
win_obj = (Evas_Object *) wins->data;
|
||||
wins = wins->next;
|
||||
}
|
||||
else
|
||||
{
|
||||
win_obj = edje_object_add(e->evas);
|
||||
edje_object_file_set(win_obj,
|
||||
|
@ -313,28 +316,38 @@ _pager_refresh(Pager *e)
|
|||
"modules/pager/window");
|
||||
evas_object_pass_events_set(win_obj, 1);
|
||||
|
||||
evas_object_show(win_obj);
|
||||
e->wins = evas_list_append(e->wins, win_obj);
|
||||
}
|
||||
evas_object_resize(win_obj, winw, winh);
|
||||
evas_object_move(win_obj, px + winx, py + winy);
|
||||
evas_object_show(win_obj);
|
||||
|
||||
toptmp = evas_object_layer_get(win_obj);
|
||||
if (toptmp > top)
|
||||
top = toptmp;
|
||||
|
||||
clients = clients->next;
|
||||
if (wins)
|
||||
wins = wins->next;
|
||||
}
|
||||
if (desk == current)
|
||||
{
|
||||
evas_object_move(e->screen, px, py);
|
||||
evas_object_layer_set(e->screen, top + 1);
|
||||
}
|
||||
if (desks)
|
||||
desks = desks->next;
|
||||
}
|
||||
|
||||
/* hide objects not needed; */
|
||||
while (desks)
|
||||
{
|
||||
desk_obj = (Evas_Object *) desks->data;
|
||||
evas_object_hide(desk_obj);
|
||||
desks = desks->next;
|
||||
}
|
||||
while (wins)
|
||||
{
|
||||
win_obj = (Evas_Object *) wins->data;
|
||||
evas_object_hide(win_obj);
|
||||
wins = wins->next;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Reference in New Issue