req_window_offscreen:

If a window likes to open with initial offscreen coordinates E should move it to the nearest onscreen coordinates.

req_window_ignore_zone:
If a window likes to open with initial coordinates in a window ignore zone (like not overlap allowed shelfes) if should be moved to the next allowed coordinates.



SVN revision: 49909
This commit is contained in:
Andreas Volz 2010-06-27 20:41:52 +00:00
parent cd158657f1
commit ce88316472
1 changed files with 18 additions and 16 deletions

View File

@ -6467,23 +6467,25 @@ _e_border_eval(E_Border *bd)
bd->y = att->y; bd->y = att->y;
} }
/* /*
* This code ensures that even if app windows like to open * This ensures that windows that like to open with a x/y
* in stupid places (e.g. below shelfes) it moves them smart away * position smaller than returned by e_zone_useful_geometry_get()
*/ * are moved to useful positions.
/*{ */
Eina_List *skiplist = NULL; // ->
int new_x, new_y; if (bd->x < zx)
bd->x = zx;
skiplist = eina_list_append(skiplist, bd);
e_place_zone_region_smart(bd->zone, skiplist, if (bd->y < zy)
bd->x, bd->y, bd->w, bd->h, bd->y = zy;
&new_x, &new_y);
eina_list_free(skiplist);
bd->x += new_x;
bd->y += new_y;
}*/
if (bd->x + bd->w > zw)
bd->x = zx + zw - bd->w;
if (bd->y + bd->h > zh)
bd->y = zy + zh - bd->h;
// <--
if (e_container_zone_at_point_get(bd->zone->container, bd->x, bd->y)) if (e_container_zone_at_point_get(bd->zone->container, bd->x, bd->y))
{ {
bd->changes.pos = 1; bd->changes.pos = 1;