Reviewed by Dave.
authormjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 10 Jun 2004 05:28:28 +0000 (05:28 +0000)
committermjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 10 Jun 2004 05:28:28 +0000 (05:28 +0000)
<rdar://problem/3671555>: Blot scrolls to the top every time you type

        * khtml/xml/dom_selection.cpp:
        (DOM::Selection::getRepaintRect): If the caret position is invalid, recompute it.

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

WebCore/ChangeLog-2005-08-23
WebCore/khtml/editing/SelectionController.cpp
WebCore/khtml/editing/selection.cpp
WebCore/khtml/xml/dom_selection.cpp

index bba8af6..7d964b8 100644 (file)
@@ -1,3 +1,12 @@
+2004-06-09  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Dave.
+
+       <rdar://problem/3671555>: Blot scrolls to the top every time you type
+       
+        * khtml/xml/dom_selection.cpp:
+        (DOM::Selection::getRepaintRect): If the caret position is invalid, recompute it.
+
 2004-06-09  David Hyatt  <hyatt@apple.com>
 
        Fix for 3607091, implement a style that prevents zoom and min font size from taking effect.
index 178f9fb..d760d8f 100644 (file)
@@ -454,6 +454,10 @@ void Selection::layoutCaret()
 
 QRect Selection::getRepaintRect() const
 {
+    if (m_needsCaretLayout) {
+        const_cast<Selection *>(this)->layoutCaret();
+    }
+
     // EDIT FIXME: fudge a bit to make sure we don't leave behind artifacts
     return QRect(m_caretX - 1, m_caretY - 1, 3, m_caretSize + 2);
 }
index 178f9fb..d760d8f 100644 (file)
@@ -454,6 +454,10 @@ void Selection::layoutCaret()
 
 QRect Selection::getRepaintRect() const
 {
+    if (m_needsCaretLayout) {
+        const_cast<Selection *>(this)->layoutCaret();
+    }
+
     // EDIT FIXME: fudge a bit to make sure we don't leave behind artifacts
     return QRect(m_caretX - 1, m_caretY - 1, 3, m_caretSize + 2);
 }
index 178f9fb..d760d8f 100644 (file)
@@ -454,6 +454,10 @@ void Selection::layoutCaret()
 
 QRect Selection::getRepaintRect() const
 {
+    if (m_needsCaretLayout) {
+        const_cast<Selection *>(this)->layoutCaret();
+    }
+
     // EDIT FIXME: fudge a bit to make sure we don't leave behind artifacts
     return QRect(m_caretX - 1, m_caretY - 1, 3, m_caretSize + 2);
 }