From 39b3f7f01e04019e626086b7503c226308c1553b Mon Sep 17 00:00:00 2001 From: Chris Schepman Date: Fri, 12 Apr 2024 15:20:53 -0400 Subject: [PATCH 1/3] First pass at refresh rate menu --- easy-move-resize/EMRAppDelegate.h | 6 ++++ easy-move-resize/EMRAppDelegate.m | 45 ++++++++++++++++++++++++-- easy-move-resize/EMRPreferences.h | 14 ++++++-- easy-move-resize/EMRPreferences.m | 16 ++++++++- easy-move-resize/en.lproj/MainMenu.xib | 33 +++++++++++++++++-- 5 files changed, 107 insertions(+), 7 deletions(-) diff --git a/easy-move-resize/EMRAppDelegate.h b/easy-move-resize/EMRAppDelegate.h index 5aaa57b..5795dd1 100644 --- a/easy-move-resize/EMRAppDelegate.h +++ b/easy-move-resize/EMRAppDelegate.h @@ -33,6 +33,12 @@ static const double kResizeFilterInterval = 0.04; @property (weak) IBOutlet NSMenuItem *resizeOnlyMenu; @property (weak) IBOutlet NSMenuItem *disabledAppsMenu; @property (weak) IBOutlet NSMenuItem *lastAppMenu; + +@property (weak) IBOutlet NSMenuItem *oneFourtyFourHertz; +@property (weak) IBOutlet NSMenuItem *oneTwentyHertz; +@property (weak) IBOutlet NSMenuItem *oneHundredHertz; +@property (weak) IBOutlet NSMenuItem *sixtyHertz; + @property (nonatomic) BOOL sessionActive; @end diff --git a/easy-move-resize/EMRAppDelegate.m b/easy-move-resize/EMRAppDelegate.m index e517c95..d4b65bf 100644 --- a/easy-move-resize/EMRAppDelegate.m +++ b/easy-move-resize/EMRAppDelegate.m @@ -26,6 +26,8 @@ CGEventRef myCGEventCallback(CGEventTapProxy __unused proxy, CGEventType type, C CGEventType resizeModifierUp = kCGEventRightMouseUp; bool handled = NO; + double interval = [ourDelegate refreshInterval]; + if (![ourDelegate sessionActive]) { return event; } @@ -139,7 +141,7 @@ CGEventRef myCGEventCallback(CGEventTapProxy __unused proxy, CGEventType type, C CFTypeRef _position; // actually applying the change is expensive, so only do it every kMoveFilterInterval seconds - if (CACurrentMediaTime() - [moveResize tracking] > kMoveFilterInterval) { + if (CACurrentMediaTime() - [moveResize tracking] > interval) { _position = (CFTypeRef) (AXValueCreate(kAXValueCGPointType, (const void *) &thePoint)); AXUIElementSetAttributeValue(_clickedWindow, (__bridge CFStringRef) NSAccessibilityPositionAttribute, (CFTypeRef *) _position); if (_position != NULL) CFRelease(_position); @@ -237,7 +239,7 @@ CGEventRef myCGEventCallback(CGEventTapProxy __unused proxy, CGEventType type, C [moveResize setWndSize:wndSize]; // actually applying the change is expensive, so only do it every kResizeFilterInterval events - if (CACurrentMediaTime() - [moveResize tracking] > kResizeFilterInterval) { + if (CACurrentMediaTime() - [moveResize tracking] > interval) { // only make a call to update the position if we need to if (resizeSection.xResizeDirection == left || resizeSection.yResizeDirection == bottom) { CFTypeRef _position = (CFTypeRef)(AXValueCreate(kAXValueCGPointType, (const void *)&cTopLeft)); @@ -409,6 +411,34 @@ - (void)initMenuItems { if ([flags containsObject:FN_KEY]) { [_fnMenu setState:1]; } + + [self updateRefreshRate]; +} + +- (void)updateRefreshRate { + [[self sixtyHertz] setState:0]; + [[self oneHundredHertz] setState:0]; + [[self oneTwentyHertz] setState:0]; + [[self oneFourtyFourHertz] setState:0]; + + int refreshRate = [preferences getRefreshRate]; + if (refreshRate == 0) { + refreshRate = 60; + [preferences setRefreshRate: 60]; + } + if (refreshRate == 144) { + [[self oneFourtyFourHertz] setState: 1]; + } + if (refreshRate == 120) { + [[self oneTwentyHertz] setState: 1]; + } + if (refreshRate == 100) { + [[self oneHundredHertz] setState: 1]; + } + if (refreshRate == 60) { + [[self sixtyHertz] setState: 1]; + } + } - (IBAction)modifierToggle:(id)sender { @@ -480,6 +510,13 @@ - (IBAction)enableDisabledApp:(id)sender { [self reconstructDisabledAppsSubmenu]; } +- (IBAction)toggleRefreshRate:(id)sender { + NSMenuItem *menu = (NSMenuItem*)sender; + int refreshRate = (int)[menu tag]; + [preferences setRefreshRate:refreshRate]; + [self updateRefreshRate]; +} + - (int)modifierFlags { return keyModifierFlags; } @@ -501,6 +538,10 @@ -(BOOL)resizeOnly { return [preferences resizeOnly]; } +- (double)refreshInterval { + return [preferences refreshInterval]; +} + - (void)setMenusEnabled:(BOOL)enabled { [_altMenu setEnabled:enabled]; [_cmdMenu setEnabled:enabled]; diff --git a/easy-move-resize/EMRPreferences.h b/easy-move-resize/EMRPreferences.h index 7edf941..6b6f508 100644 --- a/easy-move-resize/EMRPreferences.h +++ b/easy-move-resize/EMRPreferences.h @@ -8,6 +8,7 @@ #ifndef EMRPreferences_h #define EMRPreferences_h +#define REFRESH_RATE @"RefreshRate" #define SHOULD_BRING_WINDOW_TO_FRONT @"BringToFront" #define SHOULD_MIDDLE_CLICK_RESIZE @"MiddleClickResize" #define RESIZE_ONLY @"ResizeOnly" @@ -41,10 +42,19 @@ - (NSSet*) getFlagStringSet; // returns a dict of disabled apps -- (NSDictionary*) getDisabledApps; +- (NSDictionary*)getDisabledApps; + +// get current refresh rate +- (int)getRefreshRate; + +// set refresh rate +- (void)setRefreshRate:(int)refreshRate; + +// get current refresh rate +- (double)refreshInterval; // add or remove an app from the disabled apps list -- (void) setDisabledForApp:(NSString*)bundleIdentifier withLocalizedName:(NSString*)localizedName disabled:(BOOL)disabled; +- (void)setDisabledForApp:(NSString*)bundleIdentifier withLocalizedName:(NSString*)localizedName disabled:(BOOL)disabled; // reset preferences to the defaults - (void)setToDefaults; diff --git a/easy-move-resize/EMRPreferences.m b/easy-move-resize/EMRPreferences.m index 50c6d14..dc99efe 100644 --- a/easy-move-resize/EMRPreferences.m +++ b/easy-move-resize/EMRPreferences.m @@ -5,6 +5,7 @@ @implementation EMRPreferences { @private NSUserDefaults *userDefaults; + double refreshInterval; } - (id)init { @@ -100,6 +101,7 @@ - (void)setToDefaults { [userDefaults setBool:NO forKey:SHOULD_MIDDLE_CLICK_RESIZE]; [userDefaults setBool:NO forKey:RESIZE_ONLY]; [userDefaults setObject:[NSDictionary dictionary] forKey:DISABLED_APPS_DEFAULTS_KEY]; + [userDefaults setInteger:60 forKey:REFRESH_RATE]; } - (NSMutableSet*)createSetFromFlagString:(NSString*)modifierFlagString { @@ -162,5 +164,17 @@ -(void)setResizeOnly:(BOOL)resizeOnly { [userDefaults setBool:resizeOnly forKey:RESIZE_ONLY]; } -@end +- (int)getRefreshRate { + return (int)[userDefaults integerForKey:REFRESH_RATE]; +} + +- (void)setRefreshRate:(int)refreshRate { + [userDefaults setInteger:refreshRate forKey:REFRESH_RATE]; + refreshInterval = (1.0 / refreshRate); +} +- (double)refreshInterval { + return refreshInterval; +} + +@end diff --git a/easy-move-resize/en.lproj/MainMenu.xib b/easy-move-resize/en.lproj/MainMenu.xib index 614894f..359db01 100644 --- a/easy-move-resize/en.lproj/MainMenu.xib +++ b/easy-move-resize/en.lproj/MainMenu.xib @@ -1,8 +1,8 @@ - + - + @@ -720,6 +720,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + @@ -747,8 +772,12 @@ + + + + From 59e7409d9c28030e8eb224237c17d7aa49ebcb8f Mon Sep 17 00:00:00 2001 From: Chris Schepman Date: Fri, 12 Apr 2024 15:21:19 -0400 Subject: [PATCH 2/3] Consistent formatting and xcode project things --- .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ .../xcschemes/easy-move-resize.xcscheme | 90 +++++++++++++++++++ easy-move-resize/EMRAppDelegate.m | 30 ++++--- easy-move-resize/EMRMoveResize.m | 2 +- easy-move-resize/EMRPreferences.h | 7 +- easy-move-resize/EMRPreferences.m | 16 ++-- 6 files changed, 128 insertions(+), 25 deletions(-) create mode 100644 easy-move-resize.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 easy-move-resize.xcodeproj/xcshareddata/xcschemes/easy-move-resize.xcscheme diff --git a/easy-move-resize.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/easy-move-resize.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/easy-move-resize.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/easy-move-resize.xcodeproj/xcshareddata/xcschemes/easy-move-resize.xcscheme b/easy-move-resize.xcodeproj/xcshareddata/xcschemes/easy-move-resize.xcscheme new file mode 100644 index 0000000..e6a4a49 --- /dev/null +++ b/easy-move-resize.xcodeproj/xcshareddata/xcschemes/easy-move-resize.xcscheme @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/easy-move-resize/EMRAppDelegate.m b/easy-move-resize/EMRAppDelegate.m index d4b65bf..b66ea8f 100644 --- a/easy-move-resize/EMRAppDelegate.m +++ b/easy-move-resize/EMRAppDelegate.m @@ -16,7 +16,6 @@ - (id) init { } CGEventRef myCGEventCallback(CGEventTapProxy __unused proxy, CGEventType type, CGEventRef event, void *refcon) { - EMRAppDelegate *ourDelegate = (__bridge EMRAppDelegate*)refcon; int keyModifierFlags = [ourDelegate modifierFlags]; bool shouldMiddleClickResize = [ourDelegate shouldMiddleClickResize]; @@ -37,7 +36,7 @@ CGEventRef myCGEventCallback(CGEventTapProxy __unused proxy, CGEventType type, C return event; } - if (shouldMiddleClickResize){ + if (shouldMiddleClickResize) { resizeModifierDown = kCGEventOtherMouseDown; resizeModifierDragged = kCGEventOtherMouseDragged; resizeModifierUp = kCGEventOtherMouseUp; @@ -92,7 +91,7 @@ CGEventRef myCGEventCallback(CGEventTapProxy __unused proxy, CGEventType type, C pid_t PID; NSRunningApplication* app; - if(!AXUIElementGetPid(_clickedWindow, &PID)) { + if (!AXUIElementGetPid(_clickedWindow, &PID)) { app = [NSRunningApplication runningApplicationWithProcessIdentifier:PID]; if ([[ourDelegate getDisabledApps] objectForKey:[app bundleIdentifier]] != nil) { [moveResize setTracking:0]; @@ -101,7 +100,7 @@ CGEventRef myCGEventCallback(CGEventTapProxy __unused proxy, CGEventType type, C [ourDelegate setMostRecentApp:app]; } - if([ourDelegate shouldBringWindowToFront]){ + if ([ourDelegate shouldBringWindowToFront]) { if (app != nil) { [app activateWithOptions:NSApplicationActivateIgnoringOtherApps]; } @@ -352,7 +351,7 @@ - (void)becameInactive:(NSNotification*) notification { _sessionActive = false; } --(void)awakeFromNib{ +- (void)awakeFromNib{ NSImage *icon = [NSImage imageNamed:@"MenuIcon"]; statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength]; [statusItem setMenu:statusMenu]; @@ -385,13 +384,13 @@ - (void)initMenuItems { bool shouldMiddleClickResize = [preferences shouldMiddleClickResize]; bool resizeOnly = [preferences resizeOnly]; - if(shouldBringWindowToFront){ + if (shouldBringWindowToFront) { [_bringWindowFrontMenu setState:1]; } - if(shouldMiddleClickResize){ + if (shouldMiddleClickResize) { [_middleClickResizeMenu setState:1]; } - if(resizeOnly){ + if (resizeOnly) { [_resizeOnlyMenu setState:1]; } @@ -520,21 +519,26 @@ - (IBAction)toggleRefreshRate:(id)sender { - (int)modifierFlags { return keyModifierFlags; } -- (void) setMostRecentApp:(NSRunningApplication*)app { + +- (void)setMostRecentApp:(NSRunningApplication*)app { lastApp = app; [_lastAppMenu setTitle:[NSString stringWithFormat:@"Disable for %@", [app localizedName]]]; [_lastAppMenu setEnabled:YES]; } -- (NSDictionary*) getDisabledApps { + +- (NSDictionary*)getDisabledApps { return [preferences getDisabledApps]; } --(BOOL)shouldBringWindowToFront { + +- (BOOL)shouldBringWindowToFront { return [preferences shouldBringWindowToFront]; } --(BOOL)shouldMiddleClickResize { + +- (BOOL)shouldMiddleClickResize { return [preferences shouldMiddleClickResize]; } --(BOOL)resizeOnly { + +- (BOOL)resizeOnly { return [preferences resizeOnly]; } diff --git a/easy-move-resize/EMRMoveResize.m b/easy-move-resize/EMRMoveResize.m index 91c2a40..8537095 100644 --- a/easy-move-resize/EMRMoveResize.m +++ b/easy-move-resize/EMRMoveResize.m @@ -33,7 +33,7 @@ - (void)setWindow:(AXUIElementRef)window { _window = window; } -- (CFRunLoopSourceRef) runLoopSource { +- (CFRunLoopSourceRef)runLoopSource { return _runLoopSource; } diff --git a/easy-move-resize/EMRPreferences.h b/easy-move-resize/EMRPreferences.h index 6b6f508..b526748 100644 --- a/easy-move-resize/EMRPreferences.h +++ b/easy-move-resize/EMRPreferences.h @@ -22,7 +22,6 @@ #define FN_KEY @"FN" @interface EMRPreferences : NSObject { - } @property (nonatomic) BOOL shouldBringWindowToFront; @@ -33,13 +32,13 @@ - (id)initWithUserDefaults:(NSUserDefaults *)defaults; // Get the modifier flags from the standard preferences -- (int) modifierFlags; +- (int)modifierFlags; // Set or unset the given modifier key in the preferences -- (void) setModifierKey:(NSString*)singleFlagString enabled:(BOOL)enabled; +- (void)setModifierKey:(NSString*)singleFlagString enabled:(BOOL)enabled; // returns a set of the currently persisted key constants -- (NSSet*) getFlagStringSet; +- (NSSet*)getFlagStringSet; // returns a dict of disabled apps - (NSDictionary*)getDisabledApps; diff --git a/easy-move-resize/EMRPreferences.m b/easy-move-resize/EMRPreferences.m index dc99efe..d98e537 100644 --- a/easy-move-resize/EMRPreferences.m +++ b/easy-move-resize/EMRPreferences.m @@ -53,7 +53,6 @@ - (void)setModifierFlagString:(NSString *)flagString { [userDefaults setObject:flagString forKey:MODIFIER_FLAGS_DEFAULTS_KEY]; } - - (void)setModifierKey:(NSString *)singleFlagString enabled:(BOOL)enabled { singleFlagString = [singleFlagString uppercaseString]; NSString *modifierFlagString = [userDefaults stringForKey:MODIFIER_FLAGS_DEFAULTS_KEY]; @@ -143,24 +142,27 @@ - (int)flagsFromFlagString:(NSString*)modifierFlagString { return modifierFlags; } --(BOOL)shouldBringWindowToFront { +- (BOOL)shouldBringWindowToFront { return [userDefaults boolForKey:SHOULD_BRING_WINDOW_TO_FRONT]; } --(void)setShouldBringWindowToFront:(BOOL)bringToFront { + +- (void)setShouldBringWindowToFront:(BOOL)bringToFront { [userDefaults setBool:bringToFront forKey:SHOULD_BRING_WINDOW_TO_FRONT]; } --(BOOL)shouldMiddleClickResize { +- (BOOL)shouldMiddleClickResize { return [userDefaults boolForKey:SHOULD_MIDDLE_CLICK_RESIZE]; } --(void)setShouldMiddleClickResize:(BOOL)middleClickResize { + +- (void)setShouldMiddleClickResize:(BOOL)middleClickResize { [userDefaults setBool:middleClickResize forKey:SHOULD_MIDDLE_CLICK_RESIZE]; } --(BOOL)resizeOnly { +- (BOOL)resizeOnly { return [userDefaults boolForKey:RESIZE_ONLY]; } --(void)setResizeOnly:(BOOL)resizeOnly { + +- (void)setResizeOnly:(BOOL)resizeOnly { [userDefaults setBool:resizeOnly forKey:RESIZE_ONLY]; } From 1e71f1a02a845d6dad9c3661261aefe617a50abb Mon Sep 17 00:00:00 2001 From: Chris Schepman Date: Sat, 13 Apr 2024 14:39:15 -0400 Subject: [PATCH 3/3] Detect the max refresh instead of choosing --- easy-move-resize/EMRAppDelegate.h | 6 +-- easy-move-resize/EMRAppDelegate.m | 56 +++++++------------------- easy-move-resize/EMRPreferences.h | 10 ----- easy-move-resize/EMRPreferences.m | 15 ------- easy-move-resize/en.lproj/MainMenu.xib | 29 ------------- 5 files changed, 15 insertions(+), 101 deletions(-) diff --git a/easy-move-resize/EMRAppDelegate.h b/easy-move-resize/EMRAppDelegate.h index 5795dd1..87c2303 100644 --- a/easy-move-resize/EMRAppDelegate.h +++ b/easy-move-resize/EMRAppDelegate.h @@ -34,11 +34,7 @@ static const double kResizeFilterInterval = 0.04; @property (weak) IBOutlet NSMenuItem *disabledAppsMenu; @property (weak) IBOutlet NSMenuItem *lastAppMenu; -@property (weak) IBOutlet NSMenuItem *oneFourtyFourHertz; -@property (weak) IBOutlet NSMenuItem *oneTwentyHertz; -@property (weak) IBOutlet NSMenuItem *oneHundredHertz; -@property (weak) IBOutlet NSMenuItem *sixtyHertz; - @property (nonatomic) BOOL sessionActive; +@property NSTimeInterval refreshInterval; @end diff --git a/easy-move-resize/EMRAppDelegate.m b/easy-move-resize/EMRAppDelegate.m index b66ea8f..d1ded4b 100644 --- a/easy-move-resize/EMRAppDelegate.m +++ b/easy-move-resize/EMRAppDelegate.m @@ -11,6 +11,17 @@ - (id) init { if (self) { NSUserDefaults *userDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"userPrefs"]; preferences = [[EMRPreferences alloc] initWithUserDefaults:userDefaults]; + + // Default to 60hz, but check each connected screen for a faster refresh and use the fastest one we find + self.refreshInterval = 0.0167; + for (NSScreen *screen in [NSScreen screens]) { + if (@available(macOS 12.0, *)) { + NSTimeInterval maxRefreshInterval = [screen maximumRefreshInterval]; + if (maxRefreshInterval < self.refreshInterval) { + self.refreshInterval = maxRefreshInterval; + } + } + } } return self; } @@ -25,7 +36,7 @@ CGEventRef myCGEventCallback(CGEventTapProxy __unused proxy, CGEventType type, C CGEventType resizeModifierUp = kCGEventRightMouseUp; bool handled = NO; - double interval = [ourDelegate refreshInterval]; + double refreshInterval = [ourDelegate refreshInterval]; if (![ourDelegate sessionActive]) { return event; @@ -140,7 +151,7 @@ CGEventRef myCGEventCallback(CGEventTapProxy __unused proxy, CGEventType type, C CFTypeRef _position; // actually applying the change is expensive, so only do it every kMoveFilterInterval seconds - if (CACurrentMediaTime() - [moveResize tracking] > interval) { + if (CACurrentMediaTime() - [moveResize tracking] > refreshInterval) { _position = (CFTypeRef) (AXValueCreate(kAXValueCGPointType, (const void *) &thePoint)); AXUIElementSetAttributeValue(_clickedWindow, (__bridge CFStringRef) NSAccessibilityPositionAttribute, (CFTypeRef *) _position); if (_position != NULL) CFRelease(_position); @@ -238,7 +249,7 @@ CGEventRef myCGEventCallback(CGEventTapProxy __unused proxy, CGEventType type, C [moveResize setWndSize:wndSize]; // actually applying the change is expensive, so only do it every kResizeFilterInterval events - if (CACurrentMediaTime() - [moveResize tracking] > interval) { + if (CACurrentMediaTime() - [moveResize tracking] > refreshInterval) { // only make a call to update the position if we need to if (resizeSection.xResizeDirection == left || resizeSection.yResizeDirection == bottom) { CFTypeRef _position = (CFTypeRef)(AXValueCreate(kAXValueCGPointType, (const void *)&cTopLeft)); @@ -410,34 +421,6 @@ - (void)initMenuItems { if ([flags containsObject:FN_KEY]) { [_fnMenu setState:1]; } - - [self updateRefreshRate]; -} - -- (void)updateRefreshRate { - [[self sixtyHertz] setState:0]; - [[self oneHundredHertz] setState:0]; - [[self oneTwentyHertz] setState:0]; - [[self oneFourtyFourHertz] setState:0]; - - int refreshRate = [preferences getRefreshRate]; - if (refreshRate == 0) { - refreshRate = 60; - [preferences setRefreshRate: 60]; - } - if (refreshRate == 144) { - [[self oneFourtyFourHertz] setState: 1]; - } - if (refreshRate == 120) { - [[self oneTwentyHertz] setState: 1]; - } - if (refreshRate == 100) { - [[self oneHundredHertz] setState: 1]; - } - if (refreshRate == 60) { - [[self sixtyHertz] setState: 1]; - } - } - (IBAction)modifierToggle:(id)sender { @@ -509,13 +492,6 @@ - (IBAction)enableDisabledApp:(id)sender { [self reconstructDisabledAppsSubmenu]; } -- (IBAction)toggleRefreshRate:(id)sender { - NSMenuItem *menu = (NSMenuItem*)sender; - int refreshRate = (int)[menu tag]; - [preferences setRefreshRate:refreshRate]; - [self updateRefreshRate]; -} - - (int)modifierFlags { return keyModifierFlags; } @@ -542,10 +518,6 @@ - (BOOL)resizeOnly { return [preferences resizeOnly]; } -- (double)refreshInterval { - return [preferences refreshInterval]; -} - - (void)setMenusEnabled:(BOOL)enabled { [_altMenu setEnabled:enabled]; [_cmdMenu setEnabled:enabled]; diff --git a/easy-move-resize/EMRPreferences.h b/easy-move-resize/EMRPreferences.h index b526748..f6d01df 100644 --- a/easy-move-resize/EMRPreferences.h +++ b/easy-move-resize/EMRPreferences.h @@ -8,7 +8,6 @@ #ifndef EMRPreferences_h #define EMRPreferences_h -#define REFRESH_RATE @"RefreshRate" #define SHOULD_BRING_WINDOW_TO_FRONT @"BringToFront" #define SHOULD_MIDDLE_CLICK_RESIZE @"MiddleClickResize" #define RESIZE_ONLY @"ResizeOnly" @@ -43,15 +42,6 @@ // returns a dict of disabled apps - (NSDictionary*)getDisabledApps; -// get current refresh rate -- (int)getRefreshRate; - -// set refresh rate -- (void)setRefreshRate:(int)refreshRate; - -// get current refresh rate -- (double)refreshInterval; - // add or remove an app from the disabled apps list - (void)setDisabledForApp:(NSString*)bundleIdentifier withLocalizedName:(NSString*)localizedName disabled:(BOOL)disabled; diff --git a/easy-move-resize/EMRPreferences.m b/easy-move-resize/EMRPreferences.m index d98e537..66a1ff7 100644 --- a/easy-move-resize/EMRPreferences.m +++ b/easy-move-resize/EMRPreferences.m @@ -5,7 +5,6 @@ @implementation EMRPreferences { @private NSUserDefaults *userDefaults; - double refreshInterval; } - (id)init { @@ -100,7 +99,6 @@ - (void)setToDefaults { [userDefaults setBool:NO forKey:SHOULD_MIDDLE_CLICK_RESIZE]; [userDefaults setBool:NO forKey:RESIZE_ONLY]; [userDefaults setObject:[NSDictionary dictionary] forKey:DISABLED_APPS_DEFAULTS_KEY]; - [userDefaults setInteger:60 forKey:REFRESH_RATE]; } - (NSMutableSet*)createSetFromFlagString:(NSString*)modifierFlagString { @@ -166,17 +164,4 @@ - (void)setResizeOnly:(BOOL)resizeOnly { [userDefaults setBool:resizeOnly forKey:RESIZE_ONLY]; } -- (int)getRefreshRate { - return (int)[userDefaults integerForKey:REFRESH_RATE]; -} - -- (void)setRefreshRate:(int)refreshRate { - [userDefaults setInteger:refreshRate forKey:REFRESH_RATE]; - refreshInterval = (1.0 / refreshRate); -} - -- (double)refreshInterval { - return refreshInterval; -} - @end diff --git a/easy-move-resize/en.lproj/MainMenu.xib b/easy-move-resize/en.lproj/MainMenu.xib index 359db01..abb5964 100644 --- a/easy-move-resize/en.lproj/MainMenu.xib +++ b/easy-move-resize/en.lproj/MainMenu.xib @@ -720,31 +720,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - @@ -772,12 +747,8 @@ - - - -