Finally fixed this piece of crap so it works on all monitors.
[ITKit.git] / ITPivotWindowEffect.m
index 3b0c5a4..0d01e1f 100644 (file)
                               (CGSWindowID)[_window windowNumber],
                               transform);
     } else {
                               (CGSWindowID)[_window windowNumber],
                               transform);
     } else {
-        
         float  degAngle;
         float  degAngle;
-        NSRect screenFrame = [[_window screen] frame];
-        float  translateX = 0;
-        float  translateY = 0;
         CGAffineTransform transform;
         
         if ( vPos == ITWindowPositionBottom ) {
         CGAffineTransform transform;
         
         if ( vPos == ITWindowPositionBottom ) {
         }
         
         degAngle  = (angle * (pi / 180));
         }
         
         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 ) {
         } 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 ) {
         }
         
         if ( hPos == ITWindowPositionLeft ) {
-            transform.tx = -( winFrame.origin.x );
-            translateX   = 0;
+            transform.tx = 0;
         } else if ( hPos == ITWindowPositionRight ) {
         } 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],
         CGSSetWindowTransform([NSApp contextID],
                               (CGSWindowID)[_window windowNumber],
-                              CGAffineTransformTranslate( transform,
-                                                          translateX,
-                                                          translateY ) );
+                                                         transform );
     }
 }
 
     }
 }