* Tests/gui/NSView/NSView_autoresize_and_rounding.m: Add tests

for centerScanRect: with flipped view.
        * Source/NSView.m (-centerScanRect:): Change to get the failed
        tests to pass.
        * Source/GSThemeTools.m (-drawRoundBezel:withColor:): Make round
        bezel look a bit nicer.
        * Source/NSButtonCell.m (-drawImage:withFrame:inView:): Use
        centerScanRect: instead of similar code.
        * Source/NSCell.m: Use imageRectForBounds: and
        titleRectForBounds: in drawInteriorWithFrame:inView:.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@38929 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
fredkiefer 2015-08-25 21:33:04 +00:00
parent 80f7c762a3
commit 1f3a02d1e7
6 changed files with 98 additions and 64 deletions

View file

@ -1656,6 +1656,8 @@ static NSSize _computeScale(NSSize fs, NSSize bs)
- (NSRect) centerScanRect: (NSRect)aRect
{
NSAffineTransform *matrix;
CGFloat x_org;
CGFloat y_org;
/*
* Hmm - we assume that the windows coordinate system is centered on the
@ -1670,10 +1672,12 @@ static NSSize _computeScale(NSSize fs, NSSize bs)
aRect.size.height = -aRect.size.height;
}
x_org = aRect.origin.x;
y_org = aRect.origin.y;
aRect.origin.x = GSRoundTowardsInfinity(aRect.origin.x);
aRect.origin.y = GSRoundTowardsInfinity(aRect.origin.y);
aRect.size.width = GSRoundTowardsInfinity(aRect.size.width);
aRect.size.height = GSRoundTowardsInfinity(aRect.size.height);
aRect.origin.y = [self isFlipped] ? GSRoundTowardsNegativeInfinity(aRect.origin.y) : GSRoundTowardsInfinity(aRect.origin.y);
aRect.size.width = GSRoundTowardsInfinity(aRect.size.width + (x_org - aRect.origin.x) / 2.0);
aRect.size.height = GSRoundTowardsInfinity(aRect.size.height + (y_org - aRect.origin.y) / 2.0);
matrix = [self _matrixFromWindow];
aRect.origin = [matrix transformPoint: aRect.origin];