void wxTextEntryBase::DoSetValue(const wxString& value, int flags)
{
- EventsSuppressor noeventsIf(this, !(flags & SetValue_SendEvent));
+ if ( value != DoGetValue() )
+ {
+ EventsSuppressor noeventsIf(this, !(flags & SetValue_SendEvent));
- SelectAll();
- WriteText(value);
+ SelectAll();
+ WriteText(value);
- SetInsertionPoint(0);
+ SetInsertionPoint(0);
+ }
+ else // Same value, no need to do anything.
+ {
+ // Except that we still need to generate the event for consistency with
+ // the normal case when the text does change.
+ if ( flags & SetValue_SendEvent )
+ SendTextUpdatedEvent(GetEditableWindow());
+ }
}
void wxTextEntryBase::Replace(long from, long to, const wxString& value)