From: Julian Smart Date: Sat, 28 Oct 2006 09:29:07 +0000 (+0000) Subject: Corrected a clearing bug X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/85d8909ba3b07daa5f2af4f1377d2d26661e1a9a Corrected a clearing bug git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42559 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/richtext/richtextbuffer.h b/include/wx/richtext/richtextbuffer.h index 8ea8b0bbd7..23c9e298e3 100644 --- a/include/wx/richtext/richtextbuffer.h +++ b/include/wx/richtext/richtextbuffer.h @@ -1588,11 +1588,8 @@ public: /// Initialisation void Init(); - /// Clears the buffer and resets the command processor - virtual void Clear(); - - /// The same as Clear, and adds an empty paragraph. - virtual void Reset(); + /// Clears the buffer, adds an empty paragraph, and clears the command processor. + virtual void ResetAndClearCommands(); /// Load a file virtual bool LoadFile(const wxString& filename, int type = wxRICHTEXT_TYPE_ANY); diff --git a/src/richtext/richtextbuffer.cpp b/src/richtext/richtextbuffer.cpp index a73d8825d0..e59021ae52 100644 --- a/src/richtext/richtextbuffer.cpp +++ b/src/richtext/richtextbuffer.cpp @@ -2420,6 +2420,8 @@ void wxRichTextParagraphLayoutBox::Reset() Clear(); AddParagraph(wxEmptyString); + + Invalidate(wxRICHTEXT_ALL); } /// Invalidate the buffer. With no argument, invalidates whole buffer. @@ -4545,19 +4547,12 @@ wxRichTextBuffer::~wxRichTextBuffer() ClearEventHandlers(); } -void wxRichTextBuffer::Clear() +void wxRichTextBuffer::ResetAndClearCommands() { - DeleteChildren(); + Reset(); + GetCommandProcessor()->ClearCommands(); - Modify(false); - Invalidate(wxRICHTEXT_ALL); -} -void wxRichTextBuffer::Reset() -{ - DeleteChildren(); - AddParagraph(wxEmptyString); - GetCommandProcessor()->ClearCommands(); Modify(false); Invalidate(wxRICHTEXT_ALL); } diff --git a/src/richtext/richtextctrl.cpp b/src/richtext/richtextctrl.cpp index c59cbfb851..bf308ffb7a 100644 --- a/src/richtext/richtextctrl.cpp +++ b/src/richtext/richtextctrl.cpp @@ -128,6 +128,7 @@ bool wxRichTextCtrl::Create( wxWindow* parent, wxWindowID id, const wxString& va SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)); } + GetBuffer().Reset(); GetBuffer().SetRichTextCtrl(this); if (style & wxTE_READONLY) @@ -220,7 +221,7 @@ void wxRichTextCtrl::Thaw() /// Clear all text void wxRichTextCtrl::Clear() { - m_buffer.Reset(); + m_buffer.ResetAndClearCommands(); m_buffer.SetDirty(true); m_caretPosition = -1; m_caretPositionForDefaultStyle = -2; @@ -572,7 +573,6 @@ void wxRichTextCtrl::OnChar(wxKeyEvent& event) EndBatchUndo(); - // Shouldn't this be in Do()? if (GetLastPosition() == -1) { GetBuffer().Reset(); @@ -601,7 +601,6 @@ void wxRichTextCtrl::OnChar(wxKeyEvent& event) EndBatchUndo(); - // Shouldn't this be in Do()? if (GetLastPosition() == -1) { GetBuffer().Reset(); diff --git a/src/richtext/richtextxml.cpp b/src/richtext/richtextxml.cpp index 801c5d2fbc..82170da836 100644 --- a/src/richtext/richtextxml.cpp +++ b/src/richtext/richtextxml.cpp @@ -41,7 +41,7 @@ bool wxRichTextXMLHandler::DoLoadFile(wxRichTextBuffer *buffer, wxInputStream& s if (!stream.IsOk()) return false; - buffer->Clear(); + buffer->ResetAndClearCommands(); wxXmlDocument* xmlDoc = new wxXmlDocument; bool success = true;