[EGIT] [tools/enventor] master 01/01: statusbar: improve ui.

2016-02-26 Thread Hermet Park
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=fd240531ff000ac72fb352bb43f51569a519f330

commit fd240531ff000ac72fb352bb43f51569a519f330
Author: Hermet Park 
Date:   Sat Feb 27 13:48:07 2016 +0900

statusbar: improve ui.

replace a cursor icon instead of a guide text.
---
 data/themes/default/images/Makefile.am  |   3 +-
 data/themes/default/images/cursor_arrow.png | Bin 0 -> 325 bytes
 data/themes/default/images/expand.png   | Bin 345 -> 292 bytes
 data/themes/default/layout_common.edc   |  62 
 4 files changed, 19 insertions(+), 46 deletions(-)

diff --git a/data/themes/default/images/Makefile.am 
b/data/themes/default/images/Makefile.am
index d9e49e8..ae6658e 100644
--- a/data/themes/default/images/Makefile.am
+++ b/data/themes/default/images/Makefile.am
@@ -70,4 +70,5 @@ EXTRA_DIST = \
expand.png \
invert.png \
icon_close.png \
-   edc_navigator.png
+   edc_navigator.png \
+   cursor_arrow.png
diff --git a/data/themes/default/images/cursor_arrow.png 
b/data/themes/default/images/cursor_arrow.png
new file mode 100644
index 000..d02f5b0
Binary files /dev/null and b/data/themes/default/images/cursor_arrow.png differ
diff --git a/data/themes/default/images/expand.png 
b/data/themes/default/images/expand.png
index b5335f3..19230ef 100644
Binary files a/data/themes/default/images/expand.png and 
b/data/themes/default/images/expand.png differ
diff --git a/data/themes/default/layout_common.edc 
b/data/themes/default/layout_common.edc
index e343789..452d08b 100644
--- a/data/themes/default/layout_common.edc
+++ b/data/themes/default/layout_common.edc
@@ -9,6 +9,7 @@ images {
image: "bevel_out.png" COMP;
image: "pm_fill.png" COMP;
image: "full_logo.png" COMP;
+   image: "cursor_arrow.png" COMP;
 }
 
 group { name: "about_layout";
@@ -2141,26 +2142,19 @@ group { name: "statusbar_layout";
 }
  }
   }
