Fixed a refresh bug due to the optimized refresh rect being calculated incorrectly.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74158 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2013-06-11 10:20:11 +00:00
parent 5833988cb7
commit 93a16a7d51

View File

@@ -11087,13 +11087,16 @@ void wxRichTextAction::UpdateAppearance(long caretPosition, bool sendUpdateEvent
// find the first line which is being drawn at the same position as it was
// before. Since we're talking about a simple insertion, we can assume
// that the rest of the window does not need to be redrawn.
long pos = GetRange().GetStart();
wxRichTextParagraph* para = container->GetParagraphAtPosition(GetPosition());
wxRichTextParagraph* para = container->GetParagraphAtPosition(pos, false /* is not caret pos */);
// Since we support floating layout, we should redraw the whole para instead of just
// the first line touching the invalid range.
if (para)
{
firstY = para->GetPosition().y;
// In case something was drawn above the paragraph,
// such as a line break, allow a little extra.
firstY = para->GetPosition().y - 4;
}
wxRichTextObjectList::compatibility_iterator node = container->GetChildren().Find(para);
@@ -11141,7 +11144,7 @@ void wxRichTextAction::UpdateAppearance(long caretPosition, bool sendUpdateEvent
// Stop, we're now the same as we were
foundEnd = true;
lastY = pt.y;
lastY = pt.y + line->GetSize().y;
node2 = wxRichTextLineList::compatibility_iterator();
node = wxRichTextObjectList::compatibility_iterator();