1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-02-13 19:52:20 +00:00

dtappbuilder: set limits on the resize rectangle to avoid rollover.

This commit is contained in:
Liang Chang 2021-02-20 22:15:56 +08:00
parent eb83fca4b7
commit 915ba5d5a9

View file

@ -794,51 +794,51 @@ make_rect (
{
case NORTH:
new_r->x = r->x;
new_r->y = y;
new_r->y = min(y, rect_bottom(r));
new_r->width = r->width;
new_r->height = (r->y + r->height) - y;
new_r->height = max(0, r->y + r->height - y);
break;
case SOUTH:
new_r->x = r->x;
new_r->y = r->y;
new_r->width = r->width;
new_r->height = y - r->y;
new_r->height = max(0, y - r->y);
break;
case EAST:
new_r->x = r->x;
new_r->y = r->y;
new_r->width = x - r->x;
new_r->width = max(0, x - r->x);
new_r->height = r->height;
break;
case WEST:
new_r->x = x;
new_r->x = min(x, rect_right(r));
new_r->y = r->y;
new_r->width = (r->x + r->width) - x;
new_r->width = max(0, r->x + r->width - x);
new_r->height = r->height;
break;
case NORTH_EAST:
new_r->x = r->x;
new_r->y = y;
new_r->width = x - r->x;
new_r->height = (r->y + r->height) - y;
new_r->y = min(y, rect_bottom(r));
new_r->width = max(0, x - r->x);
new_r->height = max(0, r->y + r->height - y);
break;
case NORTH_WEST:
new_r->x = x;
new_r->y = y;
new_r->width = (r->x + r->width) - x;
new_r->height = (r->y + r->height) - y;
new_r->x = min(x, rect_right(r));
new_r->y = min(y, rect_bottom(r));
new_r->width = max(0, r->x + r->width - x);
new_r->height = max(0, r->y + r->height - y);
break;
case SOUTH_EAST:
new_r->x = r->x;
new_r->y = r->y;
new_r->width = x - r->x;
new_r->height = y - r->y;
new_r->width = max(0, x - r->x);
new_r->height = max(0, y - r->y);
break;
case SOUTH_WEST:
new_r->x = x;
new_r->x = min(x, rect_right(r));
new_r->y = r->y;
new_r->width = (r->x + r->width) - x;
new_r->height = y - r->y;
new_r->width = max(0, r->x + r->width - x);
new_r->height = max(0, y - r->y);
break;
}
}