-  part { name: "elm.text.cursor_px[";
- type: TEXT;
+  image { "cursor_arrow";
  clip_to: "base_clip";
  scale: 1;
- effect: SHADOW BOTTOM;
- description { state: "default" 0.0;
-rel1.to: "size_spacer";
-rel1.relative: 1 0.0;
-rel2.to: "size_spacer";
-rel2.relative: 1 1.0;
+ desc {
+rel1.to_x: "size_spacer";
+rel2.to_x: "size_spacer";
+rel1.relative: 1.0 0.5;
+rel2.relative: 1.0 0.5;
+rel1.offset: 3 0;
 align: 0 0.5;
 fixed: 1 0;
-color: COL_NM;
-text {
-   text: "Cursor [";
-   size: 11;
-   align: 0 0.5;
-   min: 1 0;
-   ellipsis: -1;
-}
+min: 12 12;
+image.normal: "cursor_arrow.png";
  }
   }
   part { name: "elm.text.cursor_pxx";
@@ -2169,8 +2163,8 @@ group { name: "statusbar_layout";
  scale: 1;
  effect: GLOW;
  description { state: "default" 0.0;
-rel1.to_x: "elm.text.cursor_px[";
-rel2.to_x: "elm.text.cursor_px[";
+rel1.to_x: "cursor_arrow";
+rel2.to_x: "cursor_arrow";
 rel1.relative: 1.0 0.0;
 rel2.relative: 1.0 1.0;
 align: 0 0.5;
@@ -2227,7 +2221,7 @@ group { name: "statusbar_layout";
 }
  }
   }
-  part { name: "elm.text.cursor_px][";
+  part { name: "elm.text.cursor_sep";
  type: TEXT;
  clip_to: "base_clip";
  scale: 1;
@@ -2241,9 +2235,9 @@ group { name: "statusbar_layout";
 fixed: 1 0;
 color: COL_NM;
 text {
-   text: "][";
+   text: " | ";
size: 11;
-   align: 0 0.5;
+   align: 0 1;
min: 1 0;
ellipsis: -1;
 }
@@ -2255,8 +2249,8 @@ group { name: "statusbar_layout";
  scale: 1;
  effect: GLOW;
  description { state: "default" 0.0;
-rel1.to_x: "elm.text.cursor_px][";
-rel2.to_x: "elm.text.cursor_px][";
+rel1.to_x: "elm.text.cursor_sep";
+rel2.to_x: "elm.text.cursor_sep";
 rel1.relative: 1.0 0.0;
 rel2.relative: 1.0 1.0;
 align: 0 0.5;
@@ -2313,28 +2307,6 @@ group { name: "statusbar_layout";
 }
  }
   }
-  part { name: "elm.text.cursor_rel]";
- type: TEXT;
- clip_to: "base_clip";
- scale: 1;
- effect: SHADOW BOTTOM;
- description { state: "default" 0.0;
-rel1.to_x: "elm.text.cursor_rely";
-rel2.to_x: "elm.text.cursor_rely";
-rel1.relative: 1.0 0.0;
-rel2.relative: 1.0 1.0;
-align: 0 0.5;
-fixed: 1 0;
-color: COL_NM;
-text {
-   

[EGIT] [tools/enventor] master 01/01: updated icons

2016-02-26 Thread Hermet Park
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=234f6b2f1bbbcab86d6516ac125aa5a1c7ec4ccd

commit 234f6b2f1bbbcab86d6516ac125aa5a1c7ec4ccd
Author: Hermet Park 
Date:   Sat Feb 27 12:58:45 2016 +0900

updated icons
---
 data/themes/default/images/Makefile.am  |   1 -
 data/themes/default/images/fileselect.png   | Bin 2534 -> 0 bytes
 data/themes/default/images/find.png | Bin  -> 377 bytes
 data/themes/default/images/folder.png   | Bin 746 -> 395 bytes
 data/themes/default/images/icon_close.png   | Bin 426 -> 426 bytes
 data/themes/default/images/invert.png   | Bin 488 -> 462 bytes
 data/themes/default/images/live_image.png   | Bin 442 -> 286 bytes
 data/themes/default/images/new.png  | Bin 211 -> 288 bytes
 data/themes/default/images/setting_icon.png | Bin 5983 -> 379 bytes
 data/themes/default/layout_common.edc   |   4 ++--
 10 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/data/themes/default/images/Makefile.am 
b/data/themes/default/images/Makefile.am
index 97e9c5a..d9e49e8 100644
--- a/data/themes/default/images/Makefile.am
+++ b/data/themes/default/images/Makefile.am
@@ -11,7 +11,6 @@ EXTRA_DIST = \
bt_hilight.png \
bt_shine.png \
bub_over_bot.png \
-   fileselect.png \
folder.png \
glow_small.png \
holes_tiny_glow_horiz.png \
diff --git a/data/themes/default/images/fileselect.png 
b/data/themes/default/images/fileselect.png
deleted file mode 100644
index b8ad317..000
Binary files a/data/themes/default/images/fileselect.png and /dev/null differ
diff --git a/data/themes/default/images/find.png 
b/data/themes/default/images/find.png
index 304b65e..52c6e2c 100644
Binary files a/data/themes/default/images/find.png and 
b/data/themes/default/images/find.png differ
diff --git a/data/themes/default/images/folder.png 
b/data/themes/default/images/folder.png
index 38c5ae8..2a51449 100644
Binary files a/data/themes/default/images/folder.png and 
b/data/themes/default/images/folder.png differ
diff --git a/data/themes/default/images/icon_close.png 
b/data/themes/default/images/icon_close.png
index d3a58ff..53efc13 100644
Binary files a/data/themes/default/images/icon_close.png and 
b/data/themes/default/images/icon_close.png differ
diff --git a/data/themes/default/images/invert.png 
b/data/themes/default/images/invert.png
index 2fd2a64..72273a7 100644
Binary files a/data/themes/default/images/invert.png and 
b/data/themes/default/images/invert.png differ
diff --git a/data/themes/default/images/live_image.png 
b/data/themes/default/images/live_image.png
index d2d47cd..434635c 100644
Binary files a/data/themes/default/images/live_image.png and 
b/data/themes/default/images/live_image.png differ
diff --git a/data/themes/default/images/new.png 
b/data/themes/default/images/new.png
index fa35752..d50e676 100644
Binary files a/data/themes/default/images/new.png and 
b/data/themes/default/images/new.png differ
diff --git a/data/themes/default/images/setting_icon.png 
b/data/themes/default/images/setting_icon.png
index 5a29d27..1320fd5 100644
Binary files a/data/themes/default/images/setting_icon.png and 
b/data/themes/default/images/setting_icon.png differ
diff --git a/data/themes/default/layout_common.edc 
b/data/themes/default/layout_common.edc
index dc9255b..e343789 100644
--- a/data/themes/default/layout_common.edc
+++ b/data/themes/default/layout_common.edc
@@ -1,7 +1,7 @@
 images {
image: "frame_bg.png" COMP;
image: "warning.png" COMP;
-   image: "fileselect.png" COMP;
+   image: "folder.png" COMP;
image: "new.png" COMP;
image: "shine.png" COMP;
image: "bub_over_bot.png" COMP;
@@ -200,7 +200,7 @@ group { name: "fileselector_layout";
 fixed: 1 1;
 rel1.to: "title_frame";
 rel2.to: "title_frame";
-image.normal: "fileselect.png";
+image.normal: "folder.png";
  }
   }
   part { name: "elm.text.title";

-- 




[EGIT] [apps/empc] master 01/01: remove broken list variable aliasing during apm update processing

2016-02-26 Thread zmike
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/apps/empc.git/commit/?id=bd77f49f3c8eebffef3ee086a5abcfb038fe6d3c

commit bd77f49f3c8eebffef3ee086a5abcfb038fe6d3c
Author: zmike 
Date:   Fri Feb 26 20:52:32 2016 -0500

remove broken list variable aliasing during apm update processing

ref 2e101a73d501a1e11bc20d6e636872deef0d74b3
---
 src/modules/auto_playlist_manager.c | 20 +---
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/src/modules/auto_playlist_manager.c 
b/src/modules/auto_playlist_manager.c
index 4c10587..152bc10 100644
--- a/src/modules/auto_playlist_manager.c
+++ b/src/modules/auto_playlist_manager.c
@@ -202,7 +202,6 @@ static void
 run_adds(void)
 {
char *file;
-   Eina_List *l;
 
last_queue_length = empd_queue_length;
while (adds)
@@ -213,8 +212,7 @@ run_adds(void)
 Elm_Object_Item *item;
 Eina_Bool done = EINA_FALSE;
 
-l = eina_list_data_get(adds);
-file = eina_list_data_get(l);
+file = eina_list_data_get(adds);
 a = strrchr(file, '/');
 if (a)
   b = strchr(file, '/');
@@ -227,7 +225,7 @@ run_adds(void)
 if (a == b)
   {
  empd_empdd_list_info_call(empd_proxy, info_cb, file, file);
- adds = eina_list_remove_list(adds, l);
+ adds = eina_list_remove_list(adds, adds);
  return;
   }
 
@@ -264,16 +262,16 @@ run_adds(void)
post_add(1, file);
empd_empdd_add_id_list_call(empd_proxy, file, 
ss->song_pos + 1);
done = EINA_TRUE;
-   while (eina_list_next(l))
+   while (eina_list_next(adds))
  {
 char *f2;
 
 pos++;
-f2 = eina_list_data_get(eina_list_next(l));
+f2 = eina_list_data_get(eina_list_next(adds));
 if (!is_same_path(file, a, f2, NULL)) break;
 empd_empdd_add_id_list_call(empd_proxy, file, 
ss->song_pos + pos);
 post_add(1, f2);
-adds = eina_list_remove_list(adds, 
eina_list_next(l));
+adds = eina_list_remove_list(adds, 
eina_list_next(adds));
 free(f2);
  }
break;
@@ -288,17 +286,17 @@ run_adds(void)
  /* sequentially append all songs from matching directory 
structure */
  empd_empdd_add_list_call(empd_proxy, file);
  post_add(0, file);
- while (eina_list_next(l))
+ while (eina_list_next(adds))
{
-  f2 = eina_list_data_get(eina_list_next(l));
+  f2 = eina_list_data_get(eina_list_next(adds));
   if (!is_same_path(file, a, f2, NULL)) break;
   empd_empdd_add_list_call(empd_proxy, f2);
   post_add(0, f2);
-  adds = eina_list_remove_list(adds, eina_list_next(l));
+  adds = eina_list_remove_list(adds, eina_list_next(adds));
   free(f2);
}
   }
-adds = eina_list_remove_list(adds, l);
+adds = eina_list_remove_list(adds, adds);
 free(file);
  }
 }

-- 




[EGIT] [core/enlightenment] master 01/01: update winlist ui when using directional window selection

2016-02-26 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=71a85b7d0819a32fa1f329bed610685ee10065a7

commit 71a85b7d0819a32fa1f329bed610685ee10065a7
Author: Mike Blumenkrantz 
Date:   Fri Feb 26 16:37:52 2016 -0500

update winlist ui when using directional window selection

fix T3152
ref b1378ce77b5e353bc422276eeef1d30d356ab9fd
---
 src/modules/winlist/e_winlist.c | 56 +++--
 1 file changed, 14 insertions(+), 42 deletions(-)

diff --git a/src/modules/winlist/e_winlist.c b/src/modules/winlist/e_winlist.c
index 2bc13cd..2706890 100644
--- a/src/modules/winlist/e_winlist.c
+++ b/src/modules/winlist/e_winlist.c
@@ -57,7 +57,6 @@ static double _scroll_align_to = 0.0;
 static double _scroll_align = 0.0;
 static Ecore_Timer *_scroll_timer = NULL;
 static Ecore_Animator *_animator = NULL;
-static E_Client *_ec_next = NULL;
 
 static Eina_Bool
 _wmclass_picked(const Eina_List *lst, const char *wmclass)
@@ -369,43 +368,6 @@ e_winlist_prev(void)
_e_winlist_activate();
 }
 
-static void
-_e_winlist_select(E_Client *ec)
-{
-   Eina_Bool focus = EINA_FALSE;
-
-   if (ec->shaded)
- {
-if (!ec->lock_user_shade)
-  e_client_unshade(ec, ec->shade_dir);
- }
-   if (ec->iconic)
- e_client_uniconify(ec);
-   if ((!ec->lock_focus_out) &&
-   (!e_config->winlist_no_warp_on_direction) &&
-   ((e_config->focus_policy != E_FOCUS_CLICK) ||
-   (e_config->winlist_warp_at_end) ||
-   (e_config->winlist_warp_while_selecting)))
- {
-   if (!e_client_pointer_warp_to_center(ec))
- focus = EINA_TRUE;
-   if (_list_object && (!_animator))
- _animator = ecore_animator_add(_e_winlist_animator, NULL);
- }
-
-   if ((!ec->lock_user_stacking) &&
-   (e_config->winlist_list_raise_while_selecting))
- {
-e_client_raise_latest_set(ec);
-evas_object_raise(ec->frame);
- }
-   if ((!ec->lock_focus_out) &&
-   (e_config->winlist_list_focus_while_selecting))
- focus = EINA_TRUE;
-   if (focus)
- evas_object_focus_set(ec->frame, 1);
-}
-
 static int
 point_line_dist(int x, int y, int lx1, int ly1, int lx2, int ly2)
 {
@@ -450,11 +412,12 @@ e_winlist_direction_select(E_Zone *zone, int dir)
E_Client *ec;
Eina_List *l;
E_Desk *desk;
-   E_Client *ec_orig;
+   E_Client *ec_orig, *ec_next = NULL;
int distance = INT_MAX;
int cx, cy;
+   E_Winlist_Win *ww;
 
-   _ec_next = NULL;
+   ec_next = NULL;
 
E_OBJECT_CHECK(zone);
E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE);
@@ -566,11 +529,20 @@ e_winlist_direction_select(E_Zone *zone, int dir)
  if (d >= distance) continue;
  break;
   }
-_ec_next = ec;
+ec_next = ec;
 distance = d;
  }
 
-   if (_ec_next) _e_winlist_select(_ec_next);
+   if (!ec_next) return;
+   _e_winlist_deactivate();
+   EINA_LIST_FOREACH(_wins, l, ww)
+ {
+if (ww->client != ec_next) continue;
+_win_selected = l;
+break;
+ }
+   _e_winlist_show_active();
+   _e_winlist_activate();
 }
 
 

-- 




[EGIT] [core/enlightenment] master 01/02: setup comp util object zoomap before setting its child

2016-02-26 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=8c2396cd9b04ad3464cb3dd3aa0bb710513d3456

commit 8c2396cd9b04ad3464cb3dd3aa0bb710513d3456
Author: Mike Blumenkrantz 
Date:   Fri Feb 26 15:02:15 2016 -0500

setup comp util object zoomap before setting its child

this avoids some minor canvas thrashing since the zoomap will try
to reapply existing geometries to the child instead of setting 0 and
triggering infinite callbacks
---
 src/bin/e_comp_object.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index cb20f71..8133dfd 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -2723,11 +2723,11 @@ e_comp_object_util_add(Evas_Object *obj, 
E_Comp_Object_Type type)
evas_object_pass_events_set(o, evas_object_pass_events_get(obj));
 
z = e_zoomap_add(e_comp->evas);
+   evas_object_show(z);
+   evas_object_geometry_set(z, x, y, w, h);
e_zoomap_child_edje_solid_setup(z);
e_zoomap_smooth_set(z, conf->smooth_windows);
e_zoomap_child_set(z, obj);
-   e_zoomap_child_resize(z, w, h);
-   evas_object_show(z);
edje_object_signal_callback_add(o, "e,action,*,done", "e", 
_e_comp_object_util_done_defer, z);
 
evas_object_intercept_show_callback_add(o, _e_comp_object_util_show, z);

-- 




[EGIT] [core/enlightenment] master 02/02: track/manage size hints for zoomap child objects

2016-02-26 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=7b07b03c21a2639feb0435999ad276e1f3514c1f

commit 7b07b03c21a2639feb0435999ad276e1f3514c1f
Author: Mike Blumenkrantz 
Date:   Fri Feb 26 15:03:22 2016 -0500

track/manage size hints for zoomap child objects

this enables the use of zoomaps for elm objects
---
 src/bin/e_zoomap.c | 17 +
 1 file changed, 17 insertions(+)

diff --git a/src/bin/e_zoomap.c b/src/bin/e_zoomap.c
index 682412f..6ed511b 100644
--- a/src/bin/e_zoomap.c
+++ b/src/bin/e_zoomap.c
@@ -32,6 +32,17 @@ static void _e_zoomap_smart_clip_set(Evas_Object *obj, 
Evas_Object *clip);
 static void _e_zoomap_smart_clip_unset(Evas_Object *obj);
 static void _e_zoomap_smart_init(void);
 
+static void
+_e_zoomap_smart_child_hints(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, 
void *event_info EINA_UNUSED)
+{
+   E_Smart_Data *sd = data;
+   int w, h;
+
+   evas_object_size_hint_min_get(obj, , );
+   evas_object_size_hint_min_set(sd->smart_obj, w, h);
+   evas_object_resize(sd->smart_obj, w, h);
+}
+
 /* local subsystem globals */
 static Evas_Smart *_e_smart = NULL;
 
@@ -58,6 +69,8 @@ e_zoomap_child_set(Evas_Object *obj, Evas_Object *child)
_e_zoomap_smart_child_del_hook);
 evas_object_event_callback_del(sd->child_obj, EVAS_CALLBACK_RESIZE,
_e_zoomap_smart_child_resize_hook);
+evas_object_event_callback_del(child, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
+   _e_zoomap_smart_child_hints);
 sd->child_obj = NULL;
  }
if (child)
@@ -70,6 +83,8 @@ e_zoomap_child_set(Evas_Object *obj, Evas_Object *child)
  >child_w, >child_h);
 evas_object_event_callback_add(child, EVAS_CALLBACK_DEL,
_e_zoomap_smart_child_del_hook, sd);
+evas_object_event_callback_add(child, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
+   _e_zoomap_smart_child_hints, sd);
 evas_object_event_callback_add(child, EVAS_CALLBACK_RESIZE,
_e_zoomap_smart_child_resize_hook, sd);
 if (evas_object_visible_get(obj)) evas_object_show(sd->child_obj);
@@ -275,6 +290,8 @@ _e_zoomap_smart_del(Evas_Object *obj)
_e_zoomap_smart_child_del_hook);
 evas_object_event_callback_del(o, EVAS_CALLBACK_RESIZE,
_e_zoomap_smart_child_resize_hook);
+evas_object_event_callback_del(o, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
+   _e_zoomap_smart_child_hints);
 evas_object_del(o);
  }
