diff --git a/ShiftIt/DefaultShiftItActions.m b/ShiftIt/DefaultShiftItActions.m
index c8019868..11baa4fb 100644
--- a/ShiftIt/DefaultShiftItActions.m
+++ b/ShiftIt/DefaultShiftItActions.m
@@ -41,6 +41,12 @@ BOOL rectCloseTo(NSRect a, NSRect b) {
leftHalf.size.width = screenSize.width / 2.0;
leftHalf.size.height = screenSize.height;
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+ BOOL cycle = [defaults boolForKey: kMutipleActionsCycleWindowSizes];
+ if(!cycle) {
+ return MakeAnchoredRect(leftHalf, kLeftDirection);
+ }
+
NSRect leftThird = NSMakeRect(0, 0, 0, 0);
leftThird.origin.x = 0;
leftThird.origin.y = 0;
@@ -66,6 +72,12 @@ BOOL rectCloseTo(NSRect a, NSRect b) {
rightHalf.size.width = screenSize.width / 2.0;
rightHalf.size.height = screenSize.height;
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+ BOOL cycle = [defaults boolForKey: kMutipleActionsCycleWindowSizes];
+ if(!cycle) {
+ return MakeAnchoredRect(rightHalf, kRightDirection);
+ }
+
NSRect rightThird = NSMakeRect(0, 0, 0, 0);
rightThird.origin.x = screenWidth - (screenWidth * 1.0 / 3.0);
rightThird.origin.y = 0;
@@ -93,6 +105,12 @@ BOOL rectCloseTo(NSRect a, NSRect b) {
topHalf.size.width = screenSize.width;
topHalf.size.height = screenSize.height / 2;
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+ BOOL cycle = [defaults boolForKey: kMutipleActionsCycleWindowSizes];
+ if(!cycle) {
+ return MakeAnchoredRect(topHalf, kTopDirection);
+ }
+
NSRect topThird = NSMakeRect(0, 0, 0, 0);
topThird.origin.x = 0;
topThird.origin.y = 0;
@@ -117,6 +135,12 @@ BOOL rectCloseTo(NSRect a, NSRect b) {
bottomHalf.size.width = screenSize.width;
bottomHalf.size.height = screenSize.height / 2;
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+ BOOL cycle = [defaults boolForKey: kMutipleActionsCycleWindowSizes];
+ if(!cycle) {
+ return MakeAnchoredRect(bottomHalf, kBottomDirection);
+ }
+
NSRect bottomThird = NSMakeRect(0, 0, 0, 0);
bottomThird.origin.x = 0;
bottomThird.origin.y = screenHeight - (screenHeight * 1.0 / 3.0);
diff --git a/ShiftIt/ShiftIt-defaults.plist b/ShiftIt/ShiftIt-defaults.plist
index 85b5e979..01662794 100644
--- a/ShiftIt/ShiftIt-defaults.plist
+++ b/ShiftIt/ShiftIt-defaults.plist
@@ -85,14 +85,16 @@
zoomKeyCode
6
zoomModifiers
- 1835008
- nextscreenKeyCode
- 45
- nextscreenModifiers
+ 1835008
+ nextscreenKeyCode
+ 45
+ nextscreenModifiers
1835008
previousscreenKeyCode
35
previousscreenModifiers
1835008
+ mutipleActionsCycleWindowSizes
+
diff --git a/ShiftIt/ShiftItApp.h b/ShiftIt/ShiftItApp.h
index d660d2b0..e5890dcf 100644
--- a/ShiftIt/ShiftItApp.h
+++ b/ShiftIt/ShiftItApp.h
@@ -40,6 +40,7 @@ extern NSString *const kWindowSizeDeltaPrefKey;
extern NSString *const kScreenSizeDeltaPrefKey;
extern NSString *const kAXIncludeDrawersPrefKey;
extern NSString *const kAXDriverConvergePrefKey;
+extern NSString *const kMutipleActionsCycleWindowSizes;
typedef enum {
kFixedSizeDeltaType = 3001,
diff --git a/ShiftIt/ShiftItAppDelegate.m b/ShiftIt/ShiftItAppDelegate.m
index e3502a1f..c5438836 100644
--- a/ShiftIt/ShiftItAppDelegate.m
+++ b/ShiftIt/ShiftItAppDelegate.m
@@ -48,6 +48,7 @@
NSString *const kFixedSizeHeightDeltaPrefKey = @"fixedSizeHeightDelta";
NSString *const kWindowSizeDeltaPrefKey = @"windowSizeDelta";
NSString *const kScreenSizeDeltaPrefKey = @"screenSizeDelta";
+NSString *const kMutipleActionsCycleWindowSizes = @"multipleActionsCycleWindowSizes";
// AX Driver Options
// TODO: should be moved to AX driver
@@ -738,4 +739,4 @@ - (NSArray *)feedParametersForUpdater:(SUUpdater *)updater
}
-@end
\ No newline at end of file
+@end