Hi,

I'm new to the list, so hope this is the right place for my question. Feel free to redirect me to more appropriate one if it's not.

In the content editing mode is there a way to programmatically select _outer_ representation of a HTML tag, e.g. <p>, so that when we call one of the replaceSelectionWith*() methods, the selected tag is replaced as a whole?

I'm trying to use setSelectedDOMRange() like this:

DOMRange* range = ...;
range->setStartBefore(paragraphToReplace);
range->setEndAfter(paragraphToReplace);

webView->replaceSelectionWithNode(replacementParagraph);

But this has unpleasant side effects: any adjacent tags are merged into the newly inserted paragraph. And this can be quite annoying as it would happily convert any adjacent <h1> into <span>, while preserving the look, but not semantics of HTML.

I understand this happens because in its internals WebKit uses visual caret positions, so selecting past the end of a <p> contents inevitably wraps upto contents of any following tag.

But what can I do about that? I cannot seem to find a workaround even after stepping through WebCore code for a few days now.

Any help is greatly appreciated!
--
Alex
_______________________________________________
webkit-help mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-help

Reply via email to