entry: improve performance for updating cursors 97/161997/2
authorYoungbok Shin <youngb.shin@samsung.com>
Tue, 28 Nov 2017 11:53:34 +0000 (20:53 +0900)
committerYoungbok Shin <youngb.shin@samsung.com>
Wed, 29 Nov 2017 02:32:11 +0000 (11:32 +0900)
There is a patch on upstream EFL.
https://phab.enlightenment.org/D4223

@tizen_feature

Change-Id: I8abdfbf96ea757c5e1ab48a235315cc4aa00b858

src/lib/elm_entry.c

index 4d2f7f9..d70db1b 100644 (file)
@@ -1321,7 +1321,11 @@ _update_selection_handler(Evas_Object *obj)
    Evas_Coord sx, sy, sw, sh;
    Evas_Coord ent_x, ent_y;
    Evas_Coord ex, ey, ew, eh;
+   /* TIZEN_ONLY(20171128): improve performance for updating cursors
    int start_pos, end_pos, last_pos;
+    */
+   int start_pos, end_pos;
+   /* END */
 
    // TIZEN ONLY (20150603): CopyPasteUI Tizen 2.4
    //if ((!sd->sel_handler_disabled))
@@ -1347,6 +1351,7 @@ _update_selection_handler(Evas_Object *obj)
            (sd->entry_edje, "elm.text", EDJE_CURSOR_SELECTION_END);
 
         evas_object_geometry_get(sd->entry_edje, &ent_x, &ent_y, NULL, NULL);
+        /* TIZEN_ONLY(20171128): improve performance for updating cursors
         last_pos = edje_object_part_text_cursor_pos_get(sd->entry_edje, "elm.text",
                                                         EDJE_CURSOR_MAIN);
         edje_object_part_text_cursor_pos_set(sd->entry_edje, "elm.text",
@@ -1359,6 +1364,16 @@ _update_selection_handler(Evas_Object *obj)
                                                   &ex, &ey, &ew, &eh);
         edje_object_part_text_cursor_pos_set(sd->entry_edje, "elm.text",
                                              EDJE_CURSOR_MAIN, last_pos);
+         */
+        edje_object_part_text_cursor_coord_get(sd->entry_edje, "elm.text",
+                                               EDJE_CURSOR_SELECTION_BEGIN, &sx, &sy);
+        edje_object_part_text_cursor_size_get(sd->entry_edje, "elm.text",
+                                              EDJE_CURSOR_SELECTION_BEGIN, &sw, &sh);
+        edje_object_part_text_cursor_coord_get(sd->entry_edje, "elm.text",
+                                               EDJE_CURSOR_SELECTION_END, &ex, &ey);
+        edje_object_part_text_cursor_size_get(sd->entry_edje, "elm.text",
+                                              EDJE_CURSOR_SELECTION_END, &ew, &eh);
+        /* END */
         if (start_pos < end_pos)
           {
              hx = ent_x + sx;