Only place manually windows which aren't already place.

SVN revision: 16975
This commit is contained in:
sebastid 2005-09-26 21:06:29 +00:00 committed by sebastid
parent 285abec812
commit a5991bd857
1 changed files with 17 additions and 22 deletions

View File

@ -4850,6 +4850,7 @@ _e_border_eval(E_Border *bd)
bd->x -= bd->client_inset.l; bd->x -= bd->client_inset.l;
bd->y -= bd->client_inset.t; bd->y -= bd->client_inset.t;
bd->changes.pos = 1; bd->changes.pos = 1;
bd->placed = 1;
} }
else if (!bd->placed) else if (!bd->placed)
{ {
@ -4898,11 +4899,10 @@ _e_border_eval(E_Border *bd)
bd->y = att->y; bd->y = att->y;
} }
bd->changes.pos = 1; bd->changes.pos = 1;
bd->placed = 1;
} }
else else
{ {
int placed = 0;
/* FIXME: special placement for dialogs etc. etc. etc goes /* FIXME: special placement for dialogs etc. etc. etc goes
* here */ * here */
/* FIXME: what if parent is not on this desktop - or zone? */ /* FIXME: what if parent is not on this desktop - or zone? */
@ -4911,9 +4911,9 @@ _e_border_eval(E_Border *bd)
bd->x = bd->parent->x + ((bd->parent->w - bd->w) / 2); bd->x = bd->parent->x + ((bd->parent->w - bd->w) / 2);
bd->y = bd->parent->y + ((bd->parent->h - bd->h) / 2); bd->y = bd->parent->y + ((bd->parent->h - bd->h) / 2);
bd->changes.pos = 1; bd->changes.pos = 1;
placed = 1; bd->placed = 1;
} }
if (!placed) if (!bd->placed)
{ {
Evas_List *skiplist = NULL; Evas_List *skiplist = NULL;
int new_x, new_y; int new_x, new_y;
@ -4957,25 +4957,20 @@ _e_border_eval(E_Border *bd)
E_Border_Pending_Move_Resize *pnd; E_Border_Pending_Move_Resize *pnd;
pnd = bd->pending_move_resize->data; pnd = bd->pending_move_resize->data;
if (!bd->lock_client_location) if ((!bd->lock_client_location) && (pnd->move))
{ {
if (pnd->move) bd->x = pnd->x;
{ bd->y = pnd->y;
bd->x = pnd->x; bd->changes.pos = 1;
bd->y = pnd->y; bd->placed = 1;
bd->changes.pos = 1;
}
} }
if (!bd->lock_client_size) if ((!bd->lock_client_size) && (pnd->resize))
{ {
if (pnd->resize) bd->w = pnd->w + (bd->client_inset.l + bd->client_inset.r);
{ bd->h = pnd->h + (bd->client_inset.t + bd->client_inset.b);
bd->w = pnd->w + (bd->client_inset.l + bd->client_inset.r); bd->client.w = pnd->w;
bd->h = pnd->h + (bd->client_inset.t + bd->client_inset.b); bd->client.h = pnd->h;
bd->client.w = pnd->w; bd->changes.size = 1;
bd->client.h = pnd->h;
bd->changes.size = 1;
}
} }
free(pnd); free(pnd);
bd->pending_move_resize = evas_list_remove_list(bd->pending_move_resize, bd->pending_move_resize = evas_list_remove_list(bd->pending_move_resize,
@ -4989,8 +4984,8 @@ _e_border_eval(E_Border *bd)
{ {
bd->x = bd->zone->x + (bd->zone->w - bd->w) / 2; bd->x = bd->zone->x + (bd->zone->w - bd->w) / 2;
bd->y = bd->zone->y + (bd->zone->h - bd->h) / 2; bd->y = bd->zone->y + (bd->zone->h - bd->h) / 2;
bd->placed = 1;
bd->changes.pos = 1; bd->changes.pos = 1;
bd->placed = 1;
} }
ecore_x_icccm_move_resize_send(bd->client.win, ecore_x_icccm_move_resize_send(bd->client.win,
@ -5317,7 +5312,7 @@ _e_border_eval(E_Border *bd)
{ {
int x, y; int x, y;
if ((!bd->re_manage) && if ((!bd->placed) && (!bd->re_manage) &&
(e_config->window_placement_policy == E_WINDOW_PLACEMENT_MANUAL) && (e_config->window_placement_policy == E_WINDOW_PLACEMENT_MANUAL) &&
(bd->client.netwm.type != ECORE_X_WINDOW_TYPE_DIALOG) && (bd->client.netwm.type != ECORE_X_WINDOW_TYPE_DIALOG) &&
(!move) && (!resize)) (!move) && (!resize))