WebCore:
authormjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 23 Sep 2004 21:25:30 +0000 (21:25 +0000)
committermjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 23 Sep 2004 21:25:30 +0000 (21:25 +0000)
        Reviewed by Darin.

<rdar://problem/3685235> REGRESSION (Mail): links are not properly editable

* khtml/html/html_inlineimpl.cpp:
        (HTMLAnchorElementImpl::isFocusable): If this element is editable, then follow
the normal focus rules so the link does not swallow focus when you arrow key
or drag-select into it.

WebKit:

        Reviewed by Darin.

<rdar://problem/3685235> REGRESSION (Mail): links are not properly editable

        * WebView.subproj/WebDefaultUIDelegate.m: By default, don't allow
link dragging if the element under the mouse pointer is
editable. This way, you can drag-select starting inside a link.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7660 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog-2005-08-23
WebCore/khtml/html/html_inlineimpl.cpp
WebKit/ChangeLog
WebKit/WebView.subproj/WebDefaultUIDelegate.m

index 3049565..7ec7786 100644 (file)
@@ -1,3 +1,14 @@
+2004-09-23  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Darin.
+
+       <rdar://problem/3685235> REGRESSION (Mail): links are not properly editable
+        
+       * khtml/html/html_inlineimpl.cpp:
+        (HTMLAnchorElementImpl::isFocusable): If this element is editable, then follow
+       the normal focus rules so the link does not swallow focus when you arrow key
+       or drag-select into it.
+
 2004-09-23  Darin Adler  <darin@apple.com>
 
         - added test for the DOM::Range bug fixed recently
index 43af4d3..3509b4d 100644 (file)
@@ -55,6 +55,9 @@ HTMLAnchorElementImpl::~HTMLAnchorElementImpl()
 
 bool HTMLAnchorElementImpl::isFocusable() const
 {
+    if (isContentEditable())
+        return HTMLElementImpl::isFocusable();
+
     // FIXME: Even if we are not visible, we might have a child that is visible.
     // Dave wants to fix that some day with a "has visible content" flag or the like.
     if (!(m_hasAnchor && m_render && m_render->style()->visibility() == VISIBLE))
index e570841..fec57a3 100644 (file)
@@ -1,3 +1,13 @@
+2004-09-23  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Darin.
+
+       <rdar://problem/3685235> REGRESSION (Mail): links are not properly editable
+        
+        * WebView.subproj/WebDefaultUIDelegate.m: By default, don't allow
+       link dragging if the element under the mouse pointer is
+       editable. This way, you can drag-select starting inside a link.
+
 2004-09-23  John Sullivan  <sullivan@apple.com>
 
         Reviewed by Chris.
index 823e967..c830c03 100644 (file)
@@ -10,6 +10,7 @@
 #import <WebKit/WebJavaScriptTextInputPanel.h>
 #import <WebKit/WebView.h>
 #import <WebKit/WebUIDelegatePrivate.h>
+#import <WebKit/DOM.h>
 
 @interface NSApplication (DeclarationStolenFromAppKit)
 - (void)_cycleWindowsReversed:(BOOL)reversed;
@@ -189,6 +190,10 @@ static WebDefaultUIDelegate *sharedDelegate = nil;
 
 - (unsigned)webView:(WebView *)webView dragSourceActionMaskForPoint:(NSPoint)point;
 {
+    DOMElement *elementAtPoint = [[webView elementAtPoint:point] objectForKey:WebElementDOMNodeKey];
+    if ([elementAtPoint respondsToSelector:@selector(isContentEditable)] && [(id)elementAtPoint isContentEditable])
+        return (WebDragSourceActionAny & ~WebDragSourceActionLink);
+
     return WebDragSourceActionAny;
 }