- fixed these two bugs (I also fixed these on the experimental-ui-branch)
authorsullivan <sullivan@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 12 Apr 2005 15:53:17 +0000 (15:53 +0000)
committersullivan <sullivan@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 12 Apr 2005 15:53:17 +0000 (15:53 +0000)
        <rdar://problem/3154293> Find Next should not scroll page if the next target is already visible
        <rdar://problem/3121828> scrollToVisible on find cuts off the left part of the view due to needless horiz. scroll

        Reviewed by Chris.

        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::jumpToSelection):
        Trey had written code to address these issues, but left it commented out due to other
        problems. The other problems no longer occur, so I uncommented Trey's code, and then
        discovered that I could make it behave more like TextEdit with many fewer lines of
        code.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@9000 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog-2005-08-23
WebCore/kwq/KWQKHTMLPart.mm

index effb8b4f74b78611df71e9a302120f2a9a64193b..390fe9186063f67c42330a111879a997bfecd88f 100644 (file)
@@ -1,3 +1,18 @@
+2005-04-12  John Sullivan  <sullivan@apple.com>
+
+        - fixed these two bugs (I also fixed these on the experimental-ui-branch)
+        <rdar://problem/3154293> Find Next should not scroll page if the next target is already visible
+        <rdar://problem/3121828> scrollToVisible on find cuts off the left part of the view due to needless horiz. scroll
+
+        Reviewed by Chris.
+
+        * kwq/KWQKHTMLPart.mm:
+        (KWQKHTMLPart::jumpToSelection):
+        Trey had written code to address these issues, but left it commented out due to other
+        problems. The other problems no longer occur, so I uncommented Trey's code, and then
+        discovered that I could make it behave more like TextEdit with many fewer lines of
+        code.
+
 2005-04-08  David Harrison  <harrison@apple.com>
 
         Reviewed by Dave Hyatt.
index 4d76e112eeeac4af617f20c812fe27be32fa3f96..f58ec636c24ef2e6ba4e8ccffd00210f1d9322c9 100644 (file)
@@ -904,37 +904,10 @@ void KWQKHTMLPart::unfocusWindow()
 
 void KWQKHTMLPart::jumpToSelection()
 {
-    // Assumes that selection start will only ever be a text node. This is currently
-    // true, but will it always be so?
     if (d->m_selection.start().isNotNull()) {
-        RenderText *rt = dynamic_cast<RenderText *>(d->m_selection.start().node()->renderer());
-        if (rt) {
-            int x = 0, y = 0;
-            rt->posOfChar(d->m_selection.start().offset(), x, y);
-            // The -50 offset is copied from KHTMLPart::findTextNext, which sets the contents position
-            // after finding a matched text string.
-            d->m_view->setContentsPos(x - 50, y - 50);
-        }
-/*
-        Something like this would fix <rdar://problem/3154293>: "Find Next should not scroll page if the next target is already visible"
-
-        I think this would be a better way to do this, to avoid needless horizontal scrolling,
-        but it is not feasible until selectionRect() returns a tighter rect around the
-        selected text.  Right now it works at element granularity.
-        NSView *docView = d->m_view->getDocumentView();
-
        KWQ_BLOCK_EXCEPTIONS;
-        NSRect selRect = NSRect(selectionRect());
-        NSRect visRect = [docView visibleRect];
-        if (!NSContainsRect(visRect, selRect)) {
-            // pad a bit so we overscroll slightly
-            selRect = NSInsetRect(selRect, -10.0, -10.0);
-            selRect = NSIntersectionRect(selRect, [docView bounds]);
-            [docView scrollRectToVisible:selRect];
-        }
+        [d->m_view->getDocumentView() _KWQ_scrollRectToVisible:NSRect(selectionRect()) forceCentering:NO];
        KWQ_UNBLOCK_EXCEPTIONS;
-*/
     }
 }