return TRUE;
pos = priv->position;
- len = g_utf8_strlen (priv->text, -1);
+ len = priv->n_chars;
if (len && pos != -1 && pos < len)
- {
- clutter_text_delete_text (self, pos, pos + 1);
-
- return TRUE;
- }
+ clutter_text_delete_text (self, pos, pos + 1);
- return FALSE;
+ return TRUE;
}
static gboolean
return TRUE;
pos = priv->position;
- len = g_utf8_strlen (priv->text, -1);
+ len = priv->n_chars;
if (pos != 0 && len != 0)
{
{
clutter_text_set_cursor_position (self, len - 1);
clutter_text_set_selection_bound (self, len - 1);
+
+ clutter_text_delete_text (self, len - 1, len);
}
else
{
clutter_text_set_cursor_position (self, pos - 1);
clutter_text_set_selection_bound (self, pos - 1);
- }
-
- clutter_text_delete_text (self, pos - 1, pos);
- return TRUE;
+ clutter_text_delete_text (self, pos - 1, pos);
+ }
}
- return FALSE;
+ return TRUE;
}
static gboolean
if (!priv->text)
return;
+ if (start_pos == 0)
+ start_bytes = 0;
+ else
+ start_bytes = offset_to_bytes (priv->text, start_pos);
+
if (end_pos == -1)
- {
- start_bytes = offset_to_bytes (priv->text,
- g_utf8_strlen (priv->text, -1) - 1);
- end_bytes = offset_to_bytes (priv->text,
- g_utf8_strlen (priv->text, -1));
- }
+ end_bytes = offset_to_bytes (priv->text, priv->n_chars);
else
- {
- start_bytes = offset_to_bytes (priv->text, start_pos);
- end_bytes = offset_to_bytes (priv->text, end_pos);
- }
+ end_bytes = offset_to_bytes (priv->text, end_pos);
new = g_string_new (priv->text);
new = g_string_erase (new, start_bytes, end_bytes - start_bytes);