- Fix virtual desktop switching bug - don't delete hidden borders

- Fix ICCCM state bug for iconified windows
- Show borders in correct stacking order on desktop switch


SVN revision: 12777
This commit is contained in:
xcomputerman 2005-01-05 09:31:56 +00:00 committed by xcomputerman
parent 4a274bde87
commit 212d966bde
2 changed files with 15 additions and 7 deletions

View File

@ -266,7 +266,7 @@ e_border_hide(E_Border *bd)
e_container_shape_hide(bd->shape);
if (bd->iconic)
ecore_x_icccm_state_set(bd->client.win, ECORE_X_WINDOW_STATE_HINT_WITHDRAWN);
ecore_x_icccm_state_set(bd->client.win, ECORE_X_WINDOW_STATE_HINT_ICONIC);
else
ecore_x_icccm_state_set(bd->client.win, ECORE_X_WINDOW_STATE_HINT_WITHDRAWN);
@ -729,7 +729,8 @@ _e_border_cb_window_hide(void *data, int ev_type, void *ev)
bd->ignore_first_unmap--;
return 1;
}
if (!(bd->iconic)) e_object_del(E_OBJECT(bd));
/* Don't delete hidden or iconified windows */
if (!(bd->iconic) && (bd->visible)) e_object_del(E_OBJECT(bd));
return 1;
}

View File

@ -49,14 +49,21 @@ e_desk_show(E_Desk *desk)
E_OBJECT_CHECK(desk);
if (desk->visible) return;
for (l = desk->zone->clients; l; l = l->next)
for (l = desk->zone->container->clients; l; l = l->next)
{
E_Border *bd = l->data;
if (bd->desk == desk)
e_border_show(bd);
else
e_border_hide(bd);
if (bd->desk->zone == desk->zone)
{
if (bd->desk == desk)
{
e_border_show(bd);
}
else
{
e_border_hide(bd);
}
}
}
for (l = desk->zone->desks; l; l = l->next)