fix min-size calculations for lineart textures

This commit is contained in:
Dana Jansens 2008-02-14 12:31:51 -05:00 committed by Mikael Magnusson
parent b026bd2ecc
commit 957e07cbcc

View file

@ -394,6 +394,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:
@ -418,14 +420,12 @@ gint RrMinWidth(RrAppearance *a)
/* images resize so they don't contribute anything to the min */
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;
@ -439,6 +439,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:
@ -473,14 +475,12 @@ gint RrMinHeight(RrAppearance *a)
/* images resize so they don't contribute anything to the min */
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;