[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677
hyatt
hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:59:55 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit bf52b2d368221542249d2a627fbbec5fc747ecbe
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Wed Oct 8 01:49:32 2003 +0000
Fix for link dragging regression in the titles of links. More accessibility
improvements.
Reviewed by darin
* khtml/khtml_part.cpp:
(KHTMLPart::text):
* kwq/KWQAccObject.mm:
(-[KWQAccObject role]):
(-[KWQAccObject roleDescription]):
(-[KWQAccObject helpText]):
(-[KWQAccObject textUnderElement]):
(-[KWQAccObject value]):
(-[KWQAccObject title]):
(-[KWQAccObject accessibilityIsIgnored]):
(-[KWQAccObject accessibilityAttributeValue:]):
* kwq/WebCoreBridge.mm:
(-[WebCoreBridge elementAtPoint:]):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@5146 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index ef4d6c2..15d6028 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,24 @@
+2003-10-07 David Hyatt <hyatt at apple.com>
+
+ Fix for link dragging regression in the titles of links. More accessibility
+ improvements.
+
+ Reviewed by darin
+
+ * khtml/khtml_part.cpp:
+ (KHTMLPart::text):
+ * kwq/KWQAccObject.mm:
+ (-[KWQAccObject role]):
+ (-[KWQAccObject roleDescription]):
+ (-[KWQAccObject helpText]):
+ (-[KWQAccObject textUnderElement]):
+ (-[KWQAccObject value]):
+ (-[KWQAccObject title]):
+ (-[KWQAccObject accessibilityIsIgnored]):
+ (-[KWQAccObject accessibilityAttributeValue:]):
+ * kwq/WebCoreBridge.mm:
+ (-[WebCoreBridge elementAtPoint:]):
+
2003-10-07 Ken Kocienda <kocienda at apple.com>
Reviewed by Darin
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index ef4d6c2..15d6028 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,24 @@
+2003-10-07 David Hyatt <hyatt at apple.com>
+
+ Fix for link dragging regression in the titles of links. More accessibility
+ improvements.
+
+ Reviewed by darin
+
+ * khtml/khtml_part.cpp:
+ (KHTMLPart::text):
+ * kwq/KWQAccObject.mm:
+ (-[KWQAccObject role]):
+ (-[KWQAccObject roleDescription]):
+ (-[KWQAccObject helpText]):
+ (-[KWQAccObject textUnderElement]):
+ (-[KWQAccObject value]):
+ (-[KWQAccObject title]):
+ (-[KWQAccObject accessibilityIsIgnored]):
+ (-[KWQAccObject accessibilityAttributeValue:]):
+ * kwq/WebCoreBridge.mm:
+ (-[WebCoreBridge elementAtPoint:]):
+
2003-10-07 Ken Kocienda <kocienda at apple.com>
Reviewed by Darin
diff --git a/WebCore/khtml/khtml_part.cpp b/WebCore/khtml/khtml_part.cpp
index 2457cdf..ce0ecd2 100644
--- a/WebCore/khtml/khtml_part.cpp
+++ b/WebCore/khtml/khtml_part.cpp
@@ -2229,7 +2229,20 @@ QString KHTMLPart::text(const DOM::Range &r) const
bool hasNewLine = true;
bool addedSpace = true;
QString text;
- DOM::Node n = r.startContainer();
+ DOM::Node startNode = r.startContainer();
+ DOM::Node endNode = r.endContainer();
+ int startOffset = r.startOffset();
+ int endOffset = r.endOffset();
+ if (!startNode.isNull() && startNode.nodeType() == DOM::Node::ELEMENT_NODE) {
+ startOffset = -1;
+ startNode = !startNode.childNodes().isNull() ? startNode.childNodes().item(r.startOffset()) : Node();
+ }
+ if (!endNode.isNull() && endNode.nodeType() == DOM::Node::ELEMENT_NODE) {
+ endOffset = -1;
+ endNode = !endNode.childNodes().isNull() ? endNode.childNodes().item(r.endOffset()-1) : Node();
+ }
+
+ DOM::Node n = startNode;
while(!n.isNull()) {
if(n.nodeType() == DOM::Node::TEXT_NODE) {
if (hasNewLine) {
@@ -2237,8 +2250,8 @@ QString KHTMLPart::text(const DOM::Range &r) const
hasNewLine = false;
}
QString str = n.nodeValue().string();
- int start = (n == r.startContainer()) ? r.startOffset() : -1;
- int end = (n == r.endContainer()) ? r.endOffset() : -1;
+ int start = (n == startNode) ? startOffset : -1;
+ int end = (n == endNode) ? endOffset : -1;
RenderObject* renderer = n.handle()->renderer();
if (renderer && renderer->isText()) {
if (renderer->style()->whiteSpace() == khtml::PRE) {
@@ -2324,7 +2337,7 @@ QString KHTMLPart::text(const DOM::Range &r) const
break;
}
}
- if(n == r.endContainer()) break;
+ if(n == endNode) break;
DOM::Node next = n.firstChild();
if(next.isNull()) next = n.nextSibling();
while( next.isNull() && !n.parentNode().isNull() ) {
diff --git a/WebCore/kwq/KWQAccObject.mm b/WebCore/kwq/KWQAccObject.mm
index ce86223..fc7502a 100644
--- a/WebCore/kwq/KWQAccObject.mm
+++ b/WebCore/kwq/KWQAccObject.mm
@@ -33,6 +33,7 @@
#import "dom_string.h"
#import "dom2_range.h"
#import "htmlattrs.h"
+#import "htmltags.h"
#import "khtmlview.h"
#import "khtml_part.h"
#import "render_canvas.h"
@@ -191,12 +192,13 @@ using khtml::RenderWidget;
if (m_renderer->element() && m_renderer->element()->hasAnchor())
return NSAccessibilityButtonRole;
+ if (m_renderer->element() && m_renderer->element()->isHTMLElement() &&
+ Node(m_renderer->element()).elementId() == ID_BUTTON)
+ return NSAccessibilityButtonRole;
if (m_renderer->isText())
return NSAccessibilityStaticTextRole;
if (m_renderer->isImage())
- return NSAccessibilityImageRole;
- if (m_renderer->isListMarker()) // FIXME: Can be an image/bullet or can be text.
- return NSAccessibilityStaticTextRole;
+ return NSAccessibilityButtonRole;
if (m_renderer->isCanvas())
return NSAccessibilityGroupRole;
if (m_renderer->isTable() || m_renderer->isTableCell())
@@ -210,43 +212,84 @@ using khtml::RenderWidget;
if (!m_renderer)
return nil;
- if (m_renderer->element() && m_renderer->element()->isHTMLElement()) {
- QString title = static_cast<ElementImpl*>(m_renderer->element())->getAttribute(ATTR_TITLE).string();
- if (!title.isEmpty())
- return title.getNSString();
+ return UI_STRING("Testing role description", "not real yet");
+}
+
+-(NSString*)helpText
+{
+ if (!m_renderer)
+ return nil;
+
+ for (RenderObject* curr = m_renderer; curr; curr = curr->parent()) {
+ if (curr->element() && curr->element()->isHTMLElement()) {
+ QString title = static_cast<ElementImpl*>(curr->element())->getAttribute(ATTR_TITLE).string();
+ if (!title.isEmpty())
+ return title.getNSString();
+ }
}
- return UI_STRING("Testing role description", "not real yet");
+ return nil;
}
--(NSString*)value
+-(NSString*)textUnderElement
{
if (!m_renderer)
return nil;
- if (m_renderer->isText()) {
- NodeImpl *e = m_renderer->element();
- DocumentImpl *d = m_renderer->document();
- if (e && d) {
- KHTMLView *v = d->view();
- if (v) {
- KHTMLPart *p = v->part();
- if (p) {
- Range r(p->document());
+ NodeImpl* e = m_renderer->element();
+ DocumentImpl* d = m_renderer->document();
+ if (e && d) {
+ KHTMLView* v = d->view();
+ if (v) {
+ KHTMLPart* p = v->part();
+ if (p) {
+ Range r(p->document());
+ if (m_renderer->isText()) {
r.setStartBefore(e);
r.setEndAfter(e);
return p->text(r).getNSString();
}
+ if (e->firstChild()) {
+ r.setStartBefore(e->firstChild());
+ r.setEndAfter(e->lastChild());
+ return p->text(r).getNSString();
+ }
}
}
}
+
+ return nil;
+}
+
+-(NSString*)value
+{
+ if (!m_renderer)
+ return nil;
+
+ if (m_renderer->isText())
+ return [self textUnderElement];
return UI_STRING("Value not implemented yet.", "not real yet");
}
-(NSString*)title
{
- return UI_STRING("Title not implemented yet.", "not real yet");
+ if (!m_renderer)
+ return nil;
+
+ if (m_renderer->isImage()) {
+ if (m_renderer->element() && m_renderer->element()->isHTMLElement()) {
+ QString alt = static_cast<ElementImpl*>(m_renderer->element())->getAttribute(ATTR_ALT).string();
+ return !alt.isEmpty() ? alt.getNSString() : nil;
+ }
+ }
+ else if (m_renderer->element() && m_renderer->element()->isHTMLElement() &&
+ Node(m_renderer->element()).elementId() == ID_BUTTON)
+ return [self textUnderElement];
+ else if (m_renderer->element() && m_renderer->element()->hasAnchor())
+ return [self textUnderElement];
+
+ return nil;
}
-(NSValue*)position
@@ -263,12 +306,14 @@ using khtml::RenderWidget;
{
if (!m_renderer || m_renderer->style()->visibility() != khtml::VISIBLE)
return YES;
-
+
if (m_renderer->element() && m_renderer->element()->hasAnchor())
return NO;
return (!m_renderer->isCanvas() && !m_renderer->isTable() && !m_renderer->isTableCell() &&
- !m_renderer->isImage() && !m_renderer->isText() && !m_renderer->isListMarker());
+ !m_renderer->isImage() && !m_renderer->isText() &&
+ !(m_renderer->element() && m_renderer->element()->isHTMLElement() &&
+ Node(m_renderer->element()).elementId() == ID_BUTTON));
}
- (NSArray *)accessibilityAttributeNames
@@ -329,8 +374,8 @@ using khtml::RenderWidget;
return [self value];
if ([attributeName isEqualToString: NSAccessibilityHelpAttribute])
- return @"Help";
-
+ return [self helpText];
+
if ([attributeName isEqualToString: NSAccessibilityFocusedAttribute])
return [NSNumber numberWithBool: (m_renderer->element() && m_renderer->document()->focusNode() == m_renderer->element())];
diff --git a/WebCore/kwq/WebCoreBridge.mm b/WebCore/kwq/WebCoreBridge.mm
index 785e93a..a0a17d6 100644
--- a/WebCore/kwq/WebCoreBridge.mm
+++ b/WebCore/kwq/WebCoreBridge.mm
@@ -722,12 +722,14 @@ static HTMLFormElementImpl *formElementFromDOMElement(id <WebDOMElement>element)
DOMString link = e->getAttribute(ATTR_HREF);
if (!link.isNull()) {
- Range r(_part->document());
- r.setStartBefore(e->firstChild());
- r.setEndAfter(e->lastChild());
- QString t = _part->text(r);
- if (!t.isEmpty()) {
- [element setObject:t.getNSString() forKey:WebCoreElementLinkLabelKey];
+ if (e->firstChild()) {
+ Range r(_part->document());
+ r.setStartBefore(e->firstChild());
+ r.setEndAfter(e->lastChild());
+ QString t = _part->text(r);
+ if (!t.isEmpty()) {
+ [element setObject:t.getNSString() forKey:WebCoreElementLinkLabelKey];
+ }
}
[element setObject:_part->xmlDocImpl()->completeURL(link.string()).getNSString() forKey:WebCoreElementLinkURLKey];
}
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list