Two situations: * Create a non-rectangular selection (say, two overlapping circles). Choose layer/rotate. Chose a non-90 degree rotation value. The selection is rotated correctly, but the non-selected pixels are erased. Expected behaviour: non-selected pixels are not touched. * Create another non-rectangular selection. Choose image/rotate. Chose a non-90 degree rotation value. The selection is rotated, the non selected pixels are erased (same bug as above), but additionally, the image is enlarged even if the rotated pixels do not exceed the image boundaries. Expected behaviour: non-selected pixels are not to be touched and the image stays the same size.
This one is of Casper, for when he has time again.
Well, as it's Cyrilles commit that broke it, he might be a better candidate to fix it. Not reassigning, but feel free to take over
reverting my change does not fix the problem. but to avoid us pingponging bugs to the rotate/scaling transform worker, once 1.6.2 is released next week, I will commit the revert of my patch and (re)open the relevant bug.
SVN commit 665629 by boemann: Hopefully fix BUG:141390 M +6 -5 kis_transform_worker.cc --- branches/koffice/1.6/koffice/krita/core/kis_transform_worker.cc #665628:665629 @@ -430,17 +430,18 @@ { Q_UINT8 *data; - data = srcIt.rawData(); - memcpy(&tmpLine[i*pixelSize], data, pixelSize); + data = srcIt.rawData(); + memcpy(&tmpLine[i*pixelSize], data, pixelSize); + if(srcIt.isSelected()) + { // XXX: Should set alpha = alpha*(1-selectedness) cs->setAlpha(data, 0, 1); - if(srcIt.isSelected()) - { tmpSel[i] = 255; } - else + else { tmpSel[i] = 0; + } ++srcIt; i++; }
Fixed!
You need to log in before you can comment on or make changes to this bug.