GdkRectangle *dest)
{
gint dest_x, dest_y;
- gint dest_w, dest_h;
+ gint dest_x2, dest_y2;
gint return_val;
g_return_val_if_fail (src1 != NULL, FALSE);
dest_x = MAX (src1->x, src2->x);
dest_y = MAX (src1->y, src2->y);
- dest_w = MIN (src1->x + src1->width, src2->x + src2->width) - dest_x;
- dest_h = MIN (src1->y + src1->height, src2->y + src2->height) - dest_y;
+ dest_x2 = MIN (src1->x + src1->width, src2->x + src2->width);
+ dest_y2 = MIN (src1->y + src1->height, src2->y + src2->height);
- if (dest_w > 0 && dest_h > 0)
+ if (dest_x2 > dest_x && dest_y2 > dest_y)
{
if (dest)
{
dest->x = dest_x;
dest->y = dest_y;
- dest->width = dest_w;
- dest->height = dest_h;
+ dest->width = dest_x2 - dest_x;
+ dest->height = dest_y2 - dest_y;
}
return_val = TRUE;
}