[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677
kocienda
kocienda at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 08:40:54 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit 7662cd9382c994ac8b6426631b57993466f3c4b3
Author: kocienda <kocienda at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu May 20 22:52:19 2004 +0000
WebCore:
Reviewed by Hyatt
Provide the methods to glue the WebView's editing delegate so that these methods work:
<rdar://problem/3655316>: "Editing:�webViewShouldBeginEditing:inDOMRange:�ethod�nimplemented�WebKit�diting�PI)"
<rdar://problem/3655317>: "Editing:�webViewShouldEndEditing:inDOMRange:�ethod�nimplemented�WebKit�diting�PI)"
While I was in the neighborhood and working on understanding focus shifts, I fixed this bug as well:
<rdar://problem/3645154>: "contentEditable div receives focus and blur twice when focus changes to new element"
* khtml/khtml_part.cpp:
(KHTMLPart::invalidateSelection): Do not move focus in this function. That is just a mistake. This function
is all about redraw.
(KHTMLPart::selectionLayoutChanged): New function. Factor out the redraw parts of notifySelectionChanged so
that invalidateSelection can call it.
(KHTMLPart::notifySelectionChanged): Call selectionLayoutChanged now that the redraw parts have been
factored out.
(KHTMLPart::shouldBeginEditing): New function that calls through to the KWQKHTMLPart in an APPLE_CHANGES
block. This is part of the code path that will eventually The WebView's delegate to ask the
shouldBeginEditing question.
(KHTMLPart::shouldEndEditing): Ditto, except the question is about shouldEndEditing.
* khtml/khtml_part.h:
* khtml/khtmlview.cpp:
(KHTMLView::dispatchMouseEvent): Now looks at the boolean value returned from DocumentImpl::setFocusNode
(described below). If the focus shift was blocked, swallow the mouse event.
* khtml/xml/dom_docimpl.cpp:
(DocumentImpl::relinquishesEditingFocus): Part of the WebView's delegation call chain described above.
(DocumentImpl::acceptsEditingFocus): Ditto.
(DocumentImpl::setFocusNode): Many improvements. Now handles WebView delegation and switching focus
in the handlers called as a result of the DOM events that this function calls. Also now returns a
boolean to say whether the attempt to set focus was blocked by a handler or by the WebView's delegate.
* khtml/xml/dom_docimpl.h:
* kwq/KWQKHTMLPart.h:
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::shouldBeginEditing): More WebView's delegation glue.
(KWQKHTMLPart::shouldEndEditing): Ditto.
* kwq/WebCoreBridge.h:
WebKit:
Reviewed by Hyatt
Provide the methods to glue the WebView's editing delegate so that these methods work:
<rdar://problem/3655316>: "Editing:�webViewShouldBeginEditing:inDOMRange:�ethod�nimplemented�WebKit�diting�PI)"
<rdar://problem/3655317>: "Editing:�webViewShouldEndEditing:inDOMRange:�ethod�nimplemented�WebKit�diting�PI)"
* WebCoreSupport.subproj/WebBridge.m:
(-[WebBridge shouldBeginEditing:]): New method used to glue delegate to focus shifts.
(-[WebBridge shouldEndEditing:]): Ditto.
* WebView.subproj/WebView.m:
(-[WebView _shouldBeginEditingInDOMRange:]): Ditto.
(-[WebView _shouldEndEditingInDOMRange:]): Ditto.
* WebView.subproj/WebViewPrivate.h: Ditto.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@6651 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 0f52ea8..538eba5 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,44 @@
+2004-05-20 Ken Kocienda <kocienda at apple.com>
+
+ Reviewed by Hyatt
+
+ 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)"
+
+ While I was in the neighborhood and working on understanding focus shifts, I fixed this bug as well:
+
+ <rdar://problem/3645154>: "contentEditable div receives focus and blur twice when focus changes to new element"
+
+ * khtml/khtml_part.cpp:
+ (KHTMLPart::invalidateSelection): Do not move focus in this function. That is just a mistake. This function
+ is all about redraw.
+ (KHTMLPart::selectionLayoutChanged): New function. Factor out the redraw parts of notifySelectionChanged so
+ that invalidateSelection can call it.
+ (KHTMLPart::notifySelectionChanged): Call selectionLayoutChanged now that the redraw parts have been
+ factored out.
+ (KHTMLPart::shouldBeginEditing): New function that calls through to the KWQKHTMLPart in an APPLE_CHANGES
+ block. This is part of the code path that will eventually The WebView's delegate to ask the
+ shouldBeginEditing question.
+ (KHTMLPart::shouldEndEditing): Ditto, except the question is about shouldEndEditing.
+ * khtml/khtml_part.h:
+ * khtml/khtmlview.cpp:
+ (KHTMLView::dispatchMouseEvent): Now looks at the boolean value returned from DocumentImpl::setFocusNode
+ (described below). If the focus shift was blocked, swallow the mouse event.
+ * khtml/xml/dom_docimpl.cpp:
+ (DocumentImpl::relinquishesEditingFocus): Part of the WebView's delegation call chain described above.
+ (DocumentImpl::acceptsEditingFocus): Ditto.
+ (DocumentImpl::setFocusNode): Many improvements. Now handles WebView delegation and switching focus
+ in the handlers called as a result of the DOM events that this function calls. Also now returns a
+ boolean to say whether the attempt to set focus was blocked by a handler or by the WebView's delegate.
+ * khtml/xml/dom_docimpl.h:
+ * kwq/KWQKHTMLPart.h:
+ * kwq/KWQKHTMLPart.mm:
+ (KWQKHTMLPart::shouldBeginEditing): More WebView's delegation glue.
+ (KWQKHTMLPart::shouldEndEditing): Ditto.
+ * kwq/WebCoreBridge.h:
+
2004-05-20 Richard Williamson <rjw at apple.com>
Reviewed by NOBODY (OOPS!).
diff --git a/WebCore/khtml/khtml_part.cpp b/WebCore/khtml/khtml_part.cpp
index a100278..c8b95be 100644
--- a/WebCore/khtml/khtml_part.cpp
+++ b/WebCore/khtml/khtml_part.cpp
@@ -2293,9 +2293,8 @@ void KHTMLPart::clearSelection()
void KHTMLPart::invalidateSelection()
{
clearCaretRectIfNeeded();
- setFocusNodeIfNeeded(d->m_selection);
d->m_selection.setNeedsLayout();
- notifySelectionChanged(false);
+ selectionLayoutChanged();
}
void KHTMLPart::setSelectionVisible(bool flag)
@@ -2353,7 +2352,7 @@ void KHTMLPart::setFocusNodeIfNeeded(const Selection &s)
}
}
-void KHTMLPart::notifySelectionChanged(bool closeTyping)
+void KHTMLPart::selectionLayoutChanged()
{
// kill any caret blink timer now running
if (d->m_caretBlinkTimer >= 0) {
@@ -2371,13 +2370,18 @@ void KHTMLPart::notifySelectionChanged(bool closeTyping)
if (d->m_doc)
d->m_doc->updateSelection();
-
- if (closeTyping)
- TypingCommand::closeTyping(lastEditCommand());
-
+
// Always clear the x position used for vertical arrow navigation.
// It will be restored by the vertical arrow navigation code if necessary.
d->m_xPosForVerticalArrowNavigation = NoXPosForVerticalArrowNavigation;
+}
+
+void KHTMLPart::notifySelectionChanged(bool closeTyping)
+{
+ selectionLayoutChanged();
+
+ if (closeTyping)
+ TypingCommand::closeTyping(lastEditCommand());
emitSelectionChanged();
@@ -4873,6 +4877,24 @@ void KHTMLPart::selectAll()
setSelection(selection);
}
+bool KHTMLPart::shouldBeginEditing(const Range &range) const
+{
+#if APPLE_CHANGES
+ return KWQ(this)->shouldBeginEditing(range);
+#else
+ return true;
+#endif
+}
+
+bool KHTMLPart::shouldEndEditing(const Range &range) const
+{
+#if APPLE_CHANGES
+ return KWQ(this)->shouldEndEditing(range);
+#else
+ return true;
+#endif
+}
+
bool KHTMLPart::isContentEditable() const
{
#if APPLE_CHANGES
diff --git a/WebCore/khtml/khtml_part.h b/WebCore/khtml/khtml_part.h
index 3dc270e..e974f8d 100644
--- a/WebCore/khtml/khtml_part.h
+++ b/WebCore/khtml/khtml_part.h
@@ -46,21 +46,22 @@ class KJavaAppletContext;
namespace DOM
{
+ class DocumentImpl;
+ class EventListener;
+ class HTMLAnchorElementImpl;
class HTMLDocument;
class HTMLDocumentImpl;
- class DocumentImpl;
- class HTMLTitleElementImpl;
class HTMLElementImpl;
+ class HTMLEventListener;
+ class HTMLFormElementImpl;
class HTMLFrameElementImpl;
class HTMLIFrameElementImpl;
- class HTMLObjectElementImpl;
- class HTMLFormElementImpl;
- class HTMLAnchorElementImpl;
class HTMLMetaElementImpl;
- class NodeImpl;
+ class HTMLObjectElementImpl;
+ class HTMLTitleElementImpl;
class Node;
- class HTMLEventListener;
- class EventListener;
+ class NodeImpl;
+ class Range;
class Selection;
}
@@ -624,6 +625,16 @@ public:
void selectAll();
/**
+ * Returns whether editing should end in the given range
+ */
+ bool shouldBeginEditing(const DOM::Range &) const;
+
+ /**
+ * Returns whether editing should end in the given range
+ */
+ bool shouldEndEditing(const DOM::Range &) const;
+
+ /**
* Returns the contentEditable "override" value for the part
*/
bool isContentEditable() const;
@@ -1095,6 +1106,11 @@ private:
/**
* @internal
*/
+ void selectionLayoutChanged();
+
+ /**
+ * @internal
+ */
void notifySelectionChanged(bool closeTyping=true);
/**
diff --git a/WebCore/khtml/khtmlview.cpp b/WebCore/khtml/khtmlview.cpp
index 36bf68b..9b81001 100644
--- a/WebCore/khtml/khtmlview.cpp
+++ b/WebCore/khtml/khtmlview.cpp
@@ -1731,9 +1731,9 @@ bool KHTMLView::dispatchMouseEvent(int eventId, DOM::NodeImpl *targetNode, bool
DOM::NodeImpl* nodeImpl = targetNode;
for ( ; nodeImpl && !nodeImpl->isFocusable(); nodeImpl = nodeImpl->parentNode());
if (nodeImpl && nodeImpl->isMouseFocusable())
- m_part->xmlDocImpl()->setFocusNode(nodeImpl);
+ swallowEvent = !m_part->xmlDocImpl()->setFocusNode(nodeImpl);
else if (!nodeImpl || !nodeImpl->focused())
- m_part->xmlDocImpl()->setFocusNode(0);
+ swallowEvent = !m_part->xmlDocImpl()->setFocusNode(0);
}
}
diff --git a/WebCore/khtml/xml/dom_docimpl.cpp b/WebCore/khtml/xml/dom_docimpl.cpp
index 6fd8519..2320469 100644
--- a/WebCore/khtml/xml/dom_docimpl.cpp
+++ b/WebCore/khtml/xml/dom_docimpl.cpp
@@ -2275,57 +2275,125 @@ void DocumentImpl::setHoverNode(NodeImpl* newHoverNode)
}
}
-void DocumentImpl::setFocusNode(NodeImpl *newFocusNode)
+#if APPLE_CHANGES
+
+bool DocumentImpl::relinquishesEditingFocus(NodeImpl *node)
+{
+ assert(node);
+ assert(node->isContentEditable());
+
+ if (!part())
+ return true;
+
+ NodeImpl *rootImpl = node->rootEditableBlock();
+ Node root(rootImpl);
+ Range range(root, 0, root, rootImpl->childNodeCount());
+ return part()->shouldEndEditing(range);
+}
+
+bool DocumentImpl::acceptsEditingFocus(NodeImpl *node)
+{
+ assert(node);
+ assert(node->isContentEditable());
+
+ if (!part())
+ return true;
+
+ NodeImpl *rootImpl = node->rootEditableBlock();
+ Node root(rootImpl);
+ Range range(root, 0, root, rootImpl->childNodeCount());
+ return part()->shouldBeginEditing(range);
+}
+
+#endif
+
+bool DocumentImpl::setFocusNode(NodeImpl *newFocusNode)
{
// Make sure newFocusNode is actually in this document
if (newFocusNode && (newFocusNode->getDocument() != this))
- return;
+ return true;
- if (m_focusNode != newFocusNode) {
- NodeImpl *oldFocusNode = m_focusNode;
- // Set focus on the new node
- m_focusNode = newFocusNode;
- // Remove focus from the existing focus node (if any)
- if (oldFocusNode) {
- // This goes hand in hand with the Qt focus setting below.
- if (!m_focusNode && getDocument()->view()) {
- getDocument()->view()->setFocus();
- }
+ if (m_focusNode == newFocusNode)
+ return true;
- if (oldFocusNode->active())
- oldFocusNode->setActive(false);
+#if APPLE_CHANGES
+ if (m_focusNode && m_focusNode->isContentEditable() && !relinquishesEditingFocus(m_focusNode))
+ return false;
+#endif
+
+ bool focusChangeBlocked = false;
+ NodeImpl *oldFocusNode = m_focusNode;
+ m_focusNode = 0;
- oldFocusNode->setFocus(false);
- oldFocusNode->dispatchHTMLEvent(EventImpl::BLUR_EVENT,false,false);
- oldFocusNode->dispatchUIEvent(EventImpl::DOMFOCUSOUT_EVENT);
- if ((oldFocusNode == this) && oldFocusNode->hasOneRef()) {
- oldFocusNode->deref(); // deletes this
- return;
- }
- else {
- oldFocusNode->deref();
- }
+ // Remove focus from the existing focus node (if any)
+ if (oldFocusNode) {
+ // This goes hand in hand with the Qt focus setting below.
+ if (!newFocusNode && getDocument()->view()) {
+ getDocument()->view()->setFocus();
}
- if (m_focusNode) {
- m_focusNode->ref();
- m_focusNode->dispatchHTMLEvent(EventImpl::FOCUS_EVENT,false,false);
- if (m_focusNode != newFocusNode) return;
- m_focusNode->dispatchUIEvent(EventImpl::DOMFOCUSIN_EVENT);
- if (m_focusNode != newFocusNode) return;
- m_focusNode->setFocus();
- // eww, I suck. set the qt focus correctly
- // ### find a better place in the code for this
- if (getDocument()->view()) {
- if (!m_focusNode->renderer() || !m_focusNode->renderer()->isWidget())
- getDocument()->view()->setFocus();
- else if (static_cast<RenderWidget*>(m_focusNode->renderer())->widget())
- static_cast<RenderWidget*>(m_focusNode->renderer())->widget()->setFocus();
- }
+ if (oldFocusNode->active())
+ oldFocusNode->setActive(false);
+
+ oldFocusNode->setFocus(false);
+ oldFocusNode->dispatchHTMLEvent(EventImpl::BLUR_EVENT, false, false);
+ if (m_focusNode != 0) {
+ // handler shifted focus
+ focusChangeBlocked = true;
+ newFocusNode = 0;
+ }
+ oldFocusNode->dispatchUIEvent(EventImpl::DOMFOCUSOUT_EVENT);
+ if (m_focusNode != 0) {
+ // handler shifted focus
+ focusChangeBlocked = true;
+ newFocusNode = 0;
+ }
+ if ((oldFocusNode == this) && oldFocusNode->hasOneRef()) {
+ oldFocusNode->deref(); // deletes this
+ return true;
+ }
+ else {
+ oldFocusNode->deref();
}
+ }
- updateRendering();
+ if (newFocusNode) {
+#if APPLE_CHANGES
+ if (newFocusNode->isContentEditable() && !acceptsEditingFocus(newFocusNode)) {
+ // delegate blocks focus change
+ focusChangeBlocked = true;
+ goto SetFocusNodeDone;
+ }
+#endif
+ // Set focus on the new node
+ m_focusNode = newFocusNode;
+ m_focusNode->ref();
+ m_focusNode->dispatchHTMLEvent(EventImpl::FOCUS_EVENT, false, false);
+ if (m_focusNode != newFocusNode) {
+ // handler shifted focus
+ focusChangeBlocked = true;
+ goto SetFocusNodeDone;
+ }
+ m_focusNode->dispatchUIEvent(EventImpl::DOMFOCUSIN_EVENT);
+ if (m_focusNode != newFocusNode) {
+ // handler shifted focus
+ focusChangeBlocked = true;
+ goto SetFocusNodeDone;
+ }
+ m_focusNode->setFocus();
+ // eww, I suck. set the qt focus correctly
+ // ### find a better place in the code for this
+ if (getDocument()->view()) {
+ if (!m_focusNode->renderer() || !m_focusNode->renderer()->isWidget())
+ getDocument()->view()->setFocus();
+ else if (static_cast<RenderWidget*>(m_focusNode->renderer())->widget())
+ static_cast<RenderWidget*>(m_focusNode->renderer())->widget()->setFocus();
+ }
}
+
+SetFocusNodeDone:
+ updateRendering();
+ return !focusChangeBlocked;
}
void DocumentImpl::setCSSTarget(NodeImpl* n)
diff --git a/WebCore/khtml/xml/dom_docimpl.h b/WebCore/khtml/xml/dom_docimpl.h
index 46cdad9..5473727 100644
--- a/WebCore/khtml/xml/dom_docimpl.h
+++ b/WebCore/khtml/xml/dom_docimpl.h
@@ -400,7 +400,7 @@ public:
QStringList availableStyleSheets() const;
NodeImpl *focusNode() const { return m_focusNode; }
- void setFocusNode(NodeImpl *newFocusNode);
+ bool setFocusNode(NodeImpl *newFocusNode);
NodeImpl *hoverNode() const { return m_hoverNode; }
void setHoverNode(NodeImpl *newHoverNode);
@@ -655,6 +655,9 @@ public:
khtml::Decoder *decoder() const { return m_decoder; }
private:
+ bool relinquishesEditingFocus(NodeImpl *node);
+ bool acceptsEditingFocus(NodeImpl *node);
+
mutable DOMString m_domain;
bool m_inPageCache;
khtml::RenderObject *m_savedRenderer;
diff --git a/WebCore/kwq/KWQKHTMLPart.h b/WebCore/kwq/KWQKHTMLPart.h
index b8a2930..f9c081a 100644
--- a/WebCore/kwq/KWQKHTMLPart.h
+++ b/WebCore/kwq/KWQKHTMLPart.h
@@ -284,6 +284,8 @@ public:
void postDidChangeSelectionNotification();
void postDidChangeNotification();
bool isContentEditable() const;
+ bool shouldBeginEditing(const DOM::Range &) const;
+ bool shouldEndEditing(const DOM::Range &) const;
KJS::Bindings::RootObject *bindingRootObject();
diff --git a/WebCore/kwq/KWQKHTMLPart.mm b/WebCore/kwq/KWQKHTMLPart.mm
index 947fe28..f3b23ec 100644
--- a/WebCore/kwq/KWQKHTMLPart.mm
+++ b/WebCore/kwq/KWQKHTMLPart.mm
@@ -2987,3 +2987,15 @@ bool KWQKHTMLPart::isContentEditable() const
{
return [_bridge isEditable];
}
+
+bool KWQKHTMLPart::shouldBeginEditing(const Range &range) const
+{
+ ASSERT(!range.isNull());
+ return [_bridge shouldBeginEditing:[DOMRange _rangeWithImpl:range.handle()]];
+}
+
+bool KWQKHTMLPart::shouldEndEditing(const Range &range) const
+{
+ ASSERT(!range.isNull());
+ return [_bridge shouldEndEditing:[DOMRange _rangeWithImpl:range.handle()]];
+}
diff --git a/WebCore/kwq/WebCoreBridge.h b/WebCore/kwq/WebCoreBridge.h
index a237a3c..a2f5ca9 100644
--- a/WebCore/kwq/WebCoreBridge.h
+++ b/WebCore/kwq/WebCoreBridge.h
@@ -448,6 +448,8 @@ typedef enum {
- (BOOL)interceptEditingKeyEvent:(NSEvent *)event;
- (void)setIsSelected:(BOOL)isSelected forView:(NSView *)view;
- (BOOL)isEditable;
+- (BOOL)shouldBeginEditing:(DOMRange *)range;
+- (BOOL)shouldEndEditing:(DOMRange *)range;
- (NSString *)overrideMediaType;
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 049420d..28ebe1c 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,20 @@
+2004-05-20 Ken Kocienda <kocienda at apple.com>
+
+ Reviewed by Hyatt
+
+ 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)"
+
+ * WebCoreSupport.subproj/WebBridge.m:
+ (-[WebBridge shouldBeginEditing:]): New method used to glue delegate to focus shifts.
+ (-[WebBridge shouldEndEditing:]): Ditto.
+ * WebView.subproj/WebView.m:
+ (-[WebView _shouldBeginEditingInDOMRange:]): Ditto.
+ (-[WebView _shouldEndEditingInDOMRange:]): Ditto.
+ * WebView.subproj/WebViewPrivate.h: Ditto.
+
2004-05-20 Richard Williamson <rjw at apple.com>
Fixed typo in header comment.
diff --git a/WebKit/WebCoreSupport.subproj/WebBridge.m b/WebKit/WebCoreSupport.subproj/WebBridge.m
index 70da412..e4d53d6 100644
--- a/WebKit/WebCoreSupport.subproj/WebBridge.m
+++ b/WebKit/WebCoreSupport.subproj/WebBridge.m
@@ -1284,6 +1284,16 @@ static id <WebFormDelegate> formDelegate(WebBridge *self)
return [[_frame webView] isEditable];
}
+- (BOOL)shouldBeginEditing:(DOMRange *)range
+{
+ return [[_frame webView] _shouldBeginEditingInDOMRange:range];
+}
+
+- (BOOL)shouldEndEditing:(DOMRange *)range
+{
+ return [[_frame webView] _shouldEndEditingInDOMRange:range];
+}
+
- (void)windowObjectCleared
{
WebView *wv = [_frame webView];
diff --git a/WebKit/WebView.subproj/WebView.m b/WebKit/WebView.subproj/WebView.m
index e0825d4..38e9838 100644
--- a/WebKit/WebView.subproj/WebView.m
+++ b/WebKit/WebView.subproj/WebView.m
@@ -2398,6 +2398,16 @@ static NSFont *_fontFromStyle(DOMCSSStyleDeclaration *style)
return YES;
}
+- (BOOL)_shouldBeginEditingInDOMRange:(DOMRange *)range
+{
+ return [[self _editingDelegateForwarder] webViewShouldBeginEditing:self inDOMRange:range];
+}
+
+- (BOOL)_shouldEndEditingInDOMRange:(DOMRange *)range
+{
+ return [[self _editingDelegateForwarder] webViewShouldEndEditing:self inDOMRange:range];
+}
+
- (void)setSelectedDOMRange:(DOMRange *)range affinity:(NSSelectionAffinity)selectionAffinity
{
[[self _bridgeForCurrentSelection] setSelectedDOMRange:range affinity:selectionAffinity];
diff --git a/WebKit/WebView.subproj/WebViewPrivate.h b/WebKit/WebView.subproj/WebViewPrivate.h
index f12bd5e..39be761 100644
--- a/WebKit/WebView.subproj/WebViewPrivate.h
+++ b/WebKit/WebView.subproj/WebViewPrivate.h
@@ -312,6 +312,8 @@ Could be worth adding to the API.
@interface WebView (WebViewEditingExtras)
- (BOOL)_interceptEditingKeyEvent:(NSEvent *)event;
- (DOMDocument *)DOMDocument;
+- (BOOL)_shouldBeginEditingInDOMRange:(DOMRange *)range;
+- (BOOL)_shouldEndEditingInDOMRange:(DOMRange *)range;
@end
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list