- // gtk_entry_set_text() emits two "changed" signals because internally
- // it calls gtk_editable_delete_text() and gtk_editable_insert_text()
- // but we want to have only one event
- IgnoreNextTextUpdate();
+ // gtk_entry_set_text() emits two "changed" signals if the control is
+ // not empty because internally it calls gtk_editable_delete_text() and
+ // gtk_editable_insert_text()
+ if ( flags & SetValue_SendEvent )
+ {
+ if ( !GetValue().empty() )
+ IgnoreNextTextUpdate();
+ }
+ else
+ {
+ if ( !GetValue().empty() )
+ IgnoreNextTextUpdate(2);
+ else
+ IgnoreNextTextUpdate(1); // if we are empty, skip only one event
+ }