Make ->layer always consistent with real layer. Else it might get ugly.

SVN revision: 14852
This commit is contained in:
sebastid 2005-05-19 04:54:23 +00:00 committed by sebastid
parent ca23bfa67a
commit f900c0c87b
1 changed files with 1 additions and 15 deletions

View File

@ -431,9 +431,7 @@ e_border_hide(E_Border *bd, int manage)
E_OBJECT_CHECK(bd);
E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE);
if (!bd->visible) return;
printf("hide1\n");
if (bd->moving) return;
printf("hide2\nn");
ecore_x_window_hide(bd->client.win);
e_container_shape_hide(bd->shape);
@ -454,7 +452,6 @@ e_border_hide(E_Border *bd, int manage)
ev = calloc(1, sizeof(E_Event_Border_Hide));
ev->border = bd;
e_object_ref(E_OBJECT(bd));
printf("ref bd %p to %i\n", bd, e_object_ref_get(E_OBJECT(bd)));
ecore_event_add(E_EVENT_BORDER_HIDE, ev, _e_border_event_border_hide_free, NULL);
}
}
@ -962,8 +959,6 @@ e_border_fullscreen(E_Border *bd)
if ((bd->shaded) || (bd->shading)) return;
if (!bd->fullscreen)
{
int layer;
bd->saved.x = bd->x;
bd->saved.y = bd->y;
bd->saved.w = bd->w;
@ -971,10 +966,8 @@ e_border_fullscreen(E_Border *bd)
e_hints_window_fullscreen_set(bd, 1);
layer = bd->layer;
bd->layer = 200;
e_border_raise(bd);
bd->layer = layer;
e_border_move_resize(bd,
bd->zone->x - bd->client_inset.l,
bd->zone->y - bd->client_inset.t,
@ -1007,6 +1000,7 @@ e_border_unfullscreen(E_Border *bd)
bd->changes.size = 1;
bd->changed = 1;
bd->layer = 100;
e_border_raise(bd);
edje_object_signal_emit(bd->bg_object, "unfullscreen", "");
@ -1393,7 +1387,6 @@ e_border_button_bindings_grab_all(void)
static void
_e_border_free(E_Border *bd)
{
printf("BD FREE %p\n", bd);
if (resize == bd)
_e_border_resize_end(bd);
if (move == bd)
@ -1454,7 +1447,6 @@ _e_border_del(E_Border *bd)
{
E_Event_Border_Remove *ev;
printf("BD DEL %p\n", bd);
ecore_x_window_reparent(bd->client.win,
bd->zone->container->manager->root,
bd->x + bd->client_inset.l,
@ -1506,26 +1498,20 @@ _e_border_cb_window_hide(void *data, int ev_type, void *ev)
// printf("in hide cb\n");
bd = data;
e = ev;
printf("hide..\n");
bd = e_border_find_by_client_window(e->win);
if (!bd) return 1;
printf("found %p\n");
if (bd->ignore_first_unmap > 0)
{
printf("IGNORE UNMAP\n");
bd->ignore_first_unmap--;
return 1;
}
/* Don't delete hidden or iconified windows */
if ((bd->iconic) || (!bd->visible))
{
printf("iconic %i || !visible %i\n",
bd->iconic, bd->visible);
e_border_hide(bd, 1);
}
else
{
printf("hide + del\n");
e_border_hide(bd, 0);
e_object_del(E_OBJECT(bd));
}