2011-04-11 Mario Sanchez Prada <msanchez@igalia.com>
Reviewed by Chris Fleizach.
[Gtk] Implement support for Embedded Objects
https://bugs.webkit.org/show_bug.cgi?id=52148
Expose special OBJECT character for replaced elements, implementing
AtkText and AtkHyperlink when required.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::textIteratorBehaviorForTextRange): New helper function,
to return the right behavior, depending on the platform, so it
ensures that object replacement characters get emitted for GTK.
(WebCore::AccessibilityRenderObject::textUnderElement): Use the
new helper function textIteratorBehaviorForTextRange.
(WebCore::AccessibilityRenderObject::stringValue): Ditto.
(WebCore::AccessibilityRenderObject::indexForVisiblePosition):
Consider replaced elements when calculating range length in GTK.
* accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
(textForRenderer): Ouput the 'object replacement character' for
replaced objects.
(getSelectionOffsetsForObject): Consider replaced elements when
calculating range length in GTK.
(webkitAccessibleHypertextGetLink): Remove wrong extra check that
were causing only links to be considered.
(webkitAccessibleHypertextGetNLinks): Replace wrong 'isLink()'
check with the right one, by checking that the right ATK interface
is being implemented by the AtkObject.
(getInterfaceMaskFromObject): Implement the Hyperlink interface
both for links and replaced objects.
(objectAndOffsetUnignored): Consider replaced elements when
calculating range length in GTK.
* accessibility/gtk/WebKitAccessibleHyperlink.cpp:
(getRangeLengthForObject): Ensure spaces are used for replaced
elements when calling to TextIterator::rangeLength().
* editing/TextIterator.h: New value in the TextIteratorBehavior
enumeration (TextIteratorEmitsObjectReplacementCharacters) and new
private variable to consider that new option internally.
* editing/TextIterator.cpp:
(WebCore::TextIterator::TextIterator): Initialize the new private
attribute m_emitsObjectReplacementCharacters in constructors.
(WebCore::TextIterator::handleReplacedElement): Emit the 'object
replacement character' when m_emitsObjectReplacementCharacters.
2011-04-11 Mario Sanchez Prada <msanchez@igalia.com>
Reviewed by Chris Fleizach.
[Gtk] Implement support for Embedded Objects
https://bugs.webkit.org/show_bug.cgi?id=52148
New accessibility unit test for embedded objects.
* tests/testatk.c:
(testWebkitAtkEmbeddedObjects): New unit test.
(main): Added the new unit test.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@83493 268f45cc-cd09-0410-ab3c-d52691b4dbfc
8 files changed