fix placement to actually respect overlay allow of shelves

SVN revision: 41376
This commit is contained in:
Carsten Haitzler 2009-07-17 01:42:37 +00:00
parent a9212e1ecf
commit cb99a78862
2 changed files with 18 additions and 1 deletions

View File

@ -121,6 +121,7 @@ _e_grabinput_focus(Ecore_X_Window win, E_Focus_Method method)
break;
case E_FOCUS_METHOD_LOCALLY_ACTIVE:
ecore_x_window_focus(win);
ecore_x_sync(); // let x actually get the x focus request
ecore_x_icccm_take_focus_send(win, ecore_x_current_time_get());
break;
case E_FOCUS_METHOD_GLOBALLY_ACTIVE:

View File

@ -121,7 +121,23 @@ _e_place_coverage_shelf_add(E_Zone *zone, int ar, int x, int y, int w, int h)
if (es->zone != zone) continue;
x2 = es->x; y2 = es->y; w2 = es->w; h2 = es->h;
if (E_INTERSECTS(x, y, w, h, x2, y2, w2, h2))
return 0x7fffffff;
{
int x0, x00, y0, y00;
int iw, ih;
if (!es->cfg->overlap) return 0x7fffffff;
x0 = x;
if (x < x2) x0 = x2;
x00 = (x + w);
if ((x2 + w2) < (x + w)) x00 = (x2 + w2);
y0 = y;
if (y < y2) y0 = y2;
y00 = (y + h);
if ((y2 + h2) < (y + h)) y00 = (y2 + h2);
iw = x00 - x0;
ih = y00 - y0;
ar += (iw * ih);
}
}
return ar;
}