herdsman pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=5322575ba631f9f89c6f1b901064c65a726bb895

commit 5322575ba631f9f89c6f1b901064c65a726bb895
Author: Daniel Hirt <daniel.h...@samsung.com>
Date:   Thu Dec 3 10:12:11 2015 +0200

    Edje entry: emit "selection,reset"
    
    Adding a check for the selection range on extend/preextend.
    If there is no range, then emit "selection,reset".
    Expected handling on the theme end for this signal is to show the
    cursor.
    
    This improves cursor visuals, as it will show the cursor again once the
    selection range ends up being 0.
---
 src/lib/edje/edje_entry.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c
index c9b424c..7c6c864 100644
--- a/src/lib/edje/edje_entry.c
+++ b/src/lib/edje/edje_entry.c
@@ -573,6 +573,19 @@ _sel_enable(Edje *ed, Evas_Textblock_Cursor *c EINA_UNUSED,
 }
 
 static void
+_emit_sel_state(Edje *ed, Entry *en)
+{
+   if (!evas_textblock_cursor_compare(en->sel_start, en->sel_end))
+     {
+        _edje_emit(ed, "selection,reset", en->rp->part->name);
+     }
+   else
+     {
+        _edje_emit(ed, "selection,changed", en->rp->part->name);
+     }
+}
+
+static void
 _sel_extend(Edje *ed, Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en)
 {
    if (!en->sel_end) return;
@@ -588,7 +601,7 @@ _sel_extend(Edje *ed, Evas_Textblock_Cursor *c, Evas_Object 
*o, Entry *en)
         free(en->selection);
         en->selection = NULL;
      }
-   _edje_emit(ed, "selection,changed", en->rp->part->name);
+   _emit_sel_state(ed, en);
 }
 
 static void
@@ -607,7 +620,7 @@ _sel_preextend(Edje *ed, Evas_Textblock_Cursor *c, 
Evas_Object *o, Entry *en)
         free(en->selection);
         en->selection = NULL;
      }
-   _edje_emit(ed, "selection,changed", en->rp->part->name);
+   _emit_sel_state(ed, en);
 }
 
 static void

-- 


Reply via email to