fix min-size calculations for lineart textures

This commit is contained in:
Dana Jansens 2008-02-14 12:31:51 -05:00
parent 415c0d2721
commit baf1a0919d

View file

@ -373,6 +373,8 @@ gint RrMinWidth(RrAppearance *a)
gint l, t, r, b;
gint w = 0;
RrMargins(a, &l, &t, &r, &b);
for (i = 0; i < a->textures; ++i) {
switch (a->texture[i].type) {
case RR_TEXTURE_NONE:
@ -394,14 +396,12 @@ gint RrMinWidth(RrAppearance *a)
w += MAX(w, a->texture[i].data.rgba.width);
break;
case RR_TEXTURE_LINE_ART:
w += MAX(w, MAX(a->texture[i].data.lineart.x1,
a->texture[i].data.lineart.x2));
w = MAX(w, MAX(a->texture[i].data.lineart.x1 - l - r,
a->texture[i].data.lineart.x2 - l - r));
break;
}
}
RrMargins(a, &l, &t, &r, &b);
w += l + r;
if (w < 1) w = 1;
@ -415,6 +415,8 @@ gint RrMinHeight(RrAppearance *a)
RrSize *m;
gint h = 0;
RrMargins(a, &l, &t, &r, &b);
for (i = 0; i < a->textures; ++i) {
switch (a->texture[i].type) {
case RR_TEXTURE_NONE:
@ -446,14 +448,12 @@ gint RrMinHeight(RrAppearance *a)
h += MAX(h, a->texture[i].data.rgba.height);
break;
case RR_TEXTURE_LINE_ART:
h += MAX(h, MAX(a->texture[i].data.lineart.y1,
a->texture[i].data.lineart.y2));
h = MAX(h, MAX(a->texture[i].data.lineart.y1 - t - b,
a->texture[i].data.lineart.y2 - t - b));
break;
}
}
RrMargins(a, &l, &t, &r, &b);
h += t + b;
if (h < 1) h = 1;