[webkit-changes] cvs commit: WebCore/kwq WebCoreBridge.h
WebCoreBridge.mm
Eric
eseidel at opensource.apple.com
Sat Nov 26 17:50:52 PST 2005
eseidel 05/11/26 17:50:52
Modified: . ChangeLog
kwq WebCoreBridge.h WebCoreBridge.mm
Log:
Bug #: 5230
Submitted by: ap
Reviewed by: mjs
Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=5230
"characterIndexForPoint: not yet implemented"
* kwq/WebCoreBridge.h:
* kwq/WebCoreBridge.mm:
(-[WebCoreBridge firstRectForDOMRange:]):
(-[WebCoreBridge convertNSRangeToDOMRange:]):
(-[WebCoreBridge convertDOMRangeToNSRange:]):
(-[WebCoreBridge characterRangeAtPoint:]):
Revision Changes Path
1.404 +14 -0 WebCore/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /cvs/root/WebCore/ChangeLog,v
retrieving revision 1.403
retrieving revision 1.404
diff -u -r1.403 -r1.404
--- ChangeLog 27 Nov 2005 01:09:58 -0000 1.403
+++ ChangeLog 27 Nov 2005 01:50:41 -0000 1.404
@@ -1,3 +1,17 @@
+2005-11-26 Alexey Proskuryakov <ap at nypop.com>
+
+ Reviewed by mjs.
+
+ Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=5230
+ "characterIndexForPoint: not yet implemented"
+
+ * kwq/WebCoreBridge.h:
+ * kwq/WebCoreBridge.mm:
+ (-[WebCoreBridge firstRectForDOMRange:]):
+ (-[WebCoreBridge convertNSRangeToDOMRange:]):
+ (-[WebCoreBridge convertDOMRangeToNSRange:]):
+ (-[WebCoreBridge characterRangeAtPoint:]):
+
2005-11-26 Mitz Pettel <opendarwin.org at mitzpettel.com>
Reviewed by darin. Committed by eseidel.
1.350 +3 -1 WebCore/kwq/WebCoreBridge.h
Index: WebCoreBridge.h
===================================================================
RCS file: /cvs/root/WebCore/kwq/WebCoreBridge.h,v
retrieving revision 1.349
retrieving revision 1.350
diff -u -r1.349 -r1.350
--- WebCoreBridge.h 19 Nov 2005 01:26:48 -0000 1.349
+++ WebCoreBridge.h 27 Nov 2005 01:50:49 -0000 1.350
@@ -395,7 +395,8 @@
- (void)selectNSRange:(NSRange)range;
- (NSRange)selectedNSRange;
- (NSRange)markedTextNSRange;
-- (DOMRange *)convertToObjCDOMRange:(NSRange)range;
+- (DOMRange *)convertNSRangeToDOMRange:(NSRange)range;
+- (NSRange)convertDOMRangeToNSRange:(DOMRange *)range;
- (DOMDocumentFragment *)documentFragmentWithMarkupString:(NSString *)markupString baseURLString:(NSString *)baseURLString;
- (DOMDocumentFragment *)documentFragmentWithText:(NSString *)text;
@@ -416,6 +417,7 @@
- (void)removeDragCaret;
- (DOMRange *)dragCaretDOMRange;
- (DOMRange *)editableDOMRangeForPoint:(NSPoint)point;
+- (DOMRange *)characterRangeAtPoint:(NSPoint)point;
- (void)deleteSelectionWithSmartDelete:(BOOL)smartDelete;
- (void)deleteKeyPressedWithSmartDelete:(BOOL)smartDelete;
1.433 +32 -2 WebCore/kwq/WebCoreBridge.mm
Index: WebCoreBridge.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/WebCoreBridge.mm,v
retrieving revision 1.432
retrieving revision 1.433
diff -u -r1.432 -r1.433
--- WebCoreBridge.mm 19 Nov 2005 01:26:48 -0000 1.432
+++ WebCoreBridge.mm 27 Nov 2005 01:50:50 -0000 1.433
@@ -1310,7 +1310,7 @@
{
int extraWidthToEndOfLine = 0;
QRect startCaretRect = [[range startContainer] _nodeImpl]->renderer()->caretRect([range startOffset], UPSTREAM, &extraWidthToEndOfLine);
- QRect endCaretRect = [[range startContainer] _nodeImpl]->renderer()->caretRect([range endOffset], UPSTREAM);
+ QRect endCaretRect = [[range endContainer] _nodeImpl]->renderer()->caretRect([range endOffset], UPSTREAM);
if (startCaretRect.y() == endCaretRect.y()) {
// start and end are on the same line
@@ -1681,11 +1681,16 @@
return TextIterator::rangeFromLocationAndLength(_part->xmlDocImpl(), nsrange.location, nsrange.length);
}
-- (DOMRange *)convertToObjCDOMRange:(NSRange)nsrange
+- (DOMRange *)convertNSRangeToDOMRange:(NSRange)nsrange
{
return [DOMRange _rangeWithImpl:[self convertToDOMRange:nsrange]];
}
+- (NSRange)convertDOMRangeToNSRange:(DOMRange *)range
+{
+ return [self convertToNSRange:[range _rangeImpl]];
+}
+
- (void)selectNSRange:(NSRange)range
{
_part->setSelection(SelectionController([self convertToDOMRange:range], khtml::SEL_DEFAULT_AFFINITY, khtml::SEL_DEFAULT_AFFINITY));
@@ -1986,6 +1991,31 @@
return position.isNull() ? nil : [DOMRange _rangeWithImpl:SelectionController(position).toRange().get()];
}
+- (DOMRange *)characterRangeAtPoint:(NSPoint)point
+{
+ VisiblePosition position = [self _visiblePositionForPoint:point];
+ if (position.isNull())
+ return nil;
+
+ VisiblePosition previous = position.previous();
+ if (previous.isNotNull()) {
+ DOMRange *previousCharacterRange = [DOMRange _rangeWithImpl:makeRange(previous, position).get()];
+ NSRect rect = [self firstRectForDOMRange:previousCharacterRange];
+ if (NSPointInRect(point, rect))
+ return previousCharacterRange;
+ }
+
+ VisiblePosition next = position.next();
+ if (next.isNotNull()) {
+ DOMRange *nextCharacterRange = [DOMRange _rangeWithImpl:makeRange(position, next).get()];
+ NSRect rect = [self firstRectForDOMRange:nextCharacterRange];
+ if (NSPointInRect(point, rect))
+ return nextCharacterRange;
+ }
+
+ return nil;
+}
+
- (void)deleteSelectionWithSmartDelete:(BOOL)smartDelete
{
if (!partHasSelection(self))
More information about the webkit-changes
mailing list