]> git.saurik.com Git - wxWidgets.git/commitdiff
Switched off some buggy optimisation that caused caret positioning/drawn text mismatch.
authorJulian Smart <julian@anthemion.co.uk>
Tue, 16 Sep 2008 10:58:32 +0000 (10:58 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Tue, 16 Sep 2008 10:58:32 +0000 (10:58 +0000)
Fixed defragmentation.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55653 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/richtext/richtextbuffer.h
src/richtext/richtextbuffer.cpp

index 096ad1a6a34a2505aa65019da208929fdae427e1..2249f4bdfcca5e46b08b4111af0b70d348585779 100644 (file)
@@ -80,7 +80,9 @@
 #define wxRICHTEXT_USE_OWN_CARET 0
 
 // Switch off for binary compatibility, on for faster drawing
-#define wxRICHTEXT_USE_OPTIMIZED_LINE_DRAWING 1
+// Note: this seems to be buggy (overzealous use of extents) so
+// don't use for now
+#define wxRICHTEXT_USE_OPTIMIZED_LINE_DRAWING 0
 
 /*!
  * Special characters
index 1362fab7092a822153d558ac57a8634288df701a..3b3e0e03865f3fbd809c29a2e14a164ef71a9b31 100644 (file)
@@ -57,6 +57,7 @@ const wxChar wxRichTextLineBreakChar = (wxChar) 29;
 
 inline void wxCheckSetFont(wxDC& dc, const wxFont& font)
 {
+#if 0
     const wxFont& font1 = dc.GetFont();
     if (font1.IsOk() && font.IsOk())
     {
@@ -68,6 +69,7 @@ inline void wxCheckSetFont(wxDC& dc, const wxFont& font)
             font1.GetFaceName() == font.GetFaceName())
             return;
     }
+#endif
     dc.SetFont(font);
 }
 
@@ -431,7 +433,7 @@ bool wxRichTextCompositeObject::Defragment(const wxRichTextRange& range)
     while (node)
     {
         wxRichTextObject* child = node->GetData();
-        if (!child->GetRange().IsOutside(range))
+        if (range == wxRICHTEXT_ALL || !child->GetRange().IsOutside(range))
         {
             wxRichTextCompositeObject* composite = wxDynamicCast(child, wxRichTextCompositeObject);
             if (composite)