E_FREE(sd);

-- 




[EGIT] [core/elementary] master 02/03: list: set internal box as homogeneous if no separator items are present

2016-02-26 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=9f4c43c20dfa36e7a8be18278acf4336c13574d7

commit 9f4c43c20dfa36e7a8be18278acf4336c13574d7
Author: Mike Blumenkrantz 
Date:   Fri Feb 26 12:43:38 2016 -0500

list: set internal box as homogeneous if no separator items are present

this is a significant performance optimization since all non-separator
items should always be sized identically
---
 src/lib/elm_list.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/lib/elm_list.c b/src/lib/elm_list.c
index c41d501..e14f86e 100644
--- a/src/lib/elm_list.c
+++ b/src/lib/elm_list.c
@@ -818,6 +818,7 @@ _items_fix(Evas_Object *obj)
const char *it_plain;
const char *it_compress;
const char *it_compress_odd;
+   Eina_Bool separators = EINA_FALSE;
 
ELM_LIST_DATA_GET(obj, sd);
 
@@ -853,6 +854,7 @@ _items_fix(Evas_Object *obj)
  if (mw > minw[1]) minw[1] = mw;
  if (mh > minh[1]) minh[1] = mh;
   }
+separators |= it->is_separator;
  }
 
if ((minw[0] != sd->minw[0]) || (minw[1] != sd->minw[1]) ||
@@ -866,6 +868,7 @@ _items_fix(Evas_Object *obj)
  }
 
