From b92456f29d76c335dce7c49937f3e003502abe25 Mon Sep 17 00:00:00 2001 From: Chris Ayoub Date: Mon, 1 Jun 2015 21:17:44 -0700 Subject: [PATCH 1/4] fix menu items not being enabled after alert is presented --- Vagrant Manager/NativeMenu.m | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Vagrant Manager/NativeMenu.m b/Vagrant Manager/NativeMenu.m index 5b94b6a..a6a3b44 100644 --- a/Vagrant Manager/NativeMenu.m +++ b/Vagrant Manager/NativeMenu.m @@ -24,10 +24,6 @@ @implementation NativeMenu { NSMenuItem *_checkForVagrantUpdatesMenuItem; } -- (BOOL)validateMenuItem:(NSMenuItem *)menuItem { - return [menuItem isEnabled]; -} - - (id)init { self = [super init]; @@ -44,6 +40,7 @@ - (id)init { _statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength]; _menu = [[NSMenu alloc] init]; + [_menu setAutoenablesItems:NO]; _menuItems = [[NSMutableArray alloc] init]; From 38c4590844fb8c1af4d01d113bc15254f3dff0af Mon Sep 17 00:00:00 2001 From: Chris Ayoub Date: Mon, 1 Jun 2015 21:40:42 -0700 Subject: [PATCH 2/4] add different status icons for bookmarks --- Vagrant Manager.xcodeproj/project.pbxproj | 24 +++++++++++ Vagrant Manager/NativeMenuItem.m | 39 ++++++++---------- Vagrant Manager/bm_status_icon_off.png | Bin 0 -> 1023 bytes Vagrant Manager/bm_status_icon_off@2x.png | Bin 0 -> 1013 bytes Vagrant Manager/bm_status_icon_on.png | Bin 0 -> 1026 bytes Vagrant Manager/bm_status_icon_on@2x.png | Bin 0 -> 1010 bytes Vagrant Manager/bm_status_icon_suspended.png | Bin 0 -> 1023 bytes .../bm_status_icon_suspended@2x.png | Bin 0 -> 1007 bytes 8 files changed, 42 insertions(+), 21 deletions(-) create mode 100644 Vagrant Manager/bm_status_icon_off.png create mode 100644 Vagrant Manager/bm_status_icon_off@2x.png create mode 100644 Vagrant Manager/bm_status_icon_on.png create mode 100644 Vagrant Manager/bm_status_icon_on@2x.png create mode 100644 Vagrant Manager/bm_status_icon_suspended.png create mode 100644 Vagrant Manager/bm_status_icon_suspended@2x.png diff --git a/Vagrant Manager.xcodeproj/project.pbxproj b/Vagrant Manager.xcodeproj/project.pbxproj index 70c3929..682d63d 100644 --- a/Vagrant Manager.xcodeproj/project.pbxproj +++ b/Vagrant Manager.xcodeproj/project.pbxproj @@ -7,6 +7,12 @@ objects = { /* Begin PBXBuildFile section */ + 26130E9A1B1D565200872C4F /* bm_status_icon_off.png in Resources */ = {isa = PBXBuildFile; fileRef = 26130E981B1D565200872C4F /* bm_status_icon_off.png */; }; + 26130E9B1B1D565200872C4F /* bm_status_icon_off@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 26130E991B1D565200872C4F /* bm_status_icon_off@2x.png */; }; + 26130E9E1B1D596400872C4F /* bm_status_icon_suspended@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 26130E9C1B1D596400872C4F /* bm_status_icon_suspended@2x.png */; }; + 26130E9F1B1D596400872C4F /* bm_status_icon_on@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 26130E9D1B1D596400872C4F /* bm_status_icon_on@2x.png */; }; + 26130EA51B1D68CA00872C4F /* bm_status_icon_on.png in Resources */ = {isa = PBXBuildFile; fileRef = 26130EA31B1D68CA00872C4F /* bm_status_icon_on.png */; }; + 26130EA61B1D68CA00872C4F /* bm_status_icon_suspended.png in Resources */ = {isa = PBXBuildFile; fileRef = 26130EA41B1D68CA00872C4F /* bm_status_icon_suspended.png */; }; 8308E132188662BD001E0B45 /* AboutWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 8308E130188662BD001E0B45 /* AboutWindow.m */; }; 8308E133188662BD001E0B45 /* AboutWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8308E131188662BD001E0B45 /* AboutWindow.xib */; }; 8308E135188668A1001E0B45 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8308E134188668A1001E0B45 /* WebKit.framework */; }; @@ -142,6 +148,12 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 26130E981B1D565200872C4F /* bm_status_icon_off.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bm_status_icon_off.png; sourceTree = ""; }; + 26130E991B1D565200872C4F /* bm_status_icon_off@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "bm_status_icon_off@2x.png"; sourceTree = ""; }; + 26130E9C1B1D596400872C4F /* bm_status_icon_suspended@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "bm_status_icon_suspended@2x.png"; sourceTree = ""; }; + 26130E9D1B1D596400872C4F /* bm_status_icon_on@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "bm_status_icon_on@2x.png"; sourceTree = ""; }; + 26130EA31B1D68CA00872C4F /* bm_status_icon_on.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bm_status_icon_on.png; sourceTree = ""; }; + 26130EA41B1D68CA00872C4F /* bm_status_icon_suspended.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bm_status_icon_suspended.png; sourceTree = ""; }; 8308E12F188662BD001E0B45 /* AboutWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AboutWindow.h; sourceTree = ""; }; 8308E130188662BD001E0B45 /* AboutWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AboutWindow.m; sourceTree = ""; }; 8308E131188662BD001E0B45 /* AboutWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AboutWindow.xib; sourceTree = ""; }; @@ -494,6 +506,12 @@ 83F5BBB71983B99600ACE853 /* Status Icons */ = { isa = PBXGroup; children = ( + 26130EA31B1D68CA00872C4F /* bm_status_icon_on.png */, + 26130EA41B1D68CA00872C4F /* bm_status_icon_suspended.png */, + 26130E9C1B1D596400872C4F /* bm_status_icon_suspended@2x.png */, + 26130E9D1B1D596400872C4F /* bm_status_icon_on@2x.png */, + 26130E981B1D565200872C4F /* bm_status_icon_off.png */, + 26130E991B1D565200872C4F /* bm_status_icon_off@2x.png */, B150013119249FFD000A76E7 /* status_icon_off@2x.png */, B17AA1971887DB8C00B4C274 /* status_icon_off.png */, B15001351924A02C000A76E7 /* status_icon_suspended@2x.png */, @@ -690,6 +708,7 @@ 83C4CDE01A060B3600611DCC /* suspend.png in Resources */, 83C4CDFB1A06259A00611DCC /* vagrant_logo_refresh_2-flat@2x.png in Resources */, B17AA19A1887DB8C00B4C274 /* status_icon_on.png in Resources */, + 26130EA51B1D68CA00872C4F /* bm_status_icon_on.png in Resources */, 83C4CDDD1A060B3600611DCC /* up@2x.png in Resources */, B150013419249FFD000A76E7 /* status_icon_on@2x.png in Resources */, 8339DCA2187E756B0036E162 /* TaskOutputWindow.xib in Resources */, @@ -697,17 +716,22 @@ B17AA1901887CA4600B4C274 /* PreferencesWindow.xib in Resources */, B150012E19249CA2000A76E7 /* vagrant_logo_on-flat@2x.png in Resources */, 83C4CDDE1A060B3600611DCC /* up.png in Resources */, + 26130E9E1B1D596400872C4F /* bm_status_icon_suspended@2x.png in Resources */, 83F5BBC01983D85C00ACE853 /* MainMenu.xib in Resources */, 83C4CE0A1A0628AC00611DCC /* vagrant_logo_refresh_5-clean@2x.png in Resources */, 83C4CDA61A05FA0400611DCC /* vagrant_logo_off-clean.png in Resources */, + 26130E9B1B1D565200872C4F /* bm_status_icon_off@2x.png in Resources */, 83C4CE1E1A062BCF00611DCC /* vagrant_logo_refresh_5-flat.png in Resources */, B1357A89187CEB3B00811CBC /* Images.xcassets in Resources */, 83C4CDA91A05FA0400611DCC /* vagrant_logo_off-flat@2x.png in Resources */, 83C4CE1D1A062BCF00611DCC /* vagrant_logo_refresh_4-flat.png in Resources */, 83C4CDDF1A060B3600611DCC /* suspend@2x.png in Resources */, 83C4CE191A062BCF00611DCC /* vagrant_logo_refresh_2-flat.png in Resources */, + 26130EA61B1D68CA00872C4F /* bm_status_icon_suspended.png in Resources */, B15001361924A02C000A76E7 /* status_icon_suspended@2x.png in Resources */, 83C4CDFC1A06259A00611DCC /* vagrant_logo_refresh_3-flat@2x.png in Resources */, + 26130E9A1B1D565200872C4F /* bm_status_icon_off.png in Resources */, + 26130E9F1B1D596400872C4F /* bm_status_icon_on@2x.png in Resources */, 83C4CE1C1A062BCF00611DCC /* vagrant_logo_refresh_3-flat.png in Resources */, 83BCB0491921B6BF00206967 /* dsa_pub.pem in Resources */, B150012A19249B19000A76E7 /* status_icon_problem@2x.png in Resources */, diff --git a/Vagrant Manager/NativeMenuItem.m b/Vagrant Manager/NativeMenuItem.m index 87fc3dd..4266847 100644 --- a/Vagrant Manager/NativeMenuItem.m +++ b/Vagrant Manager/NativeMenuItem.m @@ -180,15 +180,17 @@ - (void)refresh { [self.menuItem.submenu addItem:_addBookmarkMenuItem]; } + Bookmark *bookmark = [[BookmarkManager sharedManager] getBookmarkWithPath:self.instance.path]; + if([self.instance hasVagrantfile]) { int runningCount = [self.instance getRunningMachineCount]; int suspendedCount = [self.instance getMachineCountWithState:SavedState]; if(runningCount == 0 && suspendedCount == 0) { - self.menuItem.image = [NSImage imageNamed:@"status_icon_off"]; + self.menuItem.image = [NSImage imageNamed:bookmark ? @"bm_status_icon_off" : @"status_icon_off"]; } else if(runningCount == self.instance.machines.count) { - self.menuItem.image = [NSImage imageNamed:@"status_icon_on"]; + self.menuItem.image = [NSImage imageNamed:bookmark ? @"bm_status_icon_on" : @"status_icon_on"]; } else { - self.menuItem.image = [NSImage imageNamed:@"status_icon_suspended"]; + self.menuItem.image = [NSImage imageNamed:bookmark ? @"bm_status_icon_suspended" : @"status_icon_suspended"]; } if([self.instance getRunningMachineCount] < self.instance.machines.count) { @@ -233,28 +235,23 @@ - (void)refresh { self.menuItem.submenu = nil; } - Bookmark *bookmark = [[BookmarkManager sharedManager] getBookmarkWithPath:self.instance.path]; - if(bookmark) { - self.menuItem.title = [NSString stringWithFormat:@"[B] %@", bookmark.displayName]; + NSString *title; + if([[NSUserDefaults standardUserDefaults] boolForKey:@"usePathAsInstanceDisplayName"]) { + title = self.instance.path; } else { - NSString *title; - if([[NSUserDefaults standardUserDefaults] boolForKey:@"usePathAsInstanceDisplayName"]) { - title = self.instance.path; - } else { - title = self.instance.displayName; - } - - if(self.instance.machines.count > 0 && [[NSUserDefaults standardUserDefaults] boolForKey:@"includeMachineNamesInMenu"]) { - NSMutableArray *machineNames = [[NSMutableArray alloc] init]; - for(VagrantMachine *machine in self.instance.machines) { - [machineNames addObject:machine.name]; - } - title = [title stringByAppendingString:[NSString stringWithFormat:@" (%@)", [machineNames componentsJoinedByString:@", "]]]; + title = self.instance.displayName; + } + + if(self.instance.machines.count > 0 && [[NSUserDefaults standardUserDefaults] boolForKey:@"includeMachineNamesInMenu"]) { + NSMutableArray *machineNames = [[NSMutableArray alloc] init]; + for(VagrantMachine *machine in self.instance.machines) { + [machineNames addObject:machine.name]; } - - self.menuItem.title = title; + title = [title stringByAppendingString:[NSString stringWithFormat:@" (%@)", [machineNames componentsJoinedByString:@", "]]]; } + self.menuItem.title = title; + if(!_machineSeparator) { _machineSeparator = [NSMenuItem separatorItem]; [self.menuItem.submenu addItem:_machineSeparator]; diff --git a/Vagrant Manager/bm_status_icon_off.png b/Vagrant Manager/bm_status_icon_off.png new file mode 100644 index 0000000000000000000000000000000000000000..b7215b53b0ec1674e6adb86316f2539df4c32f60 GIT binary patch literal 1023 zcmaJ=O=#0l9FI;!2BSM8^`c9Y*Dh?y%aT`{?zFkf zb`ej0og9eX1jUPpC@6};5D`6i@-WX{cNol(j+c1O2D_ z34$0XOl3=W58*X*;yC`7KGsj-Z4~7yXa?3$Q*!~4GGG;u1xu@g63~p+;wO+Kh`#e? zxq>R{Wm$(7tpym`w;aqSh~$LtX!<-rWEIp+TcQ5EdP9+>p-@)@l~tV#m@}uATrjg# zEbB}2x@1rj7s;eAV+R&M8tGdLwkP`v)%Gjnb6{pDvJFA=3biMyqE3?;=mJup;}MFeTu@hO6U#)W*7GT)V>q1wgDu&O*Im0UH&v z3WY7SVHz^e#l<)$CRmP*aa>N2qP&=4Q@KaNTvTA$ ze5$wlJ+9Fs^A0!uUoL~iFhOhoX?53x=O;Ms4=%p!k3O*Ryt{a?f0(yc@S|8PWK(7T zXLV`R!9-^+l}~etmAOwGn%sxVD*|+!oeZ YeS{Jp{4)6X?dRZ07IMYx)Aa1kzt0y%^Z)<= literal 0 HcmV?d00001 diff --git a/Vagrant Manager/bm_status_icon_off@2x.png b/Vagrant Manager/bm_status_icon_off@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9b617e482bb76c0d87d4fda26daab8fe01aa9c06 GIT binary patch literal 1013 zcmaJ=O=}ZD7~UcjsrI4=(Sr=zQYx7J%qF{Q){$4-c7^0Io|bX%ciHXh9)&L{;)dkaj!>1S%HM z88!;y62%I!xD-DPIDDrWk>;2PBgq0UGaTqG5=Zlls$5dDy;%6BkadJynWme~Ce`FA z$E(q-BuO;G(Hs}Sh=|{^krqU3f2{98g}&~YE;1b(gdVkdr-2j_E8R)Ka`X9tW83c) z3YUxyG?!*6hPJFQuP)k0CAceNPqbfdxsWbF-)VR{?nia3PsX*|KTrt7YGl>X8y2)t zPE|;3p$yZI1tBhS89v4^*(A$m1c~S3X(pLTrc+rl6&3s3ob4mc)?uG(?sA2FxpLZr z8gjg{<1F^OSFAh8@#~HY(laqInb&mF4h^Tm;`X#c&%6PRtmjyuTOHZlLqUq?IUy@V z)hHLm>Ul9LGU>P|2m&i{qL3wfTw{;SdtBkaTpEj^!`A-O>b?ojPk0;*F1`##AKG}{ zJv`Ve#G3|w6t$e1EC(B3-?Aewz~S2;6PvT`Kc9X^%}(dRt* zW`>4`3$K1$Q`TaasAG?Y2kSTgj{deW`lU5{_t!*aWvyK4JiGX0`ThMf>kqe9uiqRZ Xp1wYGY3?dD5kACRrl3Af%`N{0g78B% literal 0 HcmV?d00001 diff --git a/Vagrant Manager/bm_status_icon_on.png b/Vagrant Manager/bm_status_icon_on.png new file mode 100644 index 0000000000000000000000000000000000000000..4285df73a975563e4012eecf40d5b29f46dfb9a2 GIT binary patch literal 1026 zcmaJ=OH9;27%oBx0SO5)CK5G6@gULdW1qC4V)s$mgp$p&#yu(Bc6PTe?UZ(K3l}z? zATb_{L8BKgoJ_bA4_-)!Mi0g)iF)+lLBrJp2~L+?@PIU#&di_h`~UBM%xZ4>R)6nM zFGW%P*~xUC>;q(->**%{{7z+%Y!`5*h-Xk4*EJVXvVlqvWG$@%^H4Ju=ikC{it4;# z7K*s2PKi3Q7%jjszU2@$MU7ARj;7Zj1|?WAZHeA{{e}jnA<=hYDyKRrST!e?TsX5d zUC@_mx?s=~H^8_r5(gH<8t|<-+Y^0>Zu%9;IWV&{XhLvJq7OwC)f`A67lIfQ59u5q z1qp%SWATKLxDLYP&T?aHmkHp7_>f`M01U@m`^LMSmY+rRg4{xW$X1iQ;#sn zt+2cx2rL(7!{HD?guF!?YktV~M%o_I(9>Ph!6vdn;881~1uW4->0t_%qpC-aZLd`* zQZm-p9F}J|*0O@UnrIK_;jxSp(OzNEfovXnXu;JWJnE3Y4VGDZC%n{4bX!V%VUy|FpVoBJ&d*j|P`qjz%BaWZqpe*p=VI%j8jzddmg> zYia-BV4`!YF~3qc4hN#Ad6*&FVT#RHn>Go{Mw>LQV#aJcR`Ield27R#yqLVLS-ot6 zq9?_p2zu4SP!JIuxT{x1P;vNiQ2YQd9=ynW>Dtc2+=Jx3_viQf|9}6FcWq+)RBzAG z9)cix3u9Ul@BR22+P@F~zaBY#7;k+jUqK}}gBoT4h^!5(fGoIX4HSWCFJ5>Kh6!T# zpi{1(ig8A^pi7%EhK^hxvk78&H1bVr79g?;YL2H+Kc7CMNXJ&FDZyY3Uj=n%tQmk( zbG&RdXD!L5Mn}luNX8CafJ`!S=e$sk6sqM{#^>0~P-F{&W)*5vRK=JeRTuzLpwkJ9 z4;O^<0+KIX%a+dY0qzf|TSlDx1w`)toNoQeuZ&@IqvI7U*!DEpB#4uB-;Y zL@+2rIM?akL>(d+)}c?Tr8GHYn3m(khU0N@+gd^3EC5>%pi8!@BRktD$R(4!pbIH2 z#iy|Pq?i&}H6sdwz)8F)=v13)Z4B0fIkzD2)}?HTMFx%%PmyY&-6 z^EQ48~9fPDKrwLPguWBu(>&)~#(CSFvMs1?y!lO&VXCNXgux8pR>eq``6loeM>M~yd1vd-p=GcM< zCl|&``ofGZ8Pv#mG8xF&fd!F92G*?Y%R!22`<3xIG}9E>hM<`gwJoY#m>{!`2T4Ab zi0XielY$gu_=F${=SUXcX&}-phyqFGIT^5I=c8~m~pMeW4Gw-i-J$dzfj(P+dP zT+H!mG$Tn84Op6GqZkqOn>NydsO=ATJt)xEJ<~;|W0Rprt>Vn16or*;r(n5-!j5Cx z?-UA`j1DxHW@3Q0tT3-O+DAqBSH`YrztnUgU4*_f@9DT7)!{A~*Y5v;LLgQnD~>*I zK^x_j6ooA@!!%@;NeBr>0Du8;hRN{~#|l}H&ZV;%Rm{Z2E;n!cNV9d=<(inQX3{`q z0Skbd-jge5J*XkaD>=?=w|f(H2RVM-amnmtf{YY2-Lyl)nXtGWtCK|}Q%i)>d% zHg{2w;W(C8`M45iL-m{(7eQ7Kd7ft^R^(Nx!!>rvyu;=9cN+F{3zz~O1cz$u54~?jr2TUT)D9yxOcC7eSG@Xy-~Keb&`C0 zmiR3%uWtR=;5jg~Z@q7jyT3BD7VP!iVo47t6=*R2PXJ;^Mc1@AJz)uZK@EpBq=6WTtQa0kE7#82|tP literal 0 HcmV?d00001 diff --git a/Vagrant Manager/bm_status_icon_suspended@2x.png b/Vagrant Manager/bm_status_icon_suspended@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f736a0d0c0a8e88fe1d146200281c05d4f334a1d GIT binary patch literal 1007 zcmaJ=O=#3W6b^`5i&a!mDy0l*!3u8vHrd^Tjb%64*cDUCcBOmMY%=YJHkp`A-L$=k zqM!#)f(Ty4lhunCi@2pHJqn5~c$TWzt2do&cUup&1If&LeBXQDy!Yn*#Q3GY-m|?F zMfH`(^a|Mr$v4t-i2OHCT|P;+eq5^INi>a{RtTwrgX$2JJ!=M5pye#wcn|Xwbzs=7 z)^N?dqS(k|tOUcvUO?Csl^=}*%btZ8)ZvWltMt~&I~ur-N>529X9gNpQ} zR%Uo9la;d%ON^b-hd!D2kPP;j zp}`D!6joU;RO5}GU-;e@IC|H*w#hH$xB4GHJpED39Q$+U*6`Zl69bQ)ynZn7Vx-k- zx$^U`%gvV`VEq%ZI%{d|&5x&wOKxBmj$mqrT! literal 0 HcmV?d00001 From 109111a820e76d47c3abbaa0c2f7fe7764fc13b8 Mon Sep 17 00:00:00 2001 From: Amitai Lanciano Date: Fri, 5 Jun 2015 21:50:11 -0700 Subject: [PATCH 3/4] disable autoenable items on all NSMenus --- Vagrant Manager/NativeMenu.m | 1 + Vagrant Manager/NativeMenuItem.m | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/Vagrant Manager/NativeMenu.m b/Vagrant Manager/NativeMenu.m index a6a3b44..524fb26 100644 --- a/Vagrant Manager/NativeMenu.m +++ b/Vagrant Manager/NativeMenu.m @@ -60,6 +60,7 @@ - (id)init { [_menu addItem:_bottomMachineSeparator]; NSMenu *allMachinesMenu = [[NSMenu alloc] init]; + [allMachinesMenu setAutoenablesItems:NO]; NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle:@"Up" action:@selector(allUpMenuItemClicked:) keyEquivalent:@""]; menuItem.target = self; diff --git a/Vagrant Manager/NativeMenuItem.m b/Vagrant Manager/NativeMenuItem.m index 4266847..618b759 100644 --- a/Vagrant Manager/NativeMenuItem.m +++ b/Vagrant Manager/NativeMenuItem.m @@ -52,6 +52,7 @@ - (void)refresh { if(!self.menuItem.hasSubmenu) { [self.menuItem setSubmenu:[[NSMenu alloc] init]]; + [self.menuItem.submenu setAutoenablesItems:NO]; self.menuItem.submenu.delegate = self; } @@ -117,6 +118,7 @@ - (void)refresh { [self.menuItem.submenu addItem:_instanceCustomCommandMenuItem]; _instanceCustomCommandMenuItem.submenu = [[NSMenu alloc] init]; + [_instanceCustomCommandMenuItem.submenu setAutoenablesItems:NO]; } [_instanceCustomCommandMenuItem.submenu removeAllItems]; @@ -155,6 +157,7 @@ - (void)refresh { if (!_chooseProviderMenuItem) { _chooseProviderMenuItem = [[NSMenuItem alloc] initWithTitle:[NSString stringWithFormat:@"Provider: %@", self.instance.providerIdentifier ?: @"Unknown"] action:nil keyEquivalent:@""]; NSMenu *submenu = [[NSMenu alloc] init]; + [submenu setAutoenablesItems:NO]; NSArray *providerIdentifiers = [[VagrantManager sharedManager] getProviderIdentifiers]; for(NSString *providerIdentifier in providerIdentifiers) { NSMenuItem *submenuItem = [[NSMenuItem alloc] initWithTitle:providerIdentifier action:@selector(updateProviderIdentifier:) keyEquivalent:@""]; @@ -271,6 +274,7 @@ - (void)refresh { for(VagrantMachine *machine in self.instance.machines) { NSMenuItem *machineItem = [[NSMenuItem alloc] initWithTitle:machine.name action:nil keyEquivalent:@""]; NSMenu *machineSubmenu = [[NSMenu alloc] init]; + [machineSubmenu setAutoenablesItems:NO]; machineSubmenu.delegate = self; NSMenuItem *machineUpMenuItem = [[NSMenuItem alloc] initWithTitle:@"Up" action:@selector(upMachine:) keyEquivalent:@""]; @@ -327,6 +331,7 @@ - (void)refresh { [machineCustomCommandMenuItem.image setTemplate:YES]; [machineSubmenu addItem:machineCustomCommandMenuItem]; machineCustomCommandMenuItem.submenu = [[NSMenu alloc] init]; + [machineCustomCommandMenuItem.submenu setAutoenablesItems:NO]; [machineCustomCommandMenuItem.submenu removeAllItems]; if(customCommands.count > 0) { From 9017a1db1aa442909289b2ead23004b917c01ba0 Mon Sep 17 00:00:00 2001 From: Amitai Lanciano Date: Fri, 5 Jun 2015 21:50:48 -0700 Subject: [PATCH 4/4] bump to version 2.4.1 --- Vagrant Manager/Vagrant Manager-Info.plist | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Vagrant Manager/Vagrant Manager-Info.plist b/Vagrant Manager/Vagrant Manager-Info.plist index 18af58e..97091c7 100644 --- a/Vagrant Manager/Vagrant Manager-Info.plist +++ b/Vagrant Manager/Vagrant Manager-Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.4.0 + 2.4.1 CFBundleSignature ???? CFBundleVersion - 2.4.0 + 2.4.1 Configuration ${CONFIGURATION} LSApplicationCategoryType