diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index 661c26d..635450b 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -525,6 +525,21 @@ void yon_on_email_check(GtkEntry *self,GdkEventFocus *event,GtkContainer *status } } +void yon_on_space_first_changed(GtkEntry *editable){ + const char *text = gtk_entry_get_text(editable); + gchar *new_text = yon_char_new(text); + if (new_text[0]==' ') free(yon_char_divide(new_text,0)); + + if (strlen(new_text) < strlen(text)) { + g_signal_handlers_block_by_func(editable, G_CALLBACK(yon_on_space_first_changed), NULL); + gtk_entry_set_text(editable, new_text); + g_signal_handlers_unblock_by_func(editable, G_CALLBACK(yon_on_space_first_changed), NULL); + g_signal_stop_emission_by_name(editable, "changed"); + } + + g_free(new_text); +} + void yon_on_digit_only_changed(GtkEditable *editable, const gchar *text, gint length, gint *position){ gchar *new_text = g_new(gchar, length + 1); gint i, j = 0; @@ -534,7 +549,8 @@ void yon_on_digit_only_changed(GtkEditable *editable, const gchar *text, gint le new_text[j] = text[i]; j++; } - }if (j < length) { + } + if (j < length) { g_signal_handlers_block_by_func(editable, G_CALLBACK(yon_on_digit_only_changed), NULL); gtk_editable_insert_text(editable, new_text, j, position); g_signal_handlers_unblock_by_func(editable, G_CALLBACK(yon_on_digit_only_changed), NULL); @@ -594,6 +610,7 @@ char *yon_gtk_entry_check_restricted(GtkEntry *target){ void yon_entry_set_entry_type(GtkEntry *target,GtkBox *status){ GtkInputPurpose purpose = gtk_entry_get_input_purpose(target); + g_signal_connect(G_OBJECT(target),"changed",G_CALLBACK(yon_on_space_first_changed),NULL); switch(purpose){ case GTK_INPUT_PURPOSE_DIGITS: diff --git a/source/libublsettingsui-gtk3.h b/source/libublsettingsui-gtk3.h index a1b8fee..5f9f340 100644 --- a/source/libublsettingsui-gtk3.h +++ b/source/libublsettingsui-gtk3.h @@ -254,6 +254,8 @@ char *yon_get_default_label_with_parameter(char *section, char *parameter); template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...); +void yon_on_space_first_changed(GtkEntry *editable); + enum CONFIGURATION_PARAMETER_TYPE{ CONFIGURATION_PARAMETER_BOOL,