diff --git a/src/MacVim/Actions.plist b/src/MacVim/Actions.plist
index 6e8d8a3320..74334236c6 100644
--- a/src/MacVim/Actions.plist
+++ b/src/MacVim/Actions.plist
@@ -6,6 +6,8 @@
arrangeInFront:
+ fileOpen:
+
fontSizeDown:
fontSizeUp:
diff --git a/src/MacVim/MMAppController.h b/src/MacVim/MMAppController.h
index a9fbe44511..1ed3822116 100644
--- a/src/MacVim/MMAppController.h
+++ b/src/MacVim/MMAppController.h
@@ -26,6 +26,7 @@
- (void)removeVimController:(id)controller;
- (void)windowControllerWillOpen:(MMWindowController *)windowController;
- (IBAction)newWindow:(id)sender;
+- (IBAction)fileOpen:(id)sender;
- (IBAction)selectNextWindow:(id)sender;
- (IBAction)selectPreviousWindow:(id)sender;
- (IBAction)fontSizeUp:(id)sender;
diff --git a/src/MacVim/MMAppController.m b/src/MacVim/MMAppController.m
index 6f60debb3a..c52228e2bc 100644
--- a/src/MacVim/MMAppController.m
+++ b/src/MacVim/MMAppController.m
@@ -429,6 +429,16 @@ typedef struct
[self launchVimProcessWithArguments:nil];
}
+- (IBAction)fileOpen:(id)sender
+{
+ NSOpenPanel *panel = [NSOpenPanel openPanel];
+ [panel setAllowsMultipleSelection:YES];
+
+ int result = [panel runModalForTypes:nil];
+ if (NSOKButton == result)
+ [self application:NSApp openFiles:[panel filenames]];
+}
+
- (IBAction)selectNextWindow:(id)sender
{
unsigned i, count = [vimControllers count];
diff --git a/src/MacVim/gvimrc b/src/MacVim/gvimrc
index 61f0e67160..dcbe5db984 100644
--- a/src/MacVim/gvimrc
+++ b/src/MacVim/gvimrc
@@ -36,6 +36,7 @@ endif
" File menu
aunmenu File.New
+aunmenu File.Open\.\.\.
aunmenu File.Close
aunmenu File.-SEP4-
aunmenu File.Exit
@@ -43,6 +44,7 @@ aunmenu File.Save-Exit
an 10.290 File.New\ Window :maca newWindow:
an 10.295 File.New\ Tab :tabnew
+an 10.310 File.&Open\.\.\. :maca fileOpen:
an 10.328 File.-SEP0-
an 10.330 File.Close\ Window:qa :confirm qa
an 10.331 File.Close:q :confirm q