Added entry blocking for removing space at first entry position

pull/38/head
parent 7748442c9d
commit 2bb05506f3

@ -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){ void yon_on_digit_only_changed(GtkEditable *editable, const gchar *text, gint length, gint *position){
gchar *new_text = g_new(gchar, length + 1); gchar *new_text = g_new(gchar, length + 1);
gint i, j = 0; 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]; new_text[j] = text[i];
j++; j++;
} }
}if (j < length) { }
if (j < length) {
g_signal_handlers_block_by_func(editable, G_CALLBACK(yon_on_digit_only_changed), NULL); g_signal_handlers_block_by_func(editable, G_CALLBACK(yon_on_digit_only_changed), NULL);
gtk_editable_insert_text(editable, new_text, j, position); gtk_editable_insert_text(editable, new_text, j, position);
g_signal_handlers_unblock_by_func(editable, G_CALLBACK(yon_on_digit_only_changed), NULL); 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){ void yon_entry_set_entry_type(GtkEntry *target,GtkBox *status){
GtkInputPurpose purpose = gtk_entry_get_input_purpose(target); 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){ switch(purpose){
case GTK_INPUT_PURPOSE_DIGITS: case GTK_INPUT_PURPOSE_DIGITS:

@ -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, ...); template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...);
void yon_on_space_first_changed(GtkEntry *editable);
enum CONFIGURATION_PARAMETER_TYPE{ enum CONFIGURATION_PARAMETER_TYPE{
CONFIGURATION_PARAMETER_BOOL, CONFIGURATION_PARAMETER_BOOL,

Loading…
Cancel
Save