summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.cpp')
-rw-r--r--Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.cpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.cpp b/Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.cpp
index 5927430..b9e483c 100644
--- a/Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.cpp
+++ b/Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.cpp
@@ -32,6 +32,7 @@
#include "RenderListMarker.h"
#include "RenderObject.h"
#include "TextIterator.h"
+#include "htmlediting.h"
#include <atk/atk.h>
#include <glib.h>
@@ -230,11 +231,19 @@ static gint webkitAccessibleHyperlinkGetStartIndex(AtkHyperlink* link)
if (!coreObject)
return 0;
+ AccessibilityObject* parentUnignored = coreObject->parentObjectUnignored();
+ if (!parentUnignored)
+ return 0;
+
Node* node = coreObject->node();
if (!node)
return 0;
- RefPtr<Range> range = Range::create(node->document(), firstPositionInNode(node->parentNode()), firstPositionInNode(node));
+ Node* parentNode = parentUnignored->node();
+ if (!parentNode)
+ return 0;
+
+ RefPtr<Range> range = Range::create(node->document(), firstPositionInOrBeforeNode(parentNode), firstPositionInOrBeforeNode(node));
return getRangeLengthForObject(coreObject, range.get());
}
@@ -246,11 +255,19 @@ static gint webkitAccessibleHyperlinkGetEndIndex(AtkHyperlink* link)
if (!coreObject)
return 0;
+ AccessibilityObject* parentUnignored = coreObject->parentObjectUnignored();
+ if (!parentUnignored)
+ return 0;
+
Node* node = coreObject->node();
if (!node)
return 0;
- RefPtr<Range> range = Range::create(node->document(), firstPositionInNode(node->parentNode()), lastPositionInNode(node));
+ Node* parentNode = parentUnignored->node();
+ if (!parentNode)
+ return 0;
+
+ RefPtr<Range> range = Range::create(node->document(), firstPositionInOrBeforeNode(parentNode), lastPositionInOrAfterNode(node));
return getRangeLengthForObject(coreObject, range.get());
}