diff options
-rw-r--r-- | addressbook/ChangeLog | 13 | ||||
-rw-r--r-- | addressbook/gui/component/select-names/e-select-names-text-model.c | 14 | ||||
-rw-r--r-- | addressbook/gui/component/select-names/e-select-names-text-model.h | 2 |
3 files changed, 29 insertions, 0 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog index 3a872f2ad1..65db8d540b 100644 --- a/addressbook/ChangeLog +++ b/addressbook/ChangeLog @@ -1,5 +1,18 @@ 2001-08-09 Jon Trowbridge <trow@ximian.com> + * gui/component/select-names/e-select-names-text-model.c + This change is dedicated to Jacob Berkman. + (e_select_names_text_model_insert_length): If the last character + we inserted was a "magic comma", remember its position. + (e_select_names_text_model_delete): If the last character we + inserted was a "magic comma", and if the next thing we do is to + hit backspace, delete both the comma and the extra whitespace we + added. + (e_select_names_text_model_init): Initialize our last magic comma + position. + +2001-08-09 Jon Trowbridge <trow@ximian.com> + * gui/component/select-names/e-select-names-manager.c (e_select_names_manager_create_entry): Hook up some magic to (basically) cardify an entry on focus-out. (What we do is actually diff --git a/addressbook/gui/component/select-names/e-select-names-text-model.c b/addressbook/gui/component/select-names/e-select-names-text-model.c index 2f10516dd1..c6f2b7856b 100644 --- a/addressbook/gui/component/select-names/e-select-names-text-model.c +++ b/addressbook/gui/component/select-names/e-select-names-text-model.c @@ -140,6 +140,7 @@ dump_model (ESelectNamesTextModel *text_model) static void e_select_names_text_model_init (ESelectNamesTextModel *model) { + model->last_magic_comma_pos = -1; } static void @@ -301,6 +302,8 @@ e_select_names_text_model_insert_length (ETextModel *model, gint pos, const gcha gint index, start_pos, text_len; gboolean inside_quote = FALSE; + E_SELECT_NAMES_TEXT_MODEL (model)->last_magic_comma_pos = -1; + if (out) fprintf (out, "processing [%c]\n", text[i]); @@ -387,6 +390,8 @@ e_select_names_text_model_insert_length (ETextModel *model, gint pos, const gcha pos += SEPLEN; } + E_SELECT_NAMES_TEXT_MODEL (model)->last_magic_comma_pos = pos; + } else { EReposInsertShift repos; gint offset = MAX (pos - start_pos, 0); @@ -473,6 +478,14 @@ e_select_names_text_model_delete (ETextModel *model, gint pos, gint length) if (length < 0) return; + if (E_SELECT_NAMES_TEXT_MODEL (model)->last_magic_comma_pos == pos+1 + && length == 1) { + --pos; + if (pos >= 0) + ++length; + E_SELECT_NAMES_TEXT_MODEL (model)->last_magic_comma_pos = -1; + } + e_select_names_model_text_pos (source, pos, &index, &start_pos, &text_len); if (out) @@ -636,6 +649,7 @@ e_select_names_text_model_delete (ETextModel *model, gint pos, gint length) } finished: + E_SELECT_NAMES_TEXT_MODEL (model)->last_magic_comma_pos = -1; gtk_signal_handler_unblock (GTK_OBJECT (source), E_SELECT_NAMES_TEXT_MODEL (model)->source_resize_id); dump_model (E_SELECT_NAMES_TEXT_MODEL (model)); } diff --git a/addressbook/gui/component/select-names/e-select-names-text-model.h b/addressbook/gui/component/select-names/e-select-names-text-model.h index 7a9e0a7396..fa6ab11a63 100644 --- a/addressbook/gui/component/select-names/e-select-names-text-model.h +++ b/addressbook/gui/component/select-names/e-select-names-text-model.h @@ -31,6 +31,8 @@ struct _ESelectNamesTextModel { ESelectNamesModel *source; gint source_changed_id; gint source_resize_id; + + gint last_magic_comma_pos; }; struct _ESelectNamesTextModelClass { |