diff --git a/cocoa/BrowserView.m b/cocoa/BrowserView.m index 241add229..5676086e6 100644 --- a/cocoa/BrowserView.m +++ b/cocoa/BrowserView.m @@ -274,7 +274,11 @@ static browser_mouse_state cocoa_mouse_flags_for_event( NSEvent *evt ) - (void) keyDown: (NSEvent *)theEvent; { - [self interpretKeyEvents: [NSArray arrayWithObject: theEvent]]; + if (!historyVisible) { + [self interpretKeyEvents: [NSArray arrayWithObject: theEvent]]; + } else { + [history keyDown: theEvent]; + } } - (void) insertText: (id)string; diff --git a/cocoa/LocalHistoryController.h b/cocoa/LocalHistoryController.h index 14a9abcdb..8b8018c88 100644 --- a/cocoa/LocalHistoryController.h +++ b/cocoa/LocalHistoryController.h @@ -35,4 +35,6 @@ - (void) detach; - (void) redraw; +- (void) keyDown: (NSEvent *)theEvent; + @end diff --git a/cocoa/LocalHistoryController.m b/cocoa/LocalHistoryController.m index 322e44d55..b3992b614 100644 --- a/cocoa/LocalHistoryController.m +++ b/cocoa/LocalHistoryController.m @@ -18,6 +18,7 @@ #import "cocoa/LocalHistoryController.h" +#import "cocoa/BrowserView.h" #import "cocoa/HistoryView.h" #import "cocoa/ArrowWindow.h" @@ -101,4 +102,18 @@ [history setNeedsDisplay: YES]; } +- (void) keyDown: (NSEvent *)theEvent; +{ + unichar key = [[theEvent characters] characterAtIndex: 0]; + switch (key) { + case 27: + [browser setHistoryVisible: NO]; + break; + + default: + NSBeep(); + break; + }; +} + @end