[EGIT] [core/efl] master 02/02: Edje textblock: Assume textblock knows to deal with setting the same markup.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=675a263f97a9766640eea7b5c4dab9850c817949 commit 675a263f97a9766640eea7b5c4dab9850c817949 Author: Tom HacohenDate: 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)) { --
[EGIT] [core/enlightenment] master 01/01: update winlist ui when using directional window selection
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=71a85b7d0819a32fa1f329bed610685ee10065a7 commit 71a85b7d0819a32fa1f329bed610685ee10065a7 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=8c2396cd9b04ad3464cb3dd3aa0bb710513d3456 commit 8c2396cd9b04ad3464cb3dd3aa0bb710513d3456 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=7b07b03c21a2639feb0435999ad276e1f3514c1f commit 7b07b03c21a2639feb0435999ad276e1f3514c1f Author: Mike BlumenkrantzDate: 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/efl] efl-1.17 02/02: Edje textblock: Assume textblock knows to deal with setting the same markup.
tasn pushed a commit to branch efl-1.17. http://git.enlightenment.org/core/efl.git/commit/?id=8d9a883f3a953b42920cf289d2d7346a2c7dac2a commit 8d9a883f3a953b42920cf289d2d7346a2c7dac2a Author: Tom HacohenDate: 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.
tasn pushed a commit to branch efl-1.17. http://git.enlightenment.org/core/efl.git/commit/?id=00300e7761282cd04a49f8d4f851a670436a3b2f commit 00300e7761282cd04a49f8d4f851a670436a3b2f Author: Tom HacohenDate: 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/01: Evas textblock tests: Fix wrong test suite tests.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=84fd52921e86df91f2a5e305fb38583a8460040a commit 84fd52921e86df91f2a5e305fb38583a8460040a Author: Tom HacohenDate: 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.
tasn pushed a commit to branch efl-1.17. http://git.enlightenment.org/core/efl.git/commit/?id=7ac3dbbfe376792edd902e2380795f0bc2466012 commit 7ac3dbbfe376792edd902e2380795f0bc2466012 Author: Tom HacohenDate: 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] [tools/enventor] master 02/03: ctxpopup: Refactoring to get sliders easily.
jaehyun pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=f96c2a92a67b4242b8769f789247ac272fa75342 commit f96c2a92a67b4242b8769f789247ac272fa75342 Author: Jaehyun ChoDate: 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] [tools/enventor] master 01/03: ctxpopup: Refactoring to get toggles easily.
jaehyun pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=61a0effa333840625f7a7e4ae5b1220c5d4f43ca commit 61a0effa333840625f7a7e4ae5b1220c5d4f43ca Author: Jaehyun ChoDate: 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] [core/efl] master 01/01: Evas Filter: Use Eo.Base.constructor in the mixin
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=17e3f8c1a675d0848763b9d8d790530087dccd21 commit 17e3f8c1a675d0848763b9d8d790530087dccd21 Author: Jean-Philippe AndreDate: 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] [tools/enventor] master 03/03: ctxpopup: Reset candidate values by backspace key.
jaehyun pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=69029879d8c86c71a413d53b1db9b9cf9fa376b5 commit 69029879d8c86c71a413d53b1db9b9cf9fa376b5 Author: Jaehyun ChoDate: 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] [core/efl] master 01/02: Evas textblock: Fix markup cache, was completely broken.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=34020ed131c7a5da4d60bb3a452fac0d9ee5fdd1 commit 34020ed131c7a5da4d60bb3a452fac0d9ee5fdd1 Author: Tom HacohenDate: 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/elementary] master 01/01: entry: send focus/unfocus signals to scroller interface
ami pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=d6525a9c0ea58915a21362c2bce67117280151a5 commit d6525a9c0ea58915a21362c2bce67117280151a5 Author: Amitesh SinghDate: 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] [apps/empc] master 01/01: remove broken list variable aliasing during apm update processing
discomfitor pushed a commit to branch master. http://git.enlightenment.org/apps/empc.git/commit/?id=bd77f49f3c8eebffef3ee086a5abcfb038fe6d3c commit bd77f49f3c8eebffef3ee086a5abcfb038fe6d3c Author: zmikeDate: 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] [tools/enventor] master 01/01: updated icons
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=234f6b2f1bbbcab86d6516ac125aa5a1c7ec4ccd commit 234f6b2f1bbbcab86d6516ac125aa5a1c7ec4ccd Author: Hermet ParkDate: 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] [tools/enventor] master 01/01: statusbar: improve ui.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=fd240531ff000ac72fb352bb43f51569a519f330 commit fd240531ff000ac72fb352bb43f51569a519f330 Author: Hermet ParkDate: 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] [core/elementary] master 01/01: genlist: fix a typo.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=4b8fc63c2045456af0812306b445ebadb16f7d60 commit 4b8fc63c2045456af0812306b445ebadb16f7d60 Author: Hermet ParkDate: 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 01/01: edc_navigator: 2nd patch for base navigation behavior.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=50a7b468ef5ae48b0dc9ef027f970903d1f751ed commit 50a7b468ef5ae48b0dc9ef027f970903d1f751ed Author: Hermet ParkDate: 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: view list: free style in base destructor.
ami pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=1018bcca27dafb04b5002da8094d5704396e5d2d commit 1018bcca27dafb04b5002da8094d5704396e5d2d Author: Amitesh SinghDate: 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] [core/elementary] master 03/03: list: set update hints on item edje objects
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=c45d730af6c574c3208f954ae7b943ca0ca61c8f commit c45d730af6c574c3208f954ae7b943ca0ca61c8f Author: Mike BlumenkrantzDate: 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 02/03: list: set internal box as homogeneous if no separator items are present
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=9f4c43c20dfa36e7a8be18278acf4336c13574d7 commit 9f4c43c20dfa36e7a8be18278acf4336c13574d7 Author: Mike BlumenkrantzDate: 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 01/03: list test: use 1.0 instead of EVAS_HINT_EXPAND
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=e7f674b523ee840c3f0dc064fa22a04c74c47c3a commit e7f674b523ee840c3f0dc064fa22a04c74c47c3a Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=55e0dc6f4e33f52cf0bebb53b55deef5f63c5e13 commit 55e0dc6f4e33f52cf0bebb53b55deef5f63c5e13 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=9fa7f41e3552b49a8bcaf629db1ead3bbd4f11e6 commit 9fa7f41e3552b49a8bcaf629db1ead3bbd4f11e6 Author: Mike BlumenkrantzDate: 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,