i = 0;
+   elm_box_homogeneous_set(sd->box, !separators);
EINA_LIST_FOREACH(sd->items, l, eo_it)
  {
 ELM_LIST_ITEM_DATA_GET(eo_it, it);

-- 




[EGIT] [core/elementary] master 03/03: list: set update hints on item edje objects

2016-02-26 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=c45d730af6c574c3208f954ae7b943ca0ca61c8f

commit c45d730af6c574c3208f954ae7b943ca0ca61c8f
Author: Mike Blumenkrantz 
Date:   Fri Feb 26 12:45:26 2016 -0500

list: set update hints on item edje objects

without size hints on the edje object, a list item will never be sized
accurately, meaning that the size hints set on subobjects (icon, end) are
ignored in nearly all cases, and any previous sizing which was accurate was,
in fact, merely coincidentally accurate

@fix
---
 src/lib/elm_list.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lib/elm_list.c b/src/lib/elm_list.c
index e14f86e..9a0a338 100644
--- a/src/lib/elm_list.c
+++ b/src/lib/elm_list.c
@@ -2302,6 +2302,7 @@ _item_new(Evas_Object *obj,
WIDGET_ITEM_DATA_SET(EO_OBJ(it), data);
 
VIEW(it) = edje_object_add(evas_object_evas_get(obj));
+   edje_object_update_hints_set(VIEW(it), 1);
 
/* access */
if (_elm_config->access_mode == ELM_ACCESS_MODE_ON)

-- 




[EGIT] [core/elementary] master 01/03: list test: use 1.0 instead of EVAS_HINT_EXPAND

2016-02-26 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=e7f674b523ee840c3f0dc064fa22a04c74c47c3a

commit e7f674b523ee840c3f0dc064fa22a04c74c47c3a
Author: Mike Blumenkrantz 
Date:   Fri Feb 26 12:40:56 2016 -0500

list test: use 1.0 instead of EVAS_HINT_EXPAND

these are functionally identical but semantically different
---
 src/bin/test_list.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/test_list.c b/src/bin/test_list.c
index 8f72e4b..f02df5c 100644
--- a/src/bin/test_list.c
+++ b/src/bin/test_list.c
@@ -371,7 +371,7 @@ test_list(void*data EINA_UNUSED,
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", 
elm_app_data_dir_get());
elm_image_file_set(ic, buf, NULL);
elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
-   evas_object_size_hint_align_set(ic, 0.0, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(ic, 0.0, 1.0);
elm_box_pack_end(bx, ic);
evas_object_show(ic);
elm_list_item_append(li, "are", bx, NULL, NULL, NULL);

-- 




[EGIT] [core/elementary] master 01/01: list: do not change scr_min flags when setting an unenforced list mode

2016-02-26 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=55e0dc6f4e33f52cf0bebb53b55deef5f63c5e13

commit 55e0dc6f4e33f52cf0bebb53b55deef5f63c5e13
Author: Mike Blumenkrantz 
Date:   Fri Feb 26 11:54:16 2016 -0500

list: do not change scr_min flags when setting an unenforced list mode

only LIMIT and EXPAND modes prohibit manually setting these flags. changing
them in any other scenario can result in overriding user-set flags

@fix
---
 src/lib/elm_list.c | 5 -
 1 file changed, 5 deletions(-)

diff --git a/src/lib/elm_list.c b/src/lib/elm_list.c
index 429daf2..c41d501 100644
--- a/src/lib/elm_list.c
+++ b/src/lib/elm_list.c
@@ -765,11 +765,6 @@ _elm_list_mode_set_internal(Evas_Object *obj)
 sd->scr_minw = EINA_TRUE;
 sd->scr_minh = EINA_TRUE;
  }
-   else
- {
-sd->scr_minw = EINA_FALSE;
-sd->scr_minh = EINA_FALSE;
- }
 
elm_layout_sizing_eval(obj);
 }

-- 




[EGIT] [core/enlightenment] master 01/01: add zoomaps unconditionally for all comp util objects

2016-02-26 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=9fa7f41e3552b49a8bcaf629db1ead3bbd4f11e6

commit 9fa7f41e3552b49a8bcaf629db1ead3bbd4f11e6
Author: Mike Blumenkrantz 
Date:   Fri Feb 26 11:46:49 2016 -0500

add zoomaps unconditionally for all comp util objects

these objects are more likely to be animated regardless of type, so adding
a zoomap will greatly improve the animation visual
---
 src/bin/e_comp_object.c | 78 +
 1 file changed, 8 insertions(+), 70 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 514d66f..cb20f71 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -2595,7 +2595,6 @@ e_comp_object_util_type_set(Evas_Object *obj, 
E_Comp_Object_Type type)
const char *grp;
char buf[1024];
int ok = 0;
-   int w, h;
 
EINA_SAFETY_ON_NULL_RETURN(obj);
 
@@ -2701,77 +2700,19 @@ e_comp_object_util_type_set(Evas_Object *obj, 
E_Comp_Object_Type type)
  edje_object_signal_emit(obj, "e,state,shadow,on", "e");
else
  edje_object_signal_emit(obj, "e,state,shadow,off", "e");
-   if (!content) return;
-   {
-  Evas_Object *child;
-  Eina_Bool redo = EINA_FALSE;
-
-  if (eina_streq(evas_object_type_get(content), "e_zoomap"))
-child = e_zoomap_child_get(content);
-  else
-child = content;
-
-  if (list && (child == content))
-{
-   evas_object_geometry_get(child, NULL, NULL, , );
-   content = e_zoomap_add(e_comp->evas);
-   e_zoomap_child_edje_solid_setup(content);
-   e_zoomap_smooth_set(content, conf->smooth_windows);
-   e_zoomap_child_set(content, child);
-   e_zoomap_child_resize(content, w, h);
-   evas_object_show(content);
-   redo = EINA_TRUE;
-}
-  else if (child != content)
-{
-   e_zoomap_child_set(content, NULL);
-   evas_object_del(content);
-   content = child;
-   redo = EINA_TRUE;
-}
-  edje_object_part_swallow(obj, "e.swallow.content", content);
-
-  if (!redo) return;
-  if (content == child) content = NULL;
-  edje_object_signal_callback_del(obj, "e,action,*,done", "e", 
_e_comp_object_util_done_defer);
-  evas_object_intercept_show_callback_del(obj, _e_comp_object_util_show);
-  evas_object_intercept_hide_callback_del(obj, _e_comp_object_util_hide);
-  evas_object_event_callback_del(obj, EVAS_CALLBACK_MOVE, 
_e_comp_object_util_moveresize);
-  evas_object_event_callback_del(obj, EVAS_CALLBACK_DEL, 
_e_comp_object_util_del);
-  evas_object_event_callback_del(obj, EVAS_CALLBACK_RESIZE, 
_e_comp_object_util_moveresize);
-  evas_object_event_callback_del(obj, EVAS_CALLBACK_RESTACK, 
_e_comp_object_util_restack);
-
-  edje_object_signal_callback_add(obj, "e,action,*,done", "e", 
_e_comp_object_util_done_defer, content);
-  evas_object_intercept_show_callback_add(obj, _e_comp_object_util_show, 
content);
-  evas_object_intercept_hide_callback_add(obj, _e_comp_object_util_hide, 
content);
-  evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE, 
_e_comp_object_util_moveresize, content);
-  evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL, 
_e_comp_object_util_del, content);
-  evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, 
_e_comp_object_util_moveresize, content);
-  evas_object_event_callback_add(obj, EVAS_CALLBACK_RESTACK, 
_e_comp_object_util_restack, content);
-   }
+   if (content)
+ edje_object_part_swallow(obj, "e.swallow.content", content);
 }
 
 E_API Evas_Object *
 e_comp_object_util_add(Evas_Object *obj, E_Comp_Object_Type type)
 {
Evas_Object *o, *z = NULL;
-   Eina_List *list = NULL;
E_Comp_Config *conf = e_comp_config_get();
int x, y, w, h;
Eina_Bool vis;
 
EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
-   switch (type)
- {
-  case E_COMP_OBJECT_TYPE_MENU:
-list = conf->match.menus;
-break;
-  case E_COMP_OBJECT_TYPE_POPUP:
-list = conf->match.popups;
-break;
-  default:
-list = conf->match.objects;
- }
vis = evas_object_visible_get(obj);
o = edje_object_add(e_comp->evas);
evas_object_data_set(o, "comp_object", (void*)1);
@@ -2781,15 +2722,12 @@ e_comp_object_util_add(Evas_Object *obj, 
E_Comp_Object_Type type)
evas_object_geometry_set(o, x, y, w, h);
evas_object_pass_events_set(o, evas_object_pass_events_get(obj));
 
-   if (list)
- {
-z = e_zoomap_add(e_comp->evas);
-e_zoomap_child_edje_solid_setup(z);
-e_zoomap_smooth_set(z, conf->smooth_windows);
-e_zoomap_child_set(z, obj);
-e_zoomap_child_resize(z, w, h);
-evas_object_show(z);
- }
+   z = e_zoomap_add(e_comp->evas);
+   e_zoomap_child_edje_solid_setup(z);
+   e_zoomap_smooth_set(z, 

[EGIT] [core/elementary] master 01/01: entry: send focus/unfocus signals to scroller interface

2016-02-26 Thread Amitesh Singh
ami pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=d6525a9c0ea58915a21362c2bce67117280151a5

commit d6525a9c0ea58915a21362c2bce67117280151a5
Author: Amitesh Singh 
Date:   Fri Feb 26 19:55:31 2016 +0530

entry: send focus/unfocus signals to scroller interface

In case of scrollable entry, send focus/unfocus signals to scroller
interface edje.
---
 src/lib/elm_entry.c | 11 ++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/lib/elm_entry.c b/src/lib/elm_entry.c
index 3165847..e22fe46 100644
--- a/src/lib/elm_entry.c
+++ b/src/lib/elm_entry.c
@@ -858,7 +858,11 @@ _elm_entry_elm_widget_theme_apply(Eo *obj, Elm_Entry_Data 
*sd)
evas_object_ref(obj);
 
if (elm_widget_focus_get(obj))
- edje_object_signal_emit(sd->entry_edje, "elm,action,focus", "elm");
+ {
+edje_object_signal_emit(sd->entry_edje, "elm,action,focus", "elm");
+if (sd->scroll)
+  edje_object_signal_emit(sd->scr_edje, "elm,action,focus", "elm");
+ }
 
edje_object_message_signal_process(sd->entry_edje);
 
@@ -1179,6 +1183,9 @@ _elm_entry_elm_widget_on_focus(Eo *obj, Elm_Entry_Data 
*sd, Elm_Object_Item *ite
  {
 evas_object_focus_set(sd->entry_edje, EINA_TRUE);
 edje_object_signal_emit(sd->entry_edje, "elm,action,focus", "elm");
+if (sd->scroll)
+  edje_object_signal_emit(sd->scr_edje, "elm,action,focus", "elm");
+
 if (top && top_is_win && sd->input_panel_enable && 
!sd->input_panel_show_on_demand &&
 !edje_object_part_text_imf_context_get(sd->entry_edje, "elm.text"))
   elm_win_keyboard_mode_set(top, ELM_WIN_KEYBOARD_ON);
@@ -1191,6 +1198,8 @@ _elm_entry_elm_widget_on_focus(Eo *obj, Elm_Entry_Data 
*sd, Elm_Object_Item *ite
else
  {
 edje_object_signal_emit(sd->entry_edje, "elm,action,unfocus", "elm");
+if (sd->scroll)
+  edje_object_signal_emit(sd->scr_edje, "elm,action,unfocus", "elm");
 evas_object_focus_set(sd->entry_edje, EINA_FALSE);
 if (top && top_is_win && sd->input_panel_enable &&
 !edje_object_part_text_imf_context_get(sd->entry_edje, "elm.text"))

-- 




[EGIT] [core/elementary] master 01/01: view list: free style in base destructor.

2016-02-26 Thread Amitesh Singh
ami pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=1018bcca27dafb04b5002da8094d5704396e5d2d

commit 1018bcca27dafb04b5002da8094d5704396e5d2d
Author: Amitesh Singh 
Date:   Fri Feb 26 19:34:20 2016 +0530

view list: free style in base destructor.

typecast const char * to void * and pass ptr to free() since it doesn't 
modify the value pointed to,
either conceptually or in practice, it merely looks up the memory block 
using the pointer and deallocates it.

@fix
---
 src/lib/elm_view_list.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lib/elm_view_list.c b/src/lib/elm_view_list.c
index 0f3d1a2..271a242 100644
--- a/src/lib/elm_view_list.c
+++ b/src/lib/elm_view_list.c
@@ -375,6 +375,7 @@ _elm_view_list_eo_base_destructor(Eo *obj, 
Elm_View_List_Data *priv)
  eo_event_callback_array_del(model_callbacks(), priv->rootdata));
 
eo_do(priv->genlist, elm_obj_genlist_clear());
+   free((void *)priv->itc->item_style);
elm_genlist_item_class_free(priv->itc);
 
eina_hash_free(priv->prop_con);

-- 




[EGIT] [tools/enventor] master 01/01: edc_navigator: 2nd patch for base navigation behavior.

2016-02-26 Thread Hermet Park
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=50a7b468ef5ae48b0dc9ef027f970903d1f751ed

commit 50a7b468ef5ae48b0dc9ef027f970903d1f751ed
Author: Hermet Park 
Date:   Fri Feb 26 22:22:29 2016 +0900

edc_navigator: 2nd patch for base navigation behavior.

not completed.
---
 data/themes/default/layout_common.edc |   2 +-
 src/bin/Makefile.am   |   3 +-
 src/bin/base_gui.c|  19 +++
 src/bin/edc_navigator.c   | 267 ++
 src/bin/main.c|   2 +
 src/include/base_gui.h|   3 +
 src/include/edc_navigator.h   |   4 +
 src/lib/enventor_object.eo|   9 ++
 src/lib/enventor_smart.c  |  15 ++
 9 files changed, 322 insertions(+), 2 deletions(-)

diff --git a/data/themes/default/layout_common.edc 
b/data/themes/default/layout_common.edc
index dc511e8..dc9255b 100644
--- a/data/themes/default/layout_common.edc
+++ b/data/themes/default/layout_common.edc
@@ -2720,7 +2720,7 @@ group { name: "main_layout";
  }
  desc { "visible";
 inherit: "default";
-min: 150 0;
+min: 200 0;
  }
   }
}
diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am
index 9f520fd..57cecd5 100644
--- a/src/bin/Makefile.am
+++ b/src/bin/Makefile.am
@@ -28,7 +28,8 @@ enventor_SOURCES = \
globals.c \
live_edit.c \
console.c \
-   file_mgr.c
+   file_mgr.c \
+   edc_navigator.c
 
 enventor_LDADD = \
$(top_builddir)/src/lib/libenventor.la \
diff --git a/src/bin/base_gui.c b/src/bin/base_gui.c
index 817efc1..05b9e4c 100644
--- a/src/bin/base_gui.c
+++ b/src/bin/base_gui.c
@@ -197,11 +197,25 @@ base_gui_term(void)
base_data *bd = g_bd;
assert(bd);
 
+   edc_navigator_term();
panes_term();
+
free(bd);
 }
 
 void
+base_edc_navigator_parts_reload(void)
+{
+   edc_navigator_parts_reload();
+}
+
+void
+base_edc_navigator_group_reload(void)
+{
+   edc_navigator_group_reload();
+}
+
+void
 base_console_reset(void)
 {
base_data *bd = g_bd;
@@ -265,6 +279,11 @@ base_gui_init(void)
if (config_console_get())
  panes_editors_full_view(EINA_TRUE);
 
+   //EDC Navigator
+   Evas_Object *edc_navigator = edc_navigator_init(layout);
+   elm_object_part_content_set(layout, "elm.swallow.edc_navigator",
+   edc_navigator);
+
bd->win = win;
bd->layout = layout;
bd->console = console;
diff --git a/src/bin/edc_navigator.c b/src/bin/edc_navigator.c
new file mode 100644
index 000..c269e57
--- /dev/null
+++ b/src/bin/edc_navigator.c
@@ -0,0 +1,267 @@
+#include "common.h"
+
+typedef struct edc_navigator_s
+{
+   Evas_Object *genlist;
+
+   Eina_List *group_items; //group object item
+   Eina_List *part_items;  //part object item
+   Eina_List *state_items; //state object item
+
+   Eina_List *group_list;  //group name list
+   Eina_List *part_list;   //part name list
+   Eina_List *state_list;  //state name list
+
+   Elm_Genlist_Item_Class *group_itc;
+   Elm_Genlist_Item_Class *part_itc;
+   Elm_Genlist_Item_Class *state_itc;
+} navi_data;
+
+static navi_data *g_nd = NULL;
+
+/*/
+/* Internal method implementation*/
+/*/
+static void
+gl_state_selected_cb(void *data, Evas_Object *obj EINA_UNUSED, void 
*event_info)
+{
+   Elm_Object_Item *it = event_info;
+   //TODO: Search Current State
+}
+
+static void
+states_reload(navi_data *nd, Elm_Object_Item *part_it)
+{
+   const char *part = elm_object_item_text_get(part_it);
+   if (!part) return;
+
+   Eina_List *l;
+   Elm_Object_Item *it;
+
+   //Remove Previous Parts
+   EINA_LIST_FREE(nd->state_items, it)
+ elm_object_item_del(it);
+
+   //Append States
+   Evas_Object *enventor = base_enventor_get();
+   edje_edit_string_list_free(nd->state_list);
+   nd->state_list = enventor_object_part_states_list_get(enventor, part);
+   char *name;
+
+   EINA_LIST_FOREACH(nd->state_list, l, name)
+ {
+it = elm_genlist_item_append(nd->genlist,
+ nd->state_itc, /* item class */
+ name,  /* item data */
+ part_it,   /* parent */
+ ELM_GENLIST_ITEM_NONE, /* item type */
+ gl_state_selected_cb,  /* select cb */
+ nd);   /* select cb data 
*/
+nd->state_items = eina_list_append(nd->state_items, it);
+ }
+}
+
+static char *
+gl_text_get_cb(void *data, 

[EGIT] [core/elementary] master 01/01: genlist: fix a typo.

2016-02-26 Thread Hermet Park
hermet pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=4b8fc63c2045456af0812306b445ebadb16f7d60

commit 4b8fc63c2045456af0812306b445ebadb16f7d60
Author: Hermet Park 
Date:   Fri Feb 26 21:50:19 2016 +0900

genlist: fix a typo.
---
 src/lib/elm_genlist.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/elm_genlist.h b/src/lib/elm_genlist.h
index 12f1b2a..5721e32 100644
--- a/src/lib/elm_genlist.h
+++ b/src/lib/elm_genlist.h
@@ -112,7 +112,7 @@
  * - end_icon - Only 1 icon (at end/right) (since 1.7)
  * - no_icon - No icon (at end/right) (since 1.7)
  * - full - Only 1 icon, elm.swallow.content,  which consumes whole area of
- * genlist itemj (since 1.7)
+ * genlist item (since 1.7)
  *
  * If one wants to use more icons and texts than are offered in theme, there
  * are two solutions. One is to use 'full' style that has one big swallow part.

-- 




[EGIT] [tools/enventor] master 03/03: ctxpopup: Reset candidate values by backspace key.

2016-02-26 Thread Jaehyun Cho
jaehyun pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=69029879d8c86c71a413d53b1db9b9cf9fa376b5

commit 69029879d8c86c71a413d53b1db9b9cf9fa376b5
Author: Jaehyun Cho 
Date:   Thu Feb 25 11:25:43 2016 +0900

ctxpopup: Reset candidate values by backspace key.

toggle, slider and colorselector values of candidate ctxpopup are reset
by backspace key.
---
 src/bin/main.c |  8 ++--
 src/lib/ctxpopup.c | 50 ++
 2 files changed, 56 insertions(+), 2 deletions(-)

diff --git a/src/bin/main.c b/src/bin/main.c
index 96e1a42..6b991e4 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -457,8 +457,12 @@ static void
 enventor_ctxpopup_activated_cb(void *data, Evas_Object *obj, void *event_info)
 {
Enventor_Ctxpopup_Type type = (Enventor_Ctxpopup_Type) event_info;
-   if (type != ENVENTOR_CTXPOPUP_TYPE_SLIDER) return;
-   stats_info_msg_update("You could use a mouse wheel to change values 
elaborately.");
+
+   if (type == ENVENTOR_CTXPOPUP_TYPE_SLIDER)
+ stats_info_msg_update("Mouse wheel: Change values elaborately.  "
+   "Backspace: Reset values.");
+   else if (type == ENVENTOR_CTXPOPUP_TYPE_TOGGLE)
+ stats_info_msg_update("Backspace: Reset values.");
 }
 
 static void
diff --git a/src/lib/ctxpopup.c b/src/lib/ctxpopup.c
index 6020782..8f0928b 100644
--- a/src/lib/ctxpopup.c
+++ b/src/lib/ctxpopup.c
@@ -58,6 +58,9 @@ static preset_colors_data preset_colors =
 /* Internal method implementation*/
 /*/
 
+static Eina_Bool
+is_colorselector_type(ctxpopup_data *ctxdata);
+
 static void
 update_preset_colors(Eina_Bool update)
 {
@@ -703,6 +706,8 @@ end:
 static void
 image_relay(ctxpopup_data *ctxdata, Eina_Bool up)
 {
+   if (!ctxdata->relay_cb) return;
+
if (up)
  ctxdata->relay_cb(ctxdata->data, ctxdata->ctxpopup, (void *) 0);
else
@@ -710,6 +715,48 @@ image_relay(ctxpopup_data *ctxdata, Eina_Bool up)
 }
 
 static void
+candidate_reset(ctxpopup_data *ctxdata)
+{
+   attr_value *attr = ctxdata->attr;
+   if (!attr) return;
+
+   //Colorselector Candidate
+   if (is_colorselector_type(ctxdata))
+ {
+elm_colorselector_color_set(ctxdata->colorselector, attr->val[0],
+attr->val[1], attr->val[2], attr->val[3]);
+colorselector_changed_cb(ctxdata, ctxdata->colorselector, NULL);
+ }
+   //Toggle Candidate
+   else if ((attr->type == ATTR_VALUE_BOOLEAN))
+ {
+Eina_List *l;
+Evas_Object *toggle;
+int i = 0;
+EINA_LIST_FOREACH(ctxdata->toggles, l, toggle)
+  {
+ elm_check_state_set(toggle, (Eina_Bool) roundf(attr->val[i]));
+ toggle_changed_cb(ctxdata, toggle, NULL);
+ i++;
+  }
+ }
+   //Slider Candidate
+   else if ((attr->type == ATTR_VALUE_INTEGER) ||
+(attr->type == ATTR_VALUE_FLOAT))
+ {
+Eina_List *l;
+Evas_Object *slider;
+int i = 0;
+EINA_LIST_FOREACH(ctxdata->sliders, l, slider)
+  {
+ elm_slider_value_set(slider, attr->val[i]);
+ slider_changed_cb(ctxdata, slider, NULL);
+ i++;
+  }
+ }
+}
+
+static void
 ctxpopup_mouse_wheel_cb(void *data, Evas *e EINA_UNUSED,
 Evas_Object *obj EINA_UNUSED, void *event_info)
 {
@@ -729,6 +776,7 @@ ctxpopup_key_down_cb(void *data, Evas *e EINA_UNUSED,
 
if (!strcmp(ev->key, "Down")) image_relay(ctxdata, EINA_FALSE);
else if (!strcmp(ev->key, "Up")) image_relay(ctxdata, EINA_TRUE);
+   else if (!strcmp(ev->key, "BackSpace")) candidate_reset(ctxdata);
 }
 
 /*/
@@ -900,6 +948,8 @@ ctxpopup_candidate_list_create(edit_data *ed, attr_value 
*attr,
  break;
   }
}
+   evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_KEY_DOWN,
+  ctxpopup_key_down_cb, ctxdata);
evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_DEL, ctxpopup_del_cb,
   ctxdata);
