aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2016-11-18 23:14:04 -0500
committerTeddy Wing2016-11-18 23:14:04 -0500
commit4a5d68ef73f44536feb38bb5033fe190b9b7a813 (patch)
treeec65131f22347a0ed723c30ac5d3093b9ada7d23
parent678f8ca1a961eb9125aa82b7d2277fda4db7f146 (diff)
downloadLow-Battery-Yup-4a5d68ef73f44536feb38bb5033fe190b9b7a813.tar.bz2
AppDelegate: Only allocate one `Mouse` instance in app lifecycle
Don't keep allocating and releasing `Mouse` objects when the hotkey is pressed. Instead, allocate a single instance to use for the entire run time of the application.
-rw-r--r--Low Battery Yup d/AppDelegate.h5
-rw-r--r--Low Battery Yup d/AppDelegate.m12
2 files changed, 10 insertions, 7 deletions
diff --git a/Low Battery Yup d/AppDelegate.h b/Low Battery Yup d/AppDelegate.h
index 10f6e4b..700c26b 100644
--- a/Low Battery Yup d/AppDelegate.h
+++ b/Low Battery Yup d/AppDelegate.h
@@ -7,8 +7,11 @@
//
#import <Cocoa/Cocoa.h>
+#import "Mouse.h"
-@interface AppDelegate : NSObject <NSApplicationDelegate>
+@interface AppDelegate : NSObject <NSApplicationDelegate> {
+ Mouse *_mouse;
+}
- (void)dismissLowBatteryWarning:(NSEvent *)hotKeyEvent;
diff --git a/Low Battery Yup d/AppDelegate.m b/Low Battery Yup d/AppDelegate.m
index 51c1626..7aa29fe 100644
--- a/Low Battery Yup d/AppDelegate.m
+++ b/Low Battery Yup d/AppDelegate.m
@@ -8,18 +8,20 @@
#import "AppDelegate.h"
#import "DDHotKeyCenter.h"
-#import "Mouse.h"
#import <Carbon/Carbon.h>
@implementation AppDelegate
- (void)dealloc
{
- [super dealloc];
+ [_mouse release];
+ [super dealloc];
}
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
+ _mouse = [[Mouse alloc] init];
+
DDHotKeyCenter *hotkey_center = [DDHotKeyCenter sharedHotKeyCenter];
[hotkey_center registerHotKeyWithKeyCode:kVK_ANSI_0
modifierFlags:(NSCommandKeyMask | NSAlternateKeyMask | NSShiftKeyMask | NSControlKeyMask)
@@ -30,10 +32,8 @@
- (void)dismissLowBatteryWarning:(NSEvent *)hotKeyEvent
{
- Mouse *m = [[Mouse alloc] init];
- [m moveToLowBatteryOK];
- [m click];
- [m release];
+ [_mouse moveToLowBatteryOK];
+ [_mouse click];
}
@end