Mercurial > dwindows
changeset 1235:9327f684c9b8
Attempt at fixing Copy, Cut, Paste, Select All Mac key combos...
when there is no Edit menu present.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Mon, 17 Oct 2011 16:15:13 +0000 |
parents | bee6fc8119ec |
children | 46de4dbe710d |
files | mac/dw.m |
diffstat | 1 files changed, 32 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mac/dw.m Mon Oct 17 07:41:14 2011 +0000 +++ b/mac/dw.m Mon Oct 17 16:15:13 2011 +0000 @@ -1042,6 +1042,21 @@ [super keyUp:theEvent]; } } +-(BOOL)performKeyEquivalent:(NSEvent *)theEvent +{ + if(([theEvent modifierFlags] & NSDeviceIndependentModifierFlagsMask) == NSCommandKeyMask) + { + if ([[theEvent charactersIgnoringModifiers] isEqualToString:@"x"]) + return [NSApp sendAction:@selector(cut:) to:[[self window] firstResponder] from:self]; + else if ([[theEvent charactersIgnoringModifiers] isEqualToString:@"c"]) + return [NSApp sendAction:@selector(copy:) to:[[self window] firstResponder] from:self]; + else if ([[theEvent charactersIgnoringModifiers] isEqualToString:@"v"]) + return [NSApp sendAction:@selector(paste:) to:[[self window] firstResponder] from:self]; + else if ([[theEvent charactersIgnoringModifiers] isEqualToString:@"a"]) + return [NSApp sendAction:@selector(selectAll:) to:[[self window] firstResponder] from:self]; + } + return [super performKeyEquivalent:theEvent]; +} -(void)dealloc { UserData *root = userdata; _remove_userdata(&root, NULL, TRUE); [super dealloc]; } @end @@ -1065,11 +1080,27 @@ if(clickDefault && [[theEvent charactersIgnoringModifiers] characterAtIndex:0] == VK_RETURN) { [[self window] makeFirstResponder:clickDefault]; - } else + } + else { [super keyUp:theEvent]; } } +-(BOOL)performKeyEquivalent:(NSEvent *)theEvent +{ + if(([theEvent modifierFlags] & NSDeviceIndependentModifierFlagsMask) == NSCommandKeyMask) + { + if ([[theEvent charactersIgnoringModifiers] isEqualToString:@"x"]) + return [NSApp sendAction:@selector(cut:) to:[[self window] firstResponder] from:self]; + else if ([[theEvent charactersIgnoringModifiers] isEqualToString:@"c"]) + return [NSApp sendAction:@selector(copy:) to:[[self window] firstResponder] from:self]; + else if ([[theEvent charactersIgnoringModifiers] isEqualToString:@"v"]) + return [NSApp sendAction:@selector(paste:) to:[[self window] firstResponder] from:self]; + else if ([[theEvent charactersIgnoringModifiers] isEqualToString:@"a"]) + return [NSApp sendAction:@selector(selectAll:) to:[[self window] firstResponder] from:self]; + } + return [super performKeyEquivalent:theEvent]; +} -(void)dealloc { UserData *root = userdata; _remove_userdata(&root, NULL, TRUE); [super dealloc]; } @end