aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--addressbook/ChangeLog13
-rw-r--r--addressbook/gui/component/select-names/e-select-names-text-model.c14
-rw-r--r--addressbook/gui/component/select-names/e-select-names-text-model.h2
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 {