From 9b4af7b7de01fe800e6aa5e37cdb5927017a8193 Mon Sep 17 00:00:00 2001
From: Julian Smart <julian@anthemion.co.uk>
Date: Thu, 25 Oct 2007 16:13:47 +0000
Subject: [PATCH] Fixed bug in optimization for character input, affecting
 first paragraph in the buffer.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49436 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 src/richtext/richtextbuffer.cpp | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/richtext/richtextbuffer.cpp b/src/richtext/richtextbuffer.cpp
index c8547b38a2..de36d33ceb 100644
--- a/src/richtext/richtextbuffer.cpp
+++ b/src/richtext/richtextbuffer.cpp
@@ -595,7 +595,7 @@ bool wxRichTextParagraphLayoutBox::Layout(wxDC& dc, const wxRect& rect, int styl
     if (invalidRange == wxRICHTEXT_ALL)
         layoutAll = true;
     else    // If we know what range is affected, start laying out from that point on.
-        if (invalidRange.GetStart() > GetRange().GetStart())
+        if (invalidRange.GetStart() >= GetRange().GetStart())
     {
         wxRichTextParagraph* firstParagraph = GetParagraphAtPosition(invalidRange.GetStart());
         if (firstParagraph)
@@ -604,10 +604,13 @@ bool wxRichTextParagraphLayoutBox::Layout(wxDC& dc, const wxRect& rect, int styl
             wxRichTextObjectList::compatibility_iterator previousNode;
             if ( firstNode )
                 previousNode = firstNode->GetPrevious();
-            if (firstNode && previousNode)
+            if (firstNode)
             {
-                wxRichTextParagraph* previousParagraph = wxDynamicCast(previousNode->GetData(), wxRichTextParagraph);
-                availableSpace.y = previousParagraph->GetPosition().y + previousParagraph->GetCachedSize().y;
+                if (previousNode)
+                {
+                    wxRichTextParagraph* previousParagraph = wxDynamicCast(previousNode->GetData(), wxRichTextParagraph);
+                    availableSpace.y = previousParagraph->GetPosition().y + previousParagraph->GetCachedSize().y;
+                }
 
                 // Now we're going to start iterating from the first affected paragraph.
                 node = firstNode;
-- 
2.47.2