[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