all repos — openbox @ 7a926bb82fc724b3a1b50a385b4040ab7fee6878

openbox fork - make it a bit more like ryudo

Find a valid image to use in the image cache. Fixes bug #1149

The larger of the width and height has to match.  If the smaller matches, then
it would have to be resized down to fit inside the area, so that does not
count.
Dana Jansens danakj@orodu.net
commit

7a926bb82fc724b3a1b50a385b4040ab7fee6878

parent

543828c23f36315e27516a88b7bd0bc8998e741c

1 files changed, 11 insertions(+), 7 deletions(-)

jump to
M render/image.crender/image.c

@@ -221,7 +221,7 @@

return pic; } -/*! This drawns an RGBA picture into the target, within the rectangle specified +/*! This draws an RGBA picture into the target, within the rectangle specified by the area parameter. If the area's size differs from the source's then it will be centered within the rectangle */ void DrawRGBA(RrPixel32 *target, gint target_w, gint target_h,

@@ -405,11 +405,13 @@ self = img->image;

pic = NULL; free_pic = FALSE; - /* is there an original of this size? (only w or h has to be right cuz - we maintain aspect ratios) */ + /* is there an original of this size? (only the larger of + w or h has to be right cuz we maintain aspect ratios) */ for (i = 0; i < self->n_original; ++i) - if (self->original[i]->width == area->width || - self->original[i]->height == area->height) + if ((self->original[i]->width >= self->original[i]->height && + self->original[i]->width == area->width) || + (self->original[i]->width <= self->original[i]->height && + self->original[i]->height == area->height)) { pic = self->original[i]; break;

@@ -417,8 +419,10 @@ }

/* is there a resize of this size? */ for (i = 0; i < self->n_resized; ++i) - if (self->resized[i]->width == area->width || - self->resized[i]->height == area->height) + if ((self->resized[i]->width >= self->resized[i]->height && + self->resized[i]->width == area->width) || + (self->resized[i]->width <= self->resized[i]->height && + self->resized[i]->height == area->height)) { gint j; RrImagePic *saved;