[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677
darin
darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 08:41:18 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit bf252036da75a91443b541ec08650d5b1cae0fcb
Author: darin <darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Sun May 23 22:34:48 2004 +0000
Reviewed by Ken.
- implemented some of the trivial WebView editing operations; some had bug reports, to wit:
- fixed <rdar://problem/3655342>: (Editing: -centerSelectionInVisibleArea: method unimplemented (WebKit editing API))
- fixed <rdar://problem/3655398>: (Editing: -deleteWordBackward: method unimplemented (WebKit editing API))
- fixed <rdar://problem/3655397>: (Editing: -deleteWordForward: method unimplemented (WebKit editing API))
- fixed <rdar://problem/3655387>: (Editing: -insertBacktab: method unimplemented (WebKit editing API))
- fixed <rdar://problem/3655386>: (Editing: -insertTab: method unimplemented (WebKit editing API))
- fixed <rdar://problem/3655351>: (Editing: -moveWordBackward: method unimplemented (WebKit editing API))
- fixed <rdar://problem/3655352>: (Editing: -moveWordBackwardAndModifySelection: method unimplemented (WebKit editing API))
- fixed <rdar://problem/3655353>: (Editing: -moveWordForward: method unimplemented (WebKit editing API))
- fixed <rdar://problem/3655354>: (Editing: -moveWordForwardAndModifySelection: method unimplemented (WebKit editing API))
- fixed <rdar://problem/3655374>: (Editing: -pasteAsPlainText: method unimplemented (WebKit editing API))
- fixed <rdar://problem/3655362>: (Editing: -scrollLineDown: method unimplemented (WebKit editing API))
- fixed <rdar://problem/3655363>: (Editing: -scrollLineUp: method unimplemented (WebKit editing API))
* WebView.subproj/WebView.m:
(-[WebView centerSelectionInVisibleArea:]): Implemented. The implementation isn't perfect, but it's hooked
up. It simply calls ensureCaretVisible for now.
(-[WebView moveBackward:]): Implemented. The WebCore API already has a way to specify backward as opposed
to left. A separate issue is the fact that these operations don't have bi-di-savvy implementations, but
now this method is hooked up and will work at least for left-to-right text.
(-[WebView moveBackwardAndModifySelection:]): Ditto.
(-[WebView moveForward:]): Ditto.
(-[WebView moveForwardAndModifySelection:]): Ditto.
(-[WebView moveWordBackward:]): Ditto.
(-[WebView moveWordBackwardAndModifySelection:]): Ditto.
(-[WebView moveWordForward:]): Ditto.
(-[WebView moveWordForwardAndModifySelection:]): Ditto.
(-[WebView scrollLineDown:]): Forward to WebFrameView.
(-[WebView scrollLineUp:]): Ditto.
(-[WebView scrollPageDown:]): Ditto.
(-[WebView scrollPageUp:]): Ditto.
(-[WebView delete:]): Implemented. Follows pattern used in cut, copy, and paste.
(-[WebView pasteAsPlainText:]): Implemented. Calls delegate, then replaceSelectionWithText: on the bridge.
(-[WebView insertTab:]): Implemented. Calls delegate, then replaceSelectionWithText: on the bridge.
(-[WebView insertBacktab:]): Implemented. Does nothing. If we ever change so that you can use a WebView as
a field editor, then we might have to add code here.
(-[WebView deleteWordForward:]): Implement by calling moveForwardAndModifySelection: and then delete:.
Might not be a perfect implementation in the presence of delegates who refuse to delete because it will
change the selection even if the delete is disallowed.
(-[WebView deleteWordBackward:]): Implement by calling moveBackwardAndModifySelection: and then delete:.
Same issue about about delegates as deleteWordForward:.
* WebView.subproj/WebHTMLView.m: (-[WebHTMLView _pasteFromPasteboard:]): Added a FIXME.
* DOM.subproj/DOMViews.h: Updated from recent change to WebCore.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@6669 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 6ce27b6..42be62f 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,53 @@
+2004-05-22 Darin Adler <darin at apple.com>
+
+ Reviewed by Ken.
+
+ - implemented some of the trivial WebView editing operations; some had bug reports, to wit:
+ - fixed <rdar://problem/3655342>: (Editing: -centerSelectionInVisibleArea: method unimplemented (WebKit editing API))
+ - fixed <rdar://problem/3655398>: (Editing: -deleteWordBackward: method unimplemented (WebKit editing API))
+ - fixed <rdar://problem/3655397>: (Editing: -deleteWordForward: method unimplemented (WebKit editing API))
+ - fixed <rdar://problem/3655387>: (Editing: -insertBacktab: method unimplemented (WebKit editing API))
+ - fixed <rdar://problem/3655386>: (Editing: -insertTab: method unimplemented (WebKit editing API))
+ - fixed <rdar://problem/3655351>: (Editing: -moveWordBackward: method unimplemented (WebKit editing API))
+ - fixed <rdar://problem/3655352>: (Editing: -moveWordBackwardAndModifySelection: method unimplemented (WebKit editing API))
+ - fixed <rdar://problem/3655353>: (Editing: -moveWordForward: method unimplemented (WebKit editing API))
+ - fixed <rdar://problem/3655354>: (Editing: -moveWordForwardAndModifySelection: method unimplemented (WebKit editing API))
+ - fixed <rdar://problem/3655374>: (Editing: -pasteAsPlainText: method unimplemented (WebKit editing API))
+ - fixed <rdar://problem/3655362>: (Editing: -scrollLineDown: method unimplemented (WebKit editing API))
+ - fixed <rdar://problem/3655363>: (Editing: -scrollLineUp: method unimplemented (WebKit editing API))
+
+ * WebView.subproj/WebView.m:
+ (-[WebView centerSelectionInVisibleArea:]): Implemented. The implementation isn't perfect, but it's hooked
+ up. It simply calls ensureCaretVisible for now.
+ (-[WebView moveBackward:]): Implemented. The WebCore API already has a way to specify backward as opposed
+ to left. A separate issue is the fact that these operations don't have bi-di-savvy implementations, but
+ now this method is hooked up and will work at least for left-to-right text.
+ (-[WebView moveBackwardAndModifySelection:]): Ditto.
+ (-[WebView moveForward:]): Ditto.
+ (-[WebView moveForwardAndModifySelection:]): Ditto.
+ (-[WebView moveWordBackward:]): Ditto.
+ (-[WebView moveWordBackwardAndModifySelection:]): Ditto.
+ (-[WebView moveWordForward:]): Ditto.
+ (-[WebView moveWordForwardAndModifySelection:]): Ditto.
+ (-[WebView scrollLineDown:]): Forward to WebFrameView.
+ (-[WebView scrollLineUp:]): Ditto.
+ (-[WebView scrollPageDown:]): Ditto.
+ (-[WebView scrollPageUp:]): Ditto.
+ (-[WebView delete:]): Implemented. Follows pattern used in cut, copy, and paste.
+ (-[WebView pasteAsPlainText:]): Implemented. Calls delegate, then replaceSelectionWithText: on the bridge.
+ (-[WebView insertTab:]): Implemented. Calls delegate, then replaceSelectionWithText: on the bridge.
+ (-[WebView insertBacktab:]): Implemented. Does nothing. If we ever change so that you can use a WebView as
+ a field editor, then we might have to add code here.
+ (-[WebView deleteWordForward:]): Implement by calling moveForwardAndModifySelection: and then delete:.
+ Might not be a perfect implementation in the presence of delegates who refuse to delete because it will
+ change the selection even if the delete is disallowed.
+ (-[WebView deleteWordBackward:]): Implement by calling moveBackwardAndModifySelection: and then delete:.
+ Same issue about about delegates as deleteWordForward:.
+
+ * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _pasteFromPasteboard:]): Added a FIXME.
+
+ * DOM.subproj/DOMViews.h: Updated from recent change to WebCore.
+
2004-05-21 Richard Williamson <rjw at apple.com>
Removed _bindObject:forFrame: SPI.
@@ -39,8 +89,8 @@
Provide the methods to glue the WebView's editing delegate so that these methods work:
- <rdar://problem/3655316>: "Editing:Ê-webViewShouldBeginEditing:inDOMRange:ÊmethodÊunimplementedÊ(WebKitÊeditingÊAPI)"
- <rdar://problem/3655317>: "Editing:Ê-webViewShouldEndEditing:inDOMRange:ÊmethodÊunimplementedÊ(WebKitÊeditingÊAPI)"
+ <rdar://problem/3655316>: "Editing: -webViewShouldBeginEditing:inDOMRange: method unimplemented (WebKit editing API)"
+ <rdar://problem/3655317>: "Editing: -webViewShouldEndEditing:inDOMRange: method unimplemented (WebKit editing API)"
* WebCoreSupport.subproj/WebBridge.m:
(-[WebBridge shouldBeginEditing:]): New method used to glue delegate to focus shifts.
@@ -290,8 +340,8 @@
NSView behavior gives us just what we want, and there is no
special behavior required for editing.
- <rdar://problem/3655364>: "Editing:Ê-scrollPageDown:ÊmethodÊunimplementedÊ(WebKitÊeditingÊAPI)"
- <rdar://problem/3655365>: "Editing:Ê-scrollPageUp:ÊmethodÊunimplementedÊ(WebKitÊeditingÊAPI)"
+ <rdar://problem/3655364>: "Editing: -scrollPageDown: method unimplemented (WebKit editing API)"
+ <rdar://problem/3655365>: "Editing: -scrollPageUp: method unimplemented (WebKit editing API)"
* WebView.subproj/WebView.h: Comment methods out and add a note about why.
* WebView.subproj/WebView.m: Remove stubbed out implementation.
diff --git a/WebKit/DOM.subproj/DOMViews.h b/WebKit/DOM.subproj/DOMViews.h
index 8d581fc..b143d9c 100644
--- a/WebKit/DOM.subproj/DOMViews.h
+++ b/WebKit/DOM.subproj/DOMViews.h
@@ -25,12 +25,10 @@
#import <WebKit/DOMCore.h>
- at class DOMDocumentView;
-
@interface DOMAbstractView : DOMObject
-- (DOMDocumentView *)document;
+- (DOMDocument *)document;
@end
- at interface DOMDocumentView : DOMObject
+ at interface DOMDocument (DOMDocumentView)
- (DOMAbstractView *)defaultView;
@end
diff --git a/WebKit/WebView.subproj/WebHTMLView.m b/WebKit/WebView.subproj/WebHTMLView.m
index b5adfc0..166d65b 100644
--- a/WebKit/WebView.subproj/WebHTMLView.m
+++ b/WebKit/WebView.subproj/WebHTMLView.m
@@ -588,6 +588,9 @@ static WebHTMLView *lastHitView = nil;
NSString *URLString = [URL _web_originalDataAsString];
NSString *linkLabel = [pasteboard stringForType:WebURLNamePboardType];
linkLabel = [linkLabel length] > 0 ? linkLabel : URLString;
+ // FIXME: Need to escape the text in the linkLabel, otherwise characters like "<" won't work.
+ // An even better solution would be to make a DOM node with the DOM API rather than creating
+ // a markup string here.
NSString *markupString = [NSString stringWithFormat:@"<A HREF=\"%@\">%@</A>", URLString, linkLabel];
[self _replaceSelectionWithMarkupString:markupString];
} else if ([types containsObject:NSRTFDPboardType]) {
@@ -884,15 +887,32 @@ static WebHTMLView *lastHitView = nil;
- (void)copy:(id)sender
{
+ if (![self _haveSelection]) {
+ NSBeep();
+ return;
+ }
[self _writeSelectionToPasteboard:[NSPasteboard generalPasteboard]];
}
- (void)cut:(id)sender
{
+ if (![self _haveSelection]) {
+ NSBeep();
+ return;
+ }
[self copy:sender];
[[self _bridge] deleteSelection];
}
+- (void)delete:(id)sender
+{
+ if (![self _haveSelection]) {
+ NSBeep();
+ return;
+ }
+ [[self _bridge] deleteSelection];
+}
+
- (void)paste:(id)sender
{
[self _pasteFromPasteboard:[NSPasteboard generalPasteboard]];
@@ -1059,27 +1079,6 @@ static WebHTMLView *lastHitView = nil;
}
}
-- (void)copy:(id)sender
-{
- [self _writeSelectionToPasteboard:[NSPasteboard generalPasteboard]];
-}
-
-- (void)cut:(id)sender
-{
- [self copy:sender];
- [[self _bridge] deleteSelection];
-}
-
-- (void)delete:(id)sender
-{
- [[self _bridge] deleteSelection];
-}
-
-- (void)paste:(id)sender
-{
- [self _pasteFromPasteboard:[NSPasteboard generalPasteboard]];
-}
-
- (BOOL)writeSelectionToPasteboard:(NSPasteboard *)pasteboard types:(NSArray *)types
{
[self _writeSelectionToPasteboard:pasteboard];
diff --git a/WebKit/WebView.subproj/WebHTMLViewPrivate.h b/WebKit/WebView.subproj/WebHTMLViewPrivate.h
index 91c6b0e..be9e00c 100644
--- a/WebKit/WebView.subproj/WebHTMLViewPrivate.h
+++ b/WebKit/WebView.subproj/WebHTMLViewPrivate.h
@@ -95,5 +95,6 @@
- (void)cut:(id)sender;
- (void)copy:(id)sender;
- (void)paste:(id)sender;
+- (void)delete:(id)sender;
@end
diff --git a/WebKit/WebView.subproj/WebView.h b/WebKit/WebView.subproj/WebView.h
index ff2c337..535be3b 100644
--- a/WebKit/WebView.subproj/WebView.h
+++ b/WebKit/WebView.subproj/WebView.h
@@ -607,7 +607,8 @@ extern NSString * const WebViewDidChangeSelectionNotification;
- (void)pageUp:(id)sender;
- (void)scrollLineDown:(id)sender;
- (void)scrollLineUp:(id)sender;
-// Use default responder behavior for scrollPageDown: and scrollPageUp:.
+- (void)scrollPageDown:(id)sender;
+- (void)scrollPageUp:(id)sender;
/* Selections */
diff --git a/WebKit/WebView.subproj/WebView.m b/WebKit/WebView.subproj/WebView.m
index e640b40..32477b3 100644
--- a/WebKit/WebView.subproj/WebView.m
+++ b/WebKit/WebView.subproj/WebView.m
@@ -2570,7 +2570,8 @@ static NSFont *_fontFromStyle(DOMCSSStyleDeclaration *style)
- (void)centerSelectionInVisibleArea:(id)sender
{
if ([self _currentSelectionIsEditable]) {
- ERROR("unimplemented");
+ // FIXME: Does this do the right thing when the selection is not a caret?
+ [[self _bridgeForCurrentSelection] ensureCaretVisible];
return;
}
[[self nextResponder] tryToPerform:@selector(centerSelectionInVisibleArea:) with:sender];
@@ -2579,7 +2580,7 @@ static NSFont *_fontFromStyle(DOMCSSStyleDeclaration *style)
- (void)moveBackward:(id)sender
{
if ([self _currentSelectionIsEditable]) {
- ERROR("unimplemented");
+ [self _alterCurrentSelection:WebSelectByMoving direction:WebSelectBackward granularity:WebSelectByCharacter];
return;
}
[[self nextResponder] tryToPerform:@selector(moveBackward:) with:sender];
@@ -2588,7 +2589,7 @@ static NSFont *_fontFromStyle(DOMCSSStyleDeclaration *style)
- (void)moveBackwardAndModifySelection:(id)sender
{
if ([self _currentSelectionIsEditable]) {
- ERROR("unimplemented");
+ [self _alterCurrentSelection:WebSelectByExtending direction:WebSelectBackward granularity:WebSelectByCharacter];
return;
}
[[self nextResponder] tryToPerform:@selector(moveBackwardAndModifySelection:) with:sender];
@@ -2615,7 +2616,7 @@ static NSFont *_fontFromStyle(DOMCSSStyleDeclaration *style)
- (void)moveForward:(id)sender
{
if ([self _currentSelectionIsEditable]) {
- ERROR("unimplemented");
+ [self _alterCurrentSelection:WebSelectByMoving direction:WebSelectForward granularity:WebSelectByCharacter];
return;
}
[[self nextResponder] tryToPerform:@selector(moveForward:) with:sender];
@@ -2624,7 +2625,7 @@ static NSFont *_fontFromStyle(DOMCSSStyleDeclaration *style)
- (void)moveForwardAndModifySelection:(id)sender
{
if ([self _currentSelectionIsEditable]) {
- ERROR("unimplemented");
+ [self _alterCurrentSelection:WebSelectByExtending direction:WebSelectForward granularity:WebSelectByCharacter];
return;
}
[[self nextResponder] tryToPerform:@selector(moveForwardAndModifySelection:) with:sender];
@@ -2741,7 +2742,7 @@ static NSFont *_fontFromStyle(DOMCSSStyleDeclaration *style)
- (void)moveWordBackward:(id)sender
{
if ([self _currentSelectionIsEditable]) {
- ERROR("unimplemented");
+ [self _alterCurrentSelection:WebSelectByMoving direction:WebSelectBackward granularity:WebSelectByWord];
return;
}
[[self nextResponder] tryToPerform:@selector(moveWordBackward:) with:sender];
@@ -2750,7 +2751,7 @@ static NSFont *_fontFromStyle(DOMCSSStyleDeclaration *style)
- (void)moveWordBackwardAndModifySelection:(id)sender
{
if ([self _currentSelectionIsEditable]) {
- ERROR("unimplemented");
+ [self _alterCurrentSelection:WebSelectByExtending direction:WebSelectBackward granularity:WebSelectByWord];
return;
}
[[self nextResponder] tryToPerform:@selector(moveWordBackwardAndModifySelection:) with:sender];
@@ -2759,7 +2760,7 @@ static NSFont *_fontFromStyle(DOMCSSStyleDeclaration *style)
- (void)moveWordForward:(id)sender
{
if ([self _currentSelectionIsEditable]) {
- ERROR("unimplemented");
+ [self _alterCurrentSelection:WebSelectByMoving direction:WebSelectForward granularity:WebSelectByWord];
return;
}
[[self nextResponder] tryToPerform:@selector(moveWordForward:) with:sender];
@@ -2768,7 +2769,7 @@ static NSFont *_fontFromStyle(DOMCSSStyleDeclaration *style)
- (void)moveWordForwardAndModifySelection:(id)sender
{
if ([self _currentSelectionIsEditable]) {
- ERROR("unimplemented");
+ [self _alterCurrentSelection:WebSelectByExtending direction:WebSelectForward granularity:WebSelectByWord];
return;
}
[[self nextResponder] tryToPerform:@selector(moveWordForwardAndModifySelection:) with:sender];
@@ -2830,8 +2831,9 @@ static NSFont *_fontFromStyle(DOMCSSStyleDeclaration *style)
- (void)scrollLineDown:(id)sender
{
- if ([self _currentSelectionIsEditable]) {
- ERROR("unimplemented");
+ WebFrameView *frameView = [[self mainFrame] frameView];
+ if (frameView) {
+ [frameView scrollLineDown:sender];
return;
}
[[self nextResponder] tryToPerform:@selector(scrollLineDown:) with:sender];
@@ -2839,13 +2841,34 @@ static NSFont *_fontFromStyle(DOMCSSStyleDeclaration *style)
- (void)scrollLineUp:(id)sender
{
- if ([self _currentSelectionIsEditable]) {
- ERROR("unimplemented");
+ WebFrameView *frameView = [[self mainFrame] frameView];
+ if (frameView) {
+ [frameView scrollLineUp:sender];
return;
}
[[self nextResponder] tryToPerform:@selector(scrollLineUp:) with:sender];
}
+- (void)scrollPageDown:(id)sender
+{
+ WebFrameView *frameView = [[self mainFrame] frameView];
+ if (frameView) {
+ [frameView scrollPageDown:sender];
+ return;
+ }
+ [[self nextResponder] tryToPerform:@selector(scrollPageDown:) with:sender];
+}
+
+- (void)scrollPageUp:(id)sender
+{
+ WebFrameView *frameView = [[self mainFrame] frameView];
+ if (frameView) {
+ [frameView scrollPageUp:sender];
+ return;
+ }
+ [[self nextResponder] tryToPerform:@selector(scrollPageUp:) with:sender];
+}
+
/* Selections */
@@ -2945,7 +2968,10 @@ static NSFont *_fontFromStyle(DOMCSSStyleDeclaration *style)
- (void)delete:(id)sender
{
if ([self _currentSelectionIsEditable]) {
- ERROR("unimplemented");
+ id <WebDocumentView> view = [[[self mainFrame] frameView] documentView];
+ if ([view isKindOfClass:[WebHTMLView class]]) {
+ [(WebHTMLView *)view delete:nil];
+ }
return;
}
[[self nextResponder] tryToPerform:@selector(delete:) with:sender];
@@ -2954,7 +2980,13 @@ static NSFont *_fontFromStyle(DOMCSSStyleDeclaration *style)
- (void)pasteAsPlainText:(id)sender
{
if ([self _currentSelectionIsEditable]) {
- ERROR("unimplemented");
+ id <WebDocumentView> view = [[[self mainFrame] frameView] documentView];
+ if ([view isKindOfClass:[WebHTMLView class]]) {
+ NSString *text = [[NSPasteboard generalPasteboard] stringForType:NSStringPboardType];
+ if ([[self _editingDelegateForwarder] webView:self shouldInsertText:text replacingDOMRange:[self selectedDOMRange] givenAction:WebViewInsertActionPasted]) {
+ [[self _bridgeForCurrentSelection] replaceSelectionWithText:text];
+ }
+ }
return;
}
[[self nextResponder] tryToPerform:@selector(pasteAsPlainText:) with:sender];
@@ -3065,7 +3097,12 @@ static NSFont *_fontFromStyle(DOMCSSStyleDeclaration *style)
- (void)insertTab:(id)sender
{
if ([self _currentSelectionIsEditable]) {
- ERROR("unimplemented");
+ id <WebDocumentView> view = [[[self mainFrame] frameView] documentView];
+ if ([view isKindOfClass:[WebHTMLView class]]) {
+ if ([[self _editingDelegateForwarder] webView:self shouldInsertText:@"\t" replacingDOMRange:[self selectedDOMRange] givenAction:WebViewInsertActionPasted]) {
+ [[self _bridgeForCurrentSelection] replaceSelectionWithText:@"\t"];
+ }
+ }
return;
}
[[self nextResponder] tryToPerform:@selector(insertTab:) with:sender];
@@ -3073,19 +3110,17 @@ static NSFont *_fontFromStyle(DOMCSSStyleDeclaration *style)
- (void)insertBacktab:(id)sender
{
- if ([self _currentSelectionIsEditable]) {
- ERROR("unimplemented");
- return;
- }
+ // Doing nothing matches normal NSTextView behavior. If we ever use WebView for a field-editor-type purpose
+ // we might add code here.
[[self nextResponder] tryToPerform:@selector(insertBacktab:) with:sender];
}
- (void)insertNewline:(id)sender
{
if ([self _currentSelectionIsEditable]) {
- WebBridge *bridge = [self _bridgeForCurrentSelection];
// Perhaps we should make this delegate call sensitive to the real DOM operation we actually do.
if ([[self _editingDelegateForwarder] webView:self shouldInsertText:@"\n" replacingDOMRange:[self selectedDOMRange] givenAction:WebViewInsertActionTyped]) {
+ WebBridge *bridge = [self _bridgeForCurrentSelection];
[bridge replaceSelectionWithNewline];
[bridge ensureCaretVisible];
}
@@ -3157,8 +3192,8 @@ static NSFont *_fontFromStyle(DOMCSSStyleDeclaration *style)
- (void)deleteBackward:(id)sender
{
if ([self _currentSelectionIsEditable]) {
- WebBridge *bridge = [self _bridgeForCurrentSelection];
if ([[self _editingDelegateForwarder] webView:self shouldDeleteDOMRange:[self selectedDOMRange]]) {
+ WebBridge *bridge = [self _bridgeForCurrentSelection];
[bridge deleteKeyPressed];
[bridge ensureCaretVisible];
}
@@ -3179,7 +3214,8 @@ static NSFont *_fontFromStyle(DOMCSSStyleDeclaration *style)
- (void)deleteWordForward:(id)sender
{
if ([self _currentSelectionIsEditable]) {
- ERROR("unimplemented");
+ [self moveWordForwardAndModifySelection:sender];
+ [self delete:sender];
return;
}
[[self nextResponder] tryToPerform:@selector(deleteWordForward:) with:sender];
@@ -3188,7 +3224,8 @@ static NSFont *_fontFromStyle(DOMCSSStyleDeclaration *style)
- (void)deleteWordBackward:(id)sender
{
if ([self _currentSelectionIsEditable]) {
- ERROR("unimplemented");
+ [self moveWordBackwardAndModifySelection:sender];
+ [self delete:sender];
return;
}
[[self nextResponder] tryToPerform:@selector(deleteWordBackward:) with:sender];
@@ -3301,8 +3338,8 @@ static NSFont *_fontFromStyle(DOMCSSStyleDeclaration *style)
- (void)insertText:(NSString *)text
{
if ([self _currentSelectionIsEditable]) {
- WebBridge *bridge = [self _bridgeForCurrentSelection];
if ([[self _editingDelegateForwarder] webView:self shouldInsertText:text replacingDOMRange:[self selectedDOMRange] givenAction:WebViewInsertActionTyped]) {
+ WebBridge *bridge = [self _bridgeForCurrentSelection];
[bridge replaceSelectionWithText:text];
[bridge ensureCaretVisible];
}
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list