diff --git a/include/wx/clrpicker.h b/include/wx/clrpicker.h index 3be8c2f764..9228596daa 100644 --- a/include/wx/clrpicker.h +++ b/include/wx/clrpicker.h @@ -98,7 +98,7 @@ protected: class WXDLLIMPEXP_CORE wxColourPickerCtrl : public wxPickerBase { public: - wxColourPickerCtrl() : m_bIgnoreNextTextCtrlUpdate(false) {} + wxColourPickerCtrl() {} virtual ~wxColourPickerCtrl() {} @@ -107,7 +107,6 @@ public: const wxSize& size = wxDefaultSize, long style = wxCLRP_DEFAULT_STYLE, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxColourPickerCtrlNameStr) - : m_bIgnoreNextTextCtrlUpdate(false) { Create(parent, id, col, pos, size, style, validator, name); } bool Create(wxWindow *parent, wxWindowID id, @@ -148,9 +147,6 @@ protected: virtual long GetPickerStyle(long style) const { return (style & wxCLRP_SHOW_LABEL); } - // true if the next UpdateTextCtrl() call is to ignore - bool m_bIgnoreNextTextCtrlUpdate; - private: DECLARE_DYNAMIC_CLASS(wxColourPickerCtrl) }; diff --git a/include/wx/filepicker.h b/include/wx/filepicker.h index b1502d0f0e..7445ff6c89 100644 --- a/include/wx/filepicker.h +++ b/include/wx/filepicker.h @@ -148,7 +148,7 @@ protected: class WXDLLIMPEXP_CORE wxFileDirPickerCtrlBase : public wxPickerBase { public: - wxFileDirPickerCtrlBase() : m_bIgnoreNextTextCtrlUpdate(false) {} + wxFileDirPickerCtrlBase() {} protected: // NB: no default values since this function will never be used @@ -209,9 +209,6 @@ protected: protected: - // true if the next UpdateTextCtrl() call is to ignore - bool m_bIgnoreNextTextCtrlUpdate; - // m_picker object as wxFileDirPickerWidgetBase interface wxFileDirPickerWidgetBase *m_pickerIface; }; diff --git a/include/wx/fontpicker.h b/include/wx/fontpicker.h index 243e613871..d08b9e850d 100644 --- a/include/wx/fontpicker.h +++ b/include/wx/fontpicker.h @@ -100,8 +100,7 @@ class WXDLLIMPEXP_CORE wxFontPickerCtrl : public wxPickerBase { public: wxFontPickerCtrl() - : m_bIgnoreNextTextCtrlUpdate(false), - m_nMaxPointSize(wxFNTP_MAXPOINT_SIZE) + : m_nMaxPointSize(wxFNTP_MAXPOINT_SIZE) { } @@ -116,8 +115,7 @@ public: long style = wxFNTP_DEFAULT_STYLE, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxFontPickerCtrlNameStr) - : m_bIgnoreNextTextCtrlUpdate(false), - m_nMaxPointSize(wxFNTP_MAXPOINT_SIZE) + : m_nMaxPointSize(wxFNTP_MAXPOINT_SIZE) { Create(parent, id, initial, pos, size, style, validator, name); } @@ -165,9 +163,6 @@ protected: long GetPickerStyle(long style) const { return (style & (wxFNTP_FONTDESC_AS_LABEL|wxFNTP_USEFONT_FOR_LABEL)); } - // true if the next UpdateTextCtrl() call is to ignore - bool m_bIgnoreNextTextCtrlUpdate; - // the maximum pointsize allowed to the user unsigned int m_nMaxPointSize; diff --git a/src/common/clrpickercmn.cpp b/src/common/clrpickercmn.cpp index 510488dd11..9420551b5a 100644 --- a/src/common/clrpickercmn.cpp +++ b/src/common/clrpickercmn.cpp @@ -96,13 +96,6 @@ void wxColourPickerCtrl::UpdatePickerFromTextCtrl() { wxASSERT(m_text); - if (m_bIgnoreNextTextCtrlUpdate) - { - // ignore this update - m_bIgnoreNextTextCtrlUpdate = false; - return; - } - // wxString -> wxColour conversion wxColour col(m_text->GetValue()); if ( !col.IsOk() ) @@ -123,11 +116,9 @@ void wxColourPickerCtrl::UpdateTextCtrlFromPicker() if (!m_text) return; // no textctrl to update - // NOTE: this SetValue() will generate an unwanted wxEVT_COMMAND_TEXT_UPDATED - // which will trigger a unneeded UpdateFromTextCtrl(); thus before using - // SetValue() we set the m_bIgnoreNextTextCtrlUpdate flag... - m_bIgnoreNextTextCtrlUpdate = true; - m_text->SetValue(M_PICKER->GetColour().GetAsString()); + // Take care to use ChangeValue() here and not SetValue() to avoid + // infinite recursion. + m_text->ChangeValue(M_PICKER->GetColour().GetAsString()); } diff --git a/src/common/filepickercmn.cpp b/src/common/filepickercmn.cpp index 99cbb13d11..49abded37f 100644 --- a/src/common/filepickercmn.cpp +++ b/src/common/filepickercmn.cpp @@ -115,13 +115,6 @@ void wxFileDirPickerCtrlBase::UpdatePickerFromTextCtrl() { wxASSERT(m_text); - if (m_bIgnoreNextTextCtrlUpdate) - { - // ignore this update - m_bIgnoreNextTextCtrlUpdate = false; - return; - } - // remove the eventually present path-separator from the end of the textctrl // string otherwise we would generate a wxFileDirPickerEvent when changing // from e.g. /home/user to /home/user/ and we want to avoid it ! @@ -150,11 +143,10 @@ void wxFileDirPickerCtrlBase::UpdateTextCtrlFromPicker() if (!m_text) return; // no textctrl to update - // NOTE: this SetValue() will generate an unwanted wxEVT_COMMAND_TEXT_UPDATED - // which will trigger a unneeded UpdateFromTextCtrl(); thus before using - // SetValue() we set the m_bIgnoreNextTextCtrlUpdate flag... - m_bIgnoreNextTextCtrlUpdate = true; - m_text->SetValue(m_pickerIface->GetPath()); + // Take care to use ChangeValue() here and not SetValue() to avoid + // generating an event that would trigger UpdateTextCtrlFromPicker() + // resulting in infinite recursion. + m_text->ChangeValue(m_pickerIface->GetPath()); } diff --git a/src/common/fontpickercmn.cpp b/src/common/fontpickercmn.cpp index 6718668c01..107d8c7a14 100644 --- a/src/common/fontpickercmn.cpp +++ b/src/common/fontpickercmn.cpp @@ -125,13 +125,6 @@ void wxFontPickerCtrl::UpdatePickerFromTextCtrl() { wxASSERT(m_text); - if (m_bIgnoreNextTextCtrlUpdate) - { - // ignore this update - m_bIgnoreNextTextCtrlUpdate = false; - return; - } - // NB: we don't use the wxFont::wxFont(const wxString &) constructor // since that constructor expects the native font description // string returned by wxFont::GetNativeFontInfoDesc() and not @@ -155,11 +148,9 @@ void wxFontPickerCtrl::UpdateTextCtrlFromPicker() if (!m_text) return; // no textctrl to update - // NOTE: this SetValue() will generate an unwanted wxEVT_COMMAND_TEXT_UPDATED - // which will trigger a unneeded UpdateFromTextCtrl(); thus before using - // SetValue() we set the m_bIgnoreNextTextCtrlUpdate flag... - m_bIgnoreNextTextCtrlUpdate = true; - m_text->SetValue(Font2String(M_PICKER->GetSelectedFont())); + // Take care to use ChangeValue() here and not SetValue() to avoid + // infinite recursion. + m_text->ChangeValue(Font2String(M_PICKER->GetSelectedFont())); }