From f48d0022e209e98e47e523e2f410537f8e90adae Mon Sep 17 00:00:00 2001 From: Pieter de Bie Date: Fri, 19 Sep 2008 13:55:33 +0200 Subject: [PATCH] Allow copy and pasting of web source by pressing 'c' --- PBCommitList.m | 2 +- PBWebGitController.m | 8 ++++++++ html/keyboardNavigation.js | 2 ++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/PBCommitList.m b/PBCommitList.m index 67d446d..a7f03e2 100644 --- a/PBCommitList.m +++ b/PBCommitList.m @@ -22,7 +22,7 @@ else [webView scrollPageDown: self]; } - else if ([character rangeOfCharacterFromSet:[NSCharacterSet characterSetWithCharactersInString:@"jkv"]].location == 0) + else if ([character rangeOfCharacterFromSet:[NSCharacterSet characterSetWithCharactersInString:@"jkcv"]].location == 0) [webController sendKey: character]; else [super keyDown: event]; diff --git a/PBWebGitController.m b/PBWebGitController.m index 245c9af..2516ef2 100644 --- a/PBWebGitController.m +++ b/PBWebGitController.m @@ -73,6 +73,14 @@ [script callWebScriptMethod:@"handleKeyFromCocoa" withArguments: [NSArray arrayWithObject:key]]; } +- (void) copySource +{ + NSString *source = [[[[view mainFrame] DOMDocument] documentElement] outerHTML]; + NSPasteboard *a =[NSPasteboard generalPasteboard]; + [a declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:self]; + [a setString:source forType: NSStringPboardType]; +} + + (BOOL)isSelectorExcludedFromWebScript:(SEL)aSelector { return NO; diff --git a/html/keyboardNavigation.js b/html/keyboardNavigation.js index 671be3d..7ed1f44 100644 --- a/html/keyboardNavigation.js +++ b/html/keyboardNavigation.js @@ -24,6 +24,8 @@ var handleKeyFromCocoa = function(key) { changeHunk(false); else if (key == 'v') showDiffs(); + else if (key == 'c') + Controller.copySource(); } var changeHunk = function(next) {