forked from enlightenment/enlightenment
Fix box edge with xcomps sizing policy - resize offscreen still not quite right
SVN revision: 12895
This commit is contained in:
parent
0f9b9cda50
commit
acec22ea5f
|
@ -467,22 +467,31 @@ static void
|
||||||
_pager_cb_move(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
_pager_cb_move(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||||
{
|
{
|
||||||
Evas_Event_Mouse_Move *ev;
|
Evas_Event_Mouse_Move *ev;
|
||||||
Pager *p;
|
Pager *p;
|
||||||
Evas_Coord cx, cy, sw, sh;
|
Evas_Coord cx, cy, sw, sh, tw, th;
|
||||||
|
E_Zone *zone;
|
||||||
|
int xcount, ycount;
|
||||||
|
|
||||||
evas_pointer_canvas_xy_get(e, &cx, &cy);
|
evas_pointer_canvas_xy_get(e, &cx, &cy);
|
||||||
evas_output_viewport_get(e, NULL, NULL, &sw, &sh);
|
evas_output_viewport_get(e, NULL, NULL, &sw, &sh);
|
||||||
|
|
||||||
ev = event_info;
|
ev = event_info;
|
||||||
p = data;
|
p = data;
|
||||||
|
|
||||||
|
zone = e_zone_current_get(p->con);
|
||||||
|
e_zone_desk_count_get(zone, &xcount, &ycount);
|
||||||
|
/* note that these are not the same as p->tw, as that could be slightly
|
||||||
|
larger (rounding etc) these will vie exactly the right result */
|
||||||
|
tw = p->fw * xcount;
|
||||||
|
th = p->fh * ycount;
|
||||||
if (p->move)
|
if (p->move)
|
||||||
{
|
{
|
||||||
p->fx += cx - p->xx;
|
p->fx += cx - p->xx;
|
||||||
p->fy += cy - p->yy;
|
p->fy += cy - p->yy;
|
||||||
if (p->fx < 0) p->fx = 0;
|
if (p->fx < 0) p->fx = 0;
|
||||||
if (p->fy < 0) p->fy = 0;
|
if (p->fy < 0) p->fy = 0;
|
||||||
if (p->fx + p->fw > sw) p->fx = sw - p->fw;
|
if (p->fx + tw > sw) p->fx = sw - tw;
|
||||||
if (p->fy + p->fh > sh) p->fy = sh - p->fh;
|
if (p->fy + th > sh) p->fy = sh - th;
|
||||||
_pager_refresh(p);
|
_pager_refresh(p);
|
||||||
}
|
}
|
||||||
else if (p->resize)
|
else if (p->resize)
|
||||||
|
@ -504,8 +513,16 @@ _pager_cb_move(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||||
if (p->fh < PAGER_MIN_H) p->fh = PAGER_MIN_H;
|
if (p->fh < PAGER_MIN_H) p->fh = PAGER_MIN_H;
|
||||||
// if (p->fw < p->minsize) p->fw = p->minsize;
|
// if (p->fw < p->minsize) p->fw = p->minsize;
|
||||||
// if (p->fw > p->maxsize) p->fw = p->maxsize;
|
// if (p->fw > p->maxsize) p->fw = p->maxsize;
|
||||||
if (p->fx + p->fw > sw) p->fw = sw - p->fx;
|
if (p->fx + tw > sw)
|
||||||
if (p->fy + p->fh > sh) p->fh = sh - p->fy;
|
{
|
||||||
|
p->tw = sw - p->fx;
|
||||||
|
p->fw = p->tw / xcount;
|
||||||
|
}
|
||||||
|
if (p->fy + th > sh)
|
||||||
|
{
|
||||||
|
p->th = sh - p->fy;
|
||||||
|
p->fh = p->th / ycount;
|
||||||
|
}
|
||||||
_pager_refresh(p);
|
_pager_refresh(p);
|
||||||
}
|
}
|
||||||
p->xx = ev->cur.canvas.x;
|
p->xx = ev->cur.canvas.x;
|
||||||
|
|
Loading…
Reference in New Issue