Finally fixed this piece of crap so it works on all monitors. v1.0
authorKent Sutherland <ksuther@ithinksw.com>
Tue, 5 Apr 2005 01:46:06 +0000 (01:46 +0000)
committerKent Sutherland <ksuther@ithinksw.com>
Tue, 5 Apr 2005 01:46:06 +0000 (01:46 +0000)
ITPivotWindowEffect.m

index 3b0c5a4..0d01e1f 100644 (file)
                               (CGSWindowID)[_window windowNumber],
                               transform);
     } else {
-        
         float  degAngle;
-        NSRect screenFrame = [[_window screen] frame];
-        float  translateX = 0;
-        float  translateY = 0;
         CGAffineTransform transform;
         
         if ( vPos == ITWindowPositionBottom ) {
         }
         
         degAngle  = (angle * (pi / 180));
-        transform = CGAffineTransformMakeRotation(degAngle);
-        if ( vPos == ITWindowPositionBottom ) {
-            transform.ty = ( winFrame.size.height + winFrame.origin.y) + (screenFrame.size.height - [[NSScreen mainScreen] frame].size.height);
-            translateY   = -(screenFrame.size.height);
+               transform = CGAffineTransformMakeRotation(degAngle);
+               
+               if ( vPos == ITWindowPositionBottom ) {
+            transform.ty = winFrame.size.height;
         } else if ( vPos == ITWindowPositionTop ) {
-                       transform.ty = winFrame.origin.y + winFrame.size.height - [[NSScreen mainScreen] frame].size.height;
-            translateY   = 0;
+                       transform.ty = 0;
         }
         
         if ( hPos == ITWindowPositionLeft ) {
-            transform.tx = -( winFrame.origin.x );
-            translateX   = 0;
+            transform.tx = 0;
         } else if ( hPos == ITWindowPositionRight ) {
-            //transform.tx = ( screenFrame.size.width - winFrame.origin.x );
-                       transform.tx = ( screenFrame.size.width - winFrame.origin.x );
-            translateX   = -(screenFrame.size.width);
+                       transform.tx = winFrame.size.width;
         }
+               
+               transform = CGAffineTransformTranslate(transform, -winFrame.origin.x - transform.tx, winFrame.origin.y + winFrame.size.height - [[NSScreen mainScreen] frame].size.height - transform.ty);
         CGSSetWindowTransform([NSApp contextID],
                               (CGSWindowID)[_window windowNumber],
-                              CGAffineTransformTranslate( transform,
-                                                          translateX,
-                                                          translateY ) );
+                                                         transform );
     }
 }