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