summaryrefslogtreecommitdiff
path: root/libedataserverui/e-name-selector-entry.c
diff options
context:
space:
mode:
authorDevashish Sharma <dsharma@src.gnome.org>2006-07-19 11:09:43 +0000
committerDevashish Sharma <dsharma@src.gnome.org>2006-07-19 11:09:43 +0000
commitb8c34a19b96ec37e544bdc6a8e3772516a04490c (patch)
tree98a857d9d4e23a0ce7aa4b31876048175636414c /libedataserverui/e-name-selector-entry.c
parenta9c72a7f41510810c2d3dd9b2790dcd6cefab999 (diff)
downloadevolution-data-server-b8c34a19b96ec37e544bdc6a8e3772516a04490c.tar.gz
Fix for the Bug 322142
Diffstat (limited to 'libedataserverui/e-name-selector-entry.c')
-rw-r--r--libedataserverui/e-name-selector-entry.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/libedataserverui/e-name-selector-entry.c b/libedataserverui/e-name-selector-entry.c
index d50c33a77..995b9ac24 100644
--- a/libedataserverui/e-name-selector-entry.c
+++ b/libedataserverui/e-name-selector-entry.c
@@ -1153,11 +1153,12 @@ user_delete_text (ENameSelectorEntry *name_selector_entry, gint start_pos, gint
if (gtk_editable_get_selection_bounds (GTK_EDITABLE (name_selector_entry),
&selection_start,
&selection_end))
- if (g_utf8_get_char (g_utf8_offset_to_pointer (text, selection_end - 1)) == ',')
+ if ((g_utf8_get_char (g_utf8_offset_to_pointer (text, selection_end)) == 0) ||
+ (g_utf8_get_char (g_utf8_offset_to_pointer (text, selection_end)) == ","))
already_selected = TRUE;
get_utf8_string_context (text, start_pos, str_context, 2);
- get_utf8_string_context (text, end_pos-1, str_b_context, 2);
+ get_utf8_string_context (text, end_pos, str_b_context, 2);
g_signal_handlers_block_by_func (name_selector_entry, user_delete_text, name_selector_entry);
@@ -1178,8 +1179,13 @@ user_delete_text (ENameSelectorEntry *name_selector_entry, gint start_pos, gint
/* If the user is trying to delete a ','-character, we assume the user
* wants to remove the entire destination.
*/
-
- if (((str_b_context [0] == ',' && str_b_context [1] == ' ') || str_b_context [1] == ',') && !already_selected) {
+#if 0
+ printf("%d %d %d\n", already_selected, selection_start, selection_end);
+ printf("pos %d %d\n", start_pos, end_pos);
+ printf("it is -%c- -%c- -%c- -%c-\n", str_context[0], str_context[1], str_b_context[0], str_b_context[1]);
+ printf("it is -%d- -%d- -%d- -%d-\n", str_context[0], str_context[1], str_b_context[0], str_b_context[1]);
+#endif
+ if ((str_b_context [0] != ',') && 0 && !already_selected && (str_b_context[1] == ' ' || str_b_context[1] == 0)) {
EDestination *dest = find_destination_at_position (name_selector_entry, end_pos-1);
const char *email = e_destination_get_email (dest);
@@ -1189,7 +1195,7 @@ user_delete_text (ENameSelectorEntry *name_selector_entry, gint start_pos, gint
* Deleting this selection afterwards will leave the destination
* empty. */
- gint t = (str_b_context [1]==',')?end_pos:end_pos-1, b=t;
+ gint t = end_pos, b=t;
do {
t--;
} while (t >= 1 && text[t-1] != ',');