evas_object_smart_callback_add(ctxpopup, "dismissed", ctxpopup_dismiss_cb,

-- 




[EGIT] [tools/enventor] master 01/03: ctxpopup: Refactoring to get toggles easily.

2016-02-26 Thread Jaehyun Cho
jaehyun pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=61a0effa333840625f7a7e4ae5b1220c5d4f43ca

commit 61a0effa333840625f7a7e4ae5b1220c5d4f43ca
Author: Jaehyun Cho 
Date:   Fri Feb 26 19:32:00 2016 +0900

ctxpopup: Refactoring to get toggles easily.
---
 src/lib/ctxpopup.c | 14 ++
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/src/lib/ctxpopup.c b/src/lib/ctxpopup.c
index b6f9205..c2516a6 100644
--- a/src/lib/ctxpopup.c
+++ b/src/lib/ctxpopup.c
@@ -16,6 +16,8 @@ typedef struct ctxpopup_data_s {
attr_value *attr;
char candidate[256];
 
+   Eina_List *toggles;
+
//colorselector properties
Evas_Object *colorselector;
Evas_Object *color_view;
@@ -105,6 +107,7 @@ ctxpopup_del_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
 {
elm_config_focus_autoscroll_mode_set(ELM_FOCUS_AUTOSCROLL_MODE_SHOW);
ctxpopup_data *ctxdata = data;
+   eina_list_free(ctxdata->toggles);
ecore_animator_del(ctxdata->animator);
free(ctxdata);
 }
@@ -206,22 +209,15 @@ toggle_changed_cb(void *data, Evas_Object *obj 
EINA_UNUSED,
   void *event_info EINA_UNUSED)
 {
ctxpopup_data *ctxdata = data;
-   Evas_Object *box = elm_object_content_get(ctxdata->ctxpopup);
-   Evas_Object *layout;
Evas_Object *toggle;
-   Eina_List *box_children = elm_box_children_get(box);
Eina_List *l;
char buf[128];
 
-   if (eina_list_count(box_children) == 0) return;
-
snprintf(ctxdata->candidate, sizeof(ctxdata->candidate), " %s",
 ctxdata->attr->prepend_str);
 
-   EINA_LIST_FOREACH(box_children, l, layout)
+   EINA_LIST_FOREACH(ctxdata->toggles, l, toggle)
  {
-toggle = elm_object_part_content_get(layout,
- "elm.swallow.toggle");
 snprintf(buf, sizeof(buf), " %d", (int) elm_check_state_get(toggle));
 strcat(ctxdata->candidate, buf);
  }
@@ -252,6 +248,8 @@ toggle_layout_create(Evas_Object *parent, ctxpopup_data 
*ctxdata,
evas_object_data_set(toggle, "ctxdata", ctxdata);
elm_object_part_content_set(layout, "elm.swallow.toggle", toggle);
 
+   ctxdata->toggles = eina_list_append(ctxdata->toggles, toggle);
+
return layout;
 }
 

-- 




[EGIT] [tools/enventor] master 02/03: ctxpopup: Refactoring to get sliders easily.

2016-02-26 Thread Jaehyun Cho
jaehyun pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=f96c2a92a67b4242b8769f789247ac272fa75342

commit f96c2a92a67b4242b8769f789247ac272fa75342
Author: Jaehyun Cho 
Date:   Fri Feb 26 18:54:28 2016 +0900

ctxpopup: Refactoring to get sliders easily.
---
 src/lib/ctxpopup.c | 11 +--
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/src/lib/ctxpopup.c b/src/lib/ctxpopup.c
index c2516a6..6020782 100644
--- a/src/lib/ctxpopup.c
+++ b/src/lib/ctxpopup.c
@@ -17,6 +17,7 @@ typedef struct ctxpopup_data_s {
char candidate[256];
 
Eina_List *toggles;
+   Eina_List *sliders;
 
//colorselector properties
Evas_Object *colorselector;
@@ -108,6 +109,7 @@ ctxpopup_del_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
elm_config_focus_autoscroll_mode_set(ELM_FOCUS_AUTOSCROLL_MODE_SHOW);
ctxpopup_data *ctxdata = data;
eina_list_free(ctxdata->toggles);
+   eina_list_free(ctxdata->sliders);
ecore_animator_del(ctxdata->animator);
free(ctxdata);
 }
@@ -136,19 +138,14 @@ slider_changed_cb(void *data, Evas_Object *obj, void 
*event_info EINA_UNUSED)
double val = elm_slider_value_get(obj);
char buf[128];
 
-   Evas_Object *box = elm_object_content_get(ctxdata->ctxpopup);
-   Eina_List *box_children = elm_box_children_get(box);
Eina_List *l;
-   Evas_Object *layout;
Evas_Object *slider;
 
snprintf(ctxdata->candidate, sizeof(ctxdata->candidate), "%s",
 ctxdata->attr->prepend_str);
 
-   EINA_LIST_FOREACH(box_children, l, layout)
+   EINA_LIST_FOREACH(ctxdata->sliders, l, slider)
  {
-slider = elm_object_part_content_get(layout,
- "elm.swallow.slider");
 if (ctxdata->attr->type & ATTR_VALUE_INTEGER)
   {
  snprintf(buf, sizeof(buf), " %d",
@@ -335,6 +332,8 @@ slider_layout_create(Evas_Object *parent, ctxpopup_data 
*ctxdata,
elm_object_part_text_set(layout, "elm.text.slider_max", slider_max);
elm_object_part_content_set(layout, "elm.swallow.slider", slider);
 
+   ctxdata->sliders = eina_list_append(ctxdata->sliders, slider);
+
return layout;
 }
 

-- 




[EGIT] [core/efl] master 01/01: Evas textblock tests: Fix wrong test suite tests.

2016-02-26 Thread Tom Hacohen
tasn pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=84fd52921e86df91f2a5e305fb38583a8460040a

commit 84fd52921e86df91f2a5e305fb38583a8460040a
Author: Tom Hacohen 
Date:   Fri Feb 26 09:34:36 2016 +

Evas textblock tests: Fix wrong test suite tests.

The tests were assuming that textblock returns a sanitised utf8 string.
This is not always correct, because textblock may cache and return the
set utf8 markup if the text hasn't changed since the last set.
---
 src/tests/evas/evas_test_textblock.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/tests/evas/evas_test_textblock.c 
b/src/tests/evas/evas_test_textblock.c
index 379bc2e..cfa0aee 100644
--- a/src/tests/evas/evas_test_textblock.c
+++ b/src/tests/evas/evas_test_textblock.c
@@ -3642,11 +3642,11 @@ START_TEST(evas_textblock_escaping)
 
const char *buf = "This  is";
evas_object_textblock_text_markup_set(tb, buf);
-   fail_if(strcmp(evas_object_textblock_text_markup_get(tb), "This \xc2\xb7 
is"));
+   fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf));
 
buf = "This  is";
evas_object_textblock_text_markup_set(tb, buf);
-   fail_if(strcmp(evas_object_textblock_text_markup_get(tb), "This \xc2\xa0 
is"));
+   fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf));
 
END_TB_TEST();
 }

-- 




[EGIT] [core/efl] efl-1.17 01/01: Evas textblock tests: Fix wrong test suite tests.

2016-02-26 Thread Tom Hacohen
tasn pushed a commit to branch efl-1.17.

http://git.enlightenment.org/core/efl.git/commit/?id=7ac3dbbfe376792edd902e2380795f0bc2466012

commit 7ac3dbbfe376792edd902e2380795f0bc2466012
Author: Tom Hacohen 
Date:   Fri Feb 26 09:34:36 2016 +

Evas textblock tests: Fix wrong test suite tests.

The tests were assuming that textblock returns a sanitised utf8 string.
This is not always correct, because textblock may cache and return the
set utf8 markup if the text hasn't changed since the last set.
---
 src/tests/evas/evas_test_textblock.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/tests/evas/evas_test_textblock.c 
b/src/tests/evas/evas_test_textblock.c
index 332a658..0f1ac08 100644
--- a/src/tests/evas/evas_test_textblock.c
+++ b/src/tests/evas/evas_test_textblock.c
@@ -3644,11 +3644,11 @@ START_TEST(evas_textblock_escaping)
 
const char *buf = "This  is";
evas_object_textblock_text_markup_set(tb, buf);
-   fail_if(strcmp(evas_object_textblock_text_markup_get(tb), "This \xc2\xb7 
is"));
+   fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf));
 
buf = "This  is";
evas_object_textblock_text_markup_set(tb, buf);
-   fail_if(strcmp(evas_object_textblock_text_markup_get(tb), "This \xc2\xa0 
is"));
+   fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf));
 
END_TB_TEST();
 }

-- 




[EGIT] [core/efl] master 01/01: Evas Filter: Use Eo.Base.constructor in the mixin

2016-02-26 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=17e3f8c1a675d0848763b9d8d790530087dccd21

commit 17e3f8c1a675d0848763b9d8d790530087dccd21
Author: Jean-Philippe Andre 
Date:   Fri Feb 26 18:24:47 2016 +0900

Evas Filter: Use Eo.Base.constructor in the mixin

This is made possible by inheriting first from an interface
instead of Eo.Base, thus implementing the Eo.Base interface.
---
 src/lib/evas/canvas/evas_filter.eo  | 17 +++--
 src/lib/evas/canvas/evas_filter_mixin.c | 19 ++-
 src/lib/evas/canvas/evas_object_image.c |  4 
 src/lib/evas/canvas/evas_object_text.c  |  3 ---
 4 files changed, 17 insertions(+), 26 deletions(-)

diff --git a/src/lib/evas/canvas/evas_filter.eo 
b/src/lib/evas/canvas/evas_filter.eo
index 85699b5..18a4d28 100644
--- a/src/lib/evas/canvas/evas_filter.eo
+++ b/src/lib/evas/canvas/evas_filter.eo
@@ -1,4 +1,4 @@
-mixin Evas.Filter (Efl.Gfx.Filter)
+mixin Evas.Filter (Efl.Gfx.Filter, Eo.Base)
 {
// Evas internal implementation
legacy_prefix: null;
@@ -19,19 +19,6 @@ mixin Evas.Filter (Efl.Gfx.Filter)
 val: bool;
  }
   }
-  ctor @protected {
- [[Initialize the Evas.Filter mixin.
-
-   Should be called in a parent's class constructor.
- ]]
-  }
-  dtor @protected {
- [[Release all data held by this Evas.Filter.
-
-   This may include image buffers allocated by the Evas engine.
-   This should be called at the beginning of a parent's class 
destructor.
- ]]
-  }
   input_alpha @protected {
  [[Called by Evas.Filter to determine whether the input is alpha or 
rgba.]]
  return: bool;
@@ -70,6 +57,8 @@ mixin Evas.Filter (Efl.Gfx.Filter)
   }
}
implements {
+  Eo.Base.constructor;
+  Eo.Base.destructor;
   Efl.Gfx.Filter.program.set;
   Efl.Gfx.Filter.program.get;
   Efl.Gfx.Filter.state.set;
diff --git a/src/lib/evas/canvas/evas_filter_mixin.c 
b/src/lib/evas/canvas/evas_filter_mixin.c
index 664cf15..428696a 100644
--- a/src/lib/evas/canvas/evas_filter_mixin.c
+++ b/src/lib/evas/canvas/evas_filter_mixin.c
@@ -583,22 +583,27 @@ _evas_filter_invalid_set(Eo *eo_obj EINA_UNUSED, 
Evas_Filter_Data *pd, Eina_Bool
  }
 }
 
-EOLIAN static void
-_evas_filter_ctor(Eo *eo_obj EINA_UNUSED, Evas_Filter_Data *pd)
+EOLIAN static Eo_Base *
+_evas_filter_eo_base_constructor(Eo *eo_obj, Evas_Filter_Data *pd)
 {
+   Eo *obj = NULL;
+
+   eo_do_super(eo_obj, MY_CLASS, obj = eo_constructor());
pd->data = eina_cow_alloc(evas_object_filter_cow);
SLKI(pd->lck);
+
+   return obj;
 }
 
 EOLIAN static void
-_evas_filter_dtor(Eo *eo_obj, Evas_Filter_Data *pd)
+_evas_filter_eo_base_destructor(Eo *eo_obj, Evas_Filter_Data *pd)
 {
Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, 
EVAS_OBJECT_CLASS);
Evas_Filter_Data_Binding *db;
Eina_Inlist *il;
 
-   if (!pd->data) return;
-   if (evas_object_filter_cow_default == pd->data) return;
+   if (!pd->data || (evas_object_filter_cow_default == pd->data))
+ goto finish;
 
if (pd->data->output)
  {
@@ -616,6 +621,8 @@ _evas_filter_dtor(Eo *eo_obj, Evas_Filter_Data *pd)
  }
evas_filter_program_del(pd->data->chain);
eina_stringshare_del(pd->data->code);
+
+finish:
eina_cow_free(evas_object_filter_cow, (const Eina_Cow_Data **) >data);
if (pd->has_cb)
  {
@@ -624,6 +631,8 @@ _evas_filter_dtor(Eo *eo_obj, Evas_Filter_Data *pd)
_render_post_cb, eo_obj));
  }
SLKD(pd->lck);
+
+   eo_do_super(eo_obj, MY_CLASS, eo_destructor());
 }
 
 EOLIAN static void
diff --git a/src/lib/evas/canvas/evas_object_image.c 
b/src/lib/evas/canvas/evas_object_image.c
index dfeda99..474386f 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -371,8 +371,6 @@ _evas_image_eo_base_constructor(Eo *eo_obj, Evas_Image_Data 
*o)
 EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
  }
 
-   eo_do(eo_obj, evas_filter_ctor());
-
return eo_obj;
 }
 
@@ -3030,8 +3028,6 @@ evas_object_image_free(Evas_Object *eo_obj, 
Evas_Object_Protected_Data *obj)
 }
EINA_COW_PIXEL_WRITE_END(o, pixi_write);
  }
-
-   eo_do(eo_obj, evas_filter_dtor());
 }
 
 static void
diff --git a/src/lib/evas/canvas/evas_object_text.c 
b/src/lib/evas/canvas/evas_object_text.c
index d6d3ee5..28e756c 100644
--- a/src/lib/evas/canvas/evas_object_text.c
+++ b/src/lib/evas/canvas/evas_object_text.c
@@ -1603,8 +1603,6 @@ evas_object_text_init(Evas_Object *eo_obj)
o->bidi_par_props = evas_bidi_paragraph_props_new();
o->inherit_paragraph_direction = EINA_TRUE;
 #endif
-
-   eo_do(eo_obj, evas_filter_ctor());
 }
 
 EOLIAN static void
@@ -1621,7 +1619,6 @@ evas_object_text_free(Evas_Object *eo_obj, 
Evas_Object_Protected_Data *obj)
Evas_Text_Data *o = eo_data_scope_get(eo_obj, 

[EGIT] [core/efl] efl-1.17 02/02: Edje textblock: Assume textblock knows to deal with setting the same markup.

2016-02-26 Thread Tom Hacohen
tasn pushed a commit to branch efl-1.17.

http://git.enlightenment.org/core/efl.git/commit/?id=8d9a883f3a953b42920cf289d2d7346a2c7dac2a

commit 8d9a883f3a953b42920cf289d2d7346a2c7dac2a
Author: Tom Hacohen 
Date:   Fri Feb 26 09:07:20 2016 +

Edje textblock: Assume textblock knows to deal with setting the same markup.

Edje was trying to be smart and ask textblock for its markup and compare
with its own cache before setting it again. This is completely wrong,
and textblock is smart enough to deal with it now.

@fix
---
 src/lib/edje/edje_calc.c | 8 +---
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c
index 1704670..4a60ef4 100644
--- a/src/lib/edje/edje_calc.c
+++ b/src/lib/edje/edje_calc.c
@@ -1564,8 +1564,6 @@ _edje_part_recalc_single_textblock(FLOAT_T sc,
 
 if (stl)
   {
- const char *ptxt;
-
  if (evas_object_textblock_style_get(ep->object) != stl->style)
evas_object_textblock_style_set(ep->object, stl->style);
  // FIXME: need to account for editing
@@ -1575,11 +1573,7 @@ _edje_part_recalc_single_textblock(FLOAT_T sc,
}
  else
{
-  ptxt = evas_object_textblock_text_markup_get(ep->object);
-  if (((!ptxt) && (text)) ||
-  ((ptxt) && (text) && (strcmp(ptxt, text))) ||
-  ((ptxt) && (!text)))
-evas_object_textblock_text_markup_set(ep->object, text);
+  evas_object_textblock_text_markup_set(ep->object, text);
}
  if ((chosen_desc->text.min_x) || (chosen_desc->text.min_y))
{

-- 




[EGIT] [core/efl] efl-1.17 01/02: Evas textblock: Fix markup cache, was completely broken.

2016-02-26 Thread Tom Hacohen
tasn pushed a commit to branch efl-1.17.

http://git.enlightenment.org/core/efl.git/commit/?id=00300e7761282cd04a49f8d4f851a670436a3b2f

commit 00300e7761282cd04a49f8d4f851a670436a3b2f
Author: Tom Hacohen 
Date:   Fri Feb 26 09:06:00 2016 +

Evas textblock: Fix markup cache, was completely broken.

The markup cache was completely broken. It was not compared correctly,
so it wasn't even used, but regardless it was cleared just after being
set in some of the cases.

This is the first part of a performance regression fix in elm label.

@fix
---
 src/lib/evas/canvas/evas_object_textblock.c | 29 +
 1 file changed, 13 insertions(+), 16 deletions(-)

diff --git a/src/lib/evas/canvas/evas_object_textblock.c 
b/src/lib/evas/canvas/evas_object_textblock.c
index 70a9e3a..0287349 100644
--- a/src/lib/evas/canvas/evas_object_textblock.c
+++ b/src/lib/evas/canvas/evas_object_textblock.c
@@ -505,7 +505,7 @@ struct _Evas_Object_Textblock
   int  l, r, t, b;
} style_pad;
double  valign;
-   char   *markup_text;
+   Eina_Stringshare   *markup_text;
void   *engine_data;
const char *repch;
const char *bidi_delimiters;
@@ -6473,7 +6473,7 @@ _textblock_style_generic_set(Evas_Object *eo_obj, 
Evas_Textblock_Style *ts,
 Evas_Textblock_Style *old_ts;
 if (o->markup_text)
   {
- free(o->markup_text);
+ eina_stringshare_del(o->markup_text);
  o->markup_text = NULL;
   }
 
@@ -6831,10 +6831,14 @@ _evas_textblock_text_markup_set(Eo *eo_obj EINA_UNUSED, 
Evas_Textblock_Data *o,
 {
Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, 
EVAS_OBJECT_CLASS);
evas_object_async_block(obj);
-   if ((text != o->markup_text) && (o->markup_text))
+
  {
-free(o->markup_text);
-o->markup_text = NULL;
+text = eina_stringshare_add(text);
+if (text == o->markup_text)
+  {
+ /* Text is the same, do nothing. */
+ return;
+  }
  }
 
_nodes_clear(eo_obj);
@@ -6844,15 +6848,6 @@ _evas_textblock_text_markup_set(Eo *eo_obj EINA_UNUSED, 
Evas_Textblock_Data *o,
 EINA_INLIST_GET(o->text_nodes),
 EINA_INLIST_GET(o->cursor->node)));
 
-   if (!o->style && !o->style_user)
- {
-if (text != o->markup_text)
-  {
- if (text) o->markup_text = strdup(text);
-  }
-return;
- }
-
evas_textblock_cursor_paragraph_first(o->cursor);
 
evas_object_textblock_text_markup_prepend(o->cursor, text);
@@ -6865,6 +6860,8 @@ _evas_textblock_text_markup_set(Eo *eo_obj EINA_UNUSED, 
Evas_Textblock_Data *o,
 EINA_LIST_FOREACH(o->cursors, l, data)
evas_textblock_cursor_paragraph_first(data);
  }
+
+o->markup_text = text;
 }
 
 EAPI void
@@ -7134,7 +7131,7 @@ _evas_textblock_text_markup_get(Eo *eo_obj EINA_UNUSED, 
Evas_Textblock_Data *o)
 free(text_base);
  }
 
-   (((Evas_Textblock_Data *)o)->markup_text) = eina_strbuf_string_steal(txt);
+   (((Evas_Textblock_Data *)o)->markup_text) = 
eina_stringshare_add(eina_strbuf_string_get(txt));
eina_strbuf_free(txt);
markup = (o->markup_text);
 
@@ -9248,7 +9245,7 @@ _evas_textblock_changed(Evas_Textblock_Data *o, 
Evas_Object *eo_obj)
o->content_changed = 1;
if (o->markup_text)
  {
-free(o->markup_text);
+eina_stringshare_del(o->markup_text);
 o->markup_text = NULL;
  }
 

-- 




[EGIT] [core/efl] master 01/02: Evas textblock: Fix markup cache, was completely broken.

2016-02-26 Thread Tom Hacohen
tasn pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=34020ed131c7a5da4d60bb3a452fac0d9ee5fdd1

commit 34020ed131c7a5da4d60bb3a452fac0d9ee5fdd1
Author: Tom Hacohen 
Date:   Fri Feb 26 09:06:00 2016 +

Evas textblock: Fix markup cache, was completely broken.

The markup cache was completely broken. It was not compared correctly,
so it wasn't even used, but regardless it was cleared just after being
set in some of the cases.

This is the first part of a performance regression fix in elm label.

@fix
---
 src/lib/evas/canvas/evas_object_textblock.c | 29 +
 1 file changed, 13 insertions(+), 16 deletions(-)

diff --git a/src/lib/evas/canvas/evas_object_textblock.c 
b/src/lib/evas/canvas/evas_object_textblock.c
index 79e6754..11ff1fe 100644
--- a/src/lib/evas/canvas/evas_object_textblock.c
+++ b/src/lib/evas/canvas/evas_object_textblock.c
@@ -505,7 +505,7 @@ struct _Evas_Object_Textblock
   int  l, r, t, b;
} style_pad;
double  valign;
-   char   *markup_text;
+   Eina_Stringshare   *markup_text;
void   *engine_data;
const char *repch;
const char *bidi_delimiters;
@@ -6490,7 +6490,7 @@ _textblock_style_generic_set(Evas_Object *eo_obj, 
Evas_Textblock_Style *ts,
 Evas_Textblock_Style *old_ts;
 if (o->markup_text)
   {
- free(o->markup_text);
+ eina_stringshare_del(o->markup_text);
  o->markup_text = NULL;
   }
 
@@ -6848,10 +6848,14 @@ _evas_textblock_text_markup_set(Eo *eo_obj EINA_UNUSED, 
Evas_Textblock_Data *o,
 {
Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, 
EVAS_OBJECT_CLASS);
evas_object_async_block(obj);
-   if ((text != o->markup_text) && (o->markup_text))
+
  {
-free(o->markup_text);
-o->markup_text = NULL;
+text = eina_stringshare_add(text);
+if (text == o->markup_text)
+  {
+ /* Text is the same, do nothing. */
+ return;
+  }
  }
 
_nodes_clear(eo_obj);
@@ -6861,15 +6865,6 @@ _evas_textblock_text_markup_set(Eo *eo_obj EINA_UNUSED, 
Evas_Textblock_Data *o,
 EINA_INLIST_GET(o->text_nodes),
 EINA_INLIST_GET(o->cursor->node)));
 
-   if (!o->style && !o->style_user)
- {
-if (text != o->markup_text)
-  {
- if (text) o->markup_text = strdup(text);
-  }
-return;
- }
-
evas_textblock_cursor_paragraph_first(o->cursor);
 
evas_object_textblock_text_markup_prepend(o->cursor, text);
@@ -6882,6 +6877,8 @@ _evas_textblock_text_markup_set(Eo *eo_obj EINA_UNUSED, 
Evas_Textblock_Data *o,
 EINA_LIST_FOREACH(o->cursors, l, data)
evas_textblock_cursor_paragraph_first(data);
  }
+
+o->markup_text = text;
 }
 
 EAPI void
@@ -7151,7 +7148,7 @@ _evas_textblock_text_markup_get(Eo *eo_obj EINA_UNUSED, 
Evas_Textblock_Data *o)
 free(text_base);
  }
 
-   (((Evas_Textblock_Data *)o)->markup_text) = eina_strbuf_string_steal(txt);
+   (((Evas_Textblock_Data *)o)->markup_text) = 
eina_stringshare_add(eina_strbuf_string_get(txt));
eina_strbuf_free(txt);
markup = (o->markup_text);
 
@@ -9266,7 +9263,7 @@ _evas_textblock_changed(Evas_Textblock_Data *o, 
Evas_Object *eo_obj)
o->content_changed = 1;
if (o->markup_text)
  {
-free(o->markup_text);
+eina_stringshare_del(o->markup_text);
 o->markup_text = NULL;
  }
 

-- 




[EGIT] [core/efl] master 02/02: Edje textblock: Assume textblock knows to deal with setting the same markup.

2016-02-26 Thread Tom Hacohen
tasn pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=675a263f97a9766640eea7b5c4dab9850c817949

commit 675a263f97a9766640eea7b5c4dab9850c817949
Author: Tom Hacohen 
Date:   Fri Feb 26 09:07:20 2016 +

Edje textblock: Assume textblock knows to deal with setting the same markup.

Edje was trying to be smart and ask textblock for its markup and compare
with its own cache before setting it again. This is completely wrong,
and textblock is smart enough to deal with it now.

@fix
---
 src/lib/edje/edje_calc.c | 8 +---
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c
index a36a80e..ea416c9 100644
--- a/src/lib/edje/edje_calc.c
+++ b/src/lib/edje/edje_calc.c
@@ -1564,8 +1564,6 @@ _edje_part_recalc_single_textblock(FLOAT_T sc,
 
 if (stl)
   {
- const char *ptxt;
-
  if (evas_object_textblock_style_get(ep->object) != stl->style)
evas_object_textblock_style_set(ep->object, stl->style);
  // FIXME: need to account for editing
@@ -1575,11 +1573,7 @@ _edje_part_recalc_single_textblock(FLOAT_T sc,
}
  else
{
-  ptxt = evas_object_textblock_text_markup_get(ep->object);
-  if (((!ptxt) && (text)) ||
-  ((ptxt) && (text) && (strcmp(ptxt, text))) ||
-  ((ptxt) && (!text)))
-evas_object_textblock_text_markup_set(ep->object, text);
+  evas_object_textblock_text_markup_set(ep->object, text);
}
  if ((chosen_desc->text.min_x) || (chosen_desc->text.min_y))
{

--