static Ecore_Timer *hide_timer = NULL;
static Entry *focused_entry = NULL;
-enum _Entry_Dragging_State
-{
- _ENTRY_DRAGGING_STATE_NONE = 0,
- _ENTRY_DRAGGING_STATE_READY = 1,
- _ENTRY_DRAGGING_STATE_STARTED = 2
-};
-
typedef enum _Entry_Char_Type
{
_ENTRY_CHAR_ALPHABET,
if (!en->sel_end) return;
_sel_enable(c, o, en);
if (!evas_textblock_cursor_compare(c, en->sel_end)) return;
+
+ if(en->rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_BLOCK_HANDLE)
+ {
+ if (evas_textblock_cursor_compare(en->sel_start, c) > 0)
+ evas_textblock_cursor_copy(en->sel_start, c);
+ }
+
evas_textblock_cursor_copy(c, en->sel_end);
if (en->selection)
{
if (!en->sel_end) return;
_sel_enable(c, o, en);
if (!evas_textblock_cursor_compare(c, en->sel_start)) return;
+
+ if(en->rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_BLOCK_HANDLE)
+ {
+ if (evas_textblock_cursor_compare(c, en->sel_end) > 0)
+ evas_textblock_cursor_copy(en->sel_end, c);
+ }
+
evas_textblock_cursor_copy(c, en->sel_start);
if (en->selection)
{
smart = evas_object_smart_parent_get(o);
clip = evas_object_clip_get(o);
if (en->sel_start)
+ {
range = evas_textblock_cursor_range_geometry_get(en->sel_start, en->sel_end);
+ if (!range)
+ return;
+ }
else
return;
if (eina_list_count(range) != eina_list_count(en->sel))
en->space_key_time = ecore_time_get();
}
-/*
-static Eina_Bool
-_select_mode_cb(void *data)
-{
- Entry *en = (Entry *)data;
- if (!en) return EINA_FALSE;
-
- if( en->select_dragging_state == _ENTRY_DRAGGING_STATE_STARTED )
- return EINA_FALSE;
-
- en->select_dragging_state = _ENTRY_DRAGGING_STATE_NONE;
-
- return EINA_FALSE;
-}
-*/
-
static void
_delete(Evas_Textblock_Cursor *c, Evas_Object *o __UNUSED__, Entry *en __UNUSED__)
{
_edje_entry_select_extend(rp);
en->select_allow = EINA_TRUE;
- en->select_mod_end = EINA_TRUE;
- en->had_sel = EINA_TRUE;
+ //en->select_mod_end = EINA_TRUE;
+ //en->had_sel = EINA_TRUE;
en->selecting = EINA_FALSE;
//printf("string : %s \n", eina_strbuf_string_get(str));
en->cx = ev->canvas.x - x;
en->cy = ev->canvas.y - y;
- //printf( "[entry] ev->canvas.x = %d, ev->canvas.y = %d \n", ev->canvas.x, ev->canvas.y );
if (!evas_textblock_cursor_char_coord_set(en->cursor, en->cx, en->cy))
{
Evas_Coord lx, ly, lw, lh;
en->cx = ev->cur.canvas.x - x;
en->cy = ev->cur.canvas.y - y;
- //printf( "[entry] ev->cur.canvas.x = %d, ev->cur.canvas.y = %d \n", ev->cur.canvas.x, ev->cur.canvas.y );
if (!evas_textblock_cursor_char_coord_set(en->cursor, en->cx, en->cy))
{
Evas_Coord lx, ly, lw, lh;
Entry *en = rp->entry_data;
if (rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_DEFAULT)
return;
+
en->select_allow = allow;
+
+ if ((allow) && (rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_BLOCK_HANDLE))
+ {
+ _edje_entry_mouse_double_clicked(rp, NULL, NULL, NULL);
+ }
}
Eina_Bool