Reviewed by Chris
[WebKit-https.git] / WebCore / khtml / rendering / render_box.cpp
index d0b656432d28328b16cf4e7ecee74c27ceb67e09..c807a63022ca95be400f1e516ea6c44a77c2e65f 100644 (file)
@@ -1491,9 +1491,14 @@ void RenderBox::caretPos(int offset, bool override, int &_x, int &_y, int &width
         width = override && offset == 0 ? m_width : 1;
         // If height of box is smaller than font height, use the latter one,
         // otherwise the caret might become invisible.
+        // 
+        // Also, if the box is not a replaced element, always use the font height.
+        // This prevents the "big caret" bug described in:
+        // <rdar://problem/3777804> Deleting all content in a document can result in giant tall-as-window insertion point
+        //
         // FIXME: ignoring :first-line, missing good reason to take care of
         int fontHeight = style()->fontMetrics().height();
-        if (fontHeight > height)
+        if (fontHeight > height || !isReplaced())
             height = fontHeight;
         
         int absx, absy;