[Edje_Entry] Move cursor to correct position when selection handlers are pressed.
authorThiep Ha <thiepha@gmail.com>
Sat, 22 Jun 2013 03:29:28 +0000 (12:29 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Sat, 22 Jun 2013 03:30:50 +0000 (12:30 +0900)
+ Main cursor should be moved to selection start or selection end
cursor's position when selection handlers are pressed.
+ Fix my mistake in signal emit for end handler mouse down event.

Conflicts:

ChangeLog
NEWS

ChangeLog
NEWS
src/lib/edje/edje_entry.c

index 1cebaa0..783c42e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2013-06-22  Thiep Ha
+
+        * Edje: Move cursor to correct position when selection handlers are pressed.
+
 2013-06-19  Cedric Bail
 
        * Evas: optimized path for when map use the same color for all corner.
diff --git a/NEWS b/NEWS
index 6386316..9da4640 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -191,6 +191,7 @@ Improvements:
     * edje: use eo array of callbacks to reduce callbacks memory footprint.
     * evas: use eo array of callbacks to reduce callbacks memory footprint of Evas_Object_Box and Evas_Object_Table.
     * evas: optimized path for when map use the same color for all corner.
+    * Edje entry: Move cursor to correct position when selection handlers are pressed.
 
 Fixes:
     * Fix a memory leak in ecore_con_dns when using ecore_con_server_connect
index eab3623..f82cccf 100644 (file)
@@ -756,6 +756,8 @@ _edje_start_handler_mouse_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *
        (!rp->typedata.text)) return;
    en = rp->typedata.text->entry_data;
 
+   _edje_entry_cursor_copy(rp, EDJE_CURSOR_SELECTION_BEGIN, EDJE_CURSOR_MAIN);
+
    evas_object_geometry_get(rp->object, &ex, &ey, NULL, NULL);
    switch (rp->part->cursor_mode)
      {
@@ -837,6 +839,8 @@ _edje_end_handler_mouse_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *ob
        (!rp->typedata.text)) return;
    en = rp->typedata.text->entry_data;
 
+   _edje_entry_cursor_copy(rp, EDJE_CURSOR_SELECTION_END, EDJE_CURSOR_MAIN);
+
    evas_object_geometry_get(rp->object, &ex, &ey, NULL, NULL);
    switch (rp->part->cursor_mode)
      {
@@ -855,7 +859,7 @@ _edje_end_handler_mouse_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *ob
    en->select_mod_end = EINA_TRUE;
    en->selecting = EINA_TRUE;
 
-   _edje_emit(en->ed, "handler,move,end", rp->part->name);
+   _edje_emit(en->ed, "handler,move,start", rp->part->name);
 }
 
 static void