From: Julian Smart Date: Tue, 16 Sep 2008 10:58:32 +0000 (+0000) Subject: Switched off some buggy optimisation that caused caret positioning/drawn text mismatch. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/5cb0b827f11ccf2a8e570b3b361a1daf0e5eed76?ds=inline Switched off some buggy optimisation that caused caret positioning/drawn text mismatch. Fixed defragmentation. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55653 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/richtext/richtextbuffer.h b/include/wx/richtext/richtextbuffer.h index 096ad1a6a3..2249f4bdfc 100644 --- a/include/wx/richtext/richtextbuffer.h +++ b/include/wx/richtext/richtextbuffer.h @@ -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 diff --git a/src/richtext/richtextbuffer.cpp b/src/richtext/richtextbuffer.cpp index 1362fab709..3b3e0e0386 100644 --- a/src/richtext/richtextbuffer.cpp +++ b/src/richtext/richtextbuffer.cpp @@ -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)