- (void)setScale:(float)scale angle:(float)angle
{
- //int hPos = [_window horizontalPosition];
float radAngle = (angle * 4 * pi);
CGAffineTransform transform;
NSPoint translation;
- NSRect screenFrame = [[_window screen] frame];
+ NSRect winFrame = [_window frame];
+
+ scale = MAX(scale, 0.000001);
- translation.x = /*screenFrame.origin.x + */([_window frame].size.width / 2.0);
- translation.y = /*screenFrame.origin.y + */([_window frame].size.height / 2.0);
+ translation.x = (winFrame.size.width / 2.0);
+ translation.y = (winFrame.size.height / 2.0);
transform = CGAffineTransformMakeTranslation(translation.x, translation.y);
transform = CGAffineTransformScale(transform, 1.0 / scale, 1.0 / scale);
transform = CGAffineTransformRotate(transform, radAngle);
transform = CGAffineTransformTranslate(transform, -translation.x, -translation.y);
-
- /*if (hPos == ITWindowPositionLeft) {
- translation.x = -[_window frame].origin.x;
- } else if (hPos == ITWindowPositionRight) {
- translation.x = -[_window frame].origin.x;
- } else {
- translation.x = -[_window frame].origin.x;
- }*/
- translation.x = -[_window frame].origin.x;
- translation.y = -( screenFrame.size.height - [_window frame].origin.y - [_window frame].size.height );
+
+ translation.x = -winFrame.origin.x;
+ translation.y = winFrame.origin.y + winFrame.size.height - [[NSScreen mainScreen] frame].size.height;
transform = CGAffineTransformTranslate(transform, translation.x, translation.y);
CGSSetWindowTransform([NSApp contextID],