Cover browser: Fix rendering of center cover when width of cover browser is less than the width of a single cover

This commit is contained in:
Kovid Goyal 2010-07-03 19:58:19 -06:00
parent a0ae751a5e
commit 4c25365ea4

View File

@ -795,17 +795,20 @@ QRect PictureFlowPrivate::renderCenterSlide(const SlideInfo &slide) {
int sw = src->height(); int sw = src->height();
int sh = src->width(); int sh = src->width();
int h = buffer.height(); int h = buffer.height();
QRect rect(buffer.width()/2 - sw/2, 0, sw, h-1); int srcoff = 0;
int left = rect.left(); int left = buffer.width()/2 - sw/2;
if (left < 0) {
if (left >= 0) { srcoff = -left;
int xcon = MIN(h-1, sh-1); sw += left;
int ycon = MIN(sw, buffer.width() - left); left = 0;
for(int x = 0; x < xcon; x++)
for(int y = 0; y < ycon; y++)
buffer.setPixel(left + y, 1+x, src->pixel(x, y));
} }
QRect rect(left, 0, sw, h-1);
int xcon = MIN(h-1, sh-1);
int ycon = MIN(sw, buffer.width() - left);
for(int x = 0; x < xcon; x++)
for(int y = 0; y < ycon; y++)
buffer.setPixel(left + y, 1+x, src->pixel(x, srcoff+y));
return rect; return rect;
} }