Based on an IRC discussion I changed the smart placing mechanism to hit also if icccm.request_pos is true. Many Gnome based application try to start with coordinates below the shelfes and E allows it. This smoothly moves this windows away is smart placement is active. It's not as aggressive as Metacity, but now usable with vertical shelfes. If you don't like this change hit me and discuss it again on the list.

SVN revision: 49654
This commit is contained in:
Andreas Volz 2010-06-12 12:54:18 +00:00
parent 9b0be3e492
commit 8610b9eaa9
1 changed files with 18 additions and 0 deletions

View File

@ -6466,6 +6466,24 @@ _e_border_eval(E_Border *bd)
bd->x = att->x;
bd->y = att->y;
}
/*
* This code ensures that even if app windows like to open
* in stupid places (e.g. below shelfes) it moves them smart away
*/
{
Eina_List *skiplist = NULL;
int new_x, new_y;
skiplist = eina_list_append(skiplist, bd);
e_place_zone_region_smart(bd->zone, skiplist,
bd->x, bd->y, bd->w, bd->h,
&new_x, &new_y);
eina_list_free(skiplist);
bd->x += new_x;
bd->y += new_y;
}
if (e_container_zone_at_point_get(bd->zone->container, bd->x, bd->y))
{
bd->changes.pos = 1;