[EGIT] [core/efl] master 01/01: [elm] Add missing sizing eval hook at check
bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8c90deecd737cf025ce1c3162e50937639c30f09 commit 8c90deecd737cf025ce1c3162e50937639c30f09 Author: Subodh Kumar Date: Tue Jul 23 09:37:09 2019 +0200 [elm] Add missing sizing eval hook at check Summary: check is not shown in our Tizen demo. sizing eval missing. @fix Test Plan: NA Reviewers: zmike, Hermet, cedric, bu5hm4n Subscribers: bu5hm4n, #reviewers, #committers Tags: #efl Reviewed-by: Marcel Hollerbach Differential Revision: https://phab.enlightenment.org/D9378 --- src/lib/elementary/efl_ui_check.c | 16 +++- src/lib/elementary/efl_ui_radio.c | 16 +--- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/lib/elementary/efl_ui_check.c b/src/lib/elementary/efl_ui_check.c index 9f575621ff..a5072728ea 100644 --- a/src/lib/elementary/efl_ui_check.c +++ b/src/lib/elementary/efl_ui_check.c @@ -129,6 +129,19 @@ _efl_ui_check_efl_ui_widget_on_access_activate(Eo *obj EINA_UNUSED, Efl_Ui_Check return EINA_TRUE; } +EOLIAN static void +_efl_ui_check_elm_layout_sizing_eval(Eo *obj, Efl_Ui_Check_Data *_pd EINA_UNUSED) +{ + Evas_Coord minw = -1, minh = -1; + ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); + + elm_coords_finger_size_adjust(1, , 1, ); + edje_object_size_min_restricted_calc + (wd->resize_obj, , , minw, minh); + evas_object_size_hint_min_set(obj, minw, minh); + evas_object_size_hint_max_set(obj, -1, -1); +} + static Eina_Bool _key_action_activate(Evas_Object *obj, const char *params EINA_UNUSED) { @@ -396,7 +409,8 @@ ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(MY_CLASS_PFX) #define EFL_UI_CHECK_EXTRA_OPS \ ELM_LAYOUT_CONTENT_ALIASES_OPS(MY_CLASS_PFX), \ - ELM_LAYOUT_TEXT_ALIASES_OPS(MY_CLASS_PFX) + ELM_LAYOUT_TEXT_ALIASES_OPS(MY_CLASS_PFX), \ + ELM_LAYOUT_SIZING_EVAL_OPS(efl_ui_check) #include "efl_ui_check.eo.c" diff --git a/src/lib/elementary/efl_ui_radio.c b/src/lib/elementary/efl_ui_radio.c index 099001fdb3..edbc14844f 100644 --- a/src/lib/elementary/efl_ui_radio.c +++ b/src/lib/elementary/efl_ui_radio.c @@ -181,19 +181,6 @@ _efl_ui_radio_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Radio_Data *sd EINA_UNUS return int_ret; } -EOLIAN static void -_efl_ui_radio_elm_layout_sizing_eval(Eo *obj, Efl_Ui_Radio_Data *_pd EINA_UNUSED) -{ - Evas_Coord minw = -1, minh = -1; - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - - elm_coords_finger_size_adjust(1, , 1, ); - edje_object_size_min_restricted_calc - (wd->resize_obj, , , minw, minh); - evas_object_size_hint_min_set(obj, minw, minh); - evas_object_size_hint_max_set(obj, -1, -1); -} - static void _radio_on_cb(void *data, Evas_Object *obj EINA_UNUSED, @@ -327,8 +314,7 @@ ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_radio, Efl_Ui_Radio_Data) ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(MY_CLASS_PFX) #define EFL_UI_RADIO_EXTRA_OPS \ - ELM_LAYOUT_TEXT_ALIASES_OPS(MY_CLASS_PFX), \ - ELM_LAYOUT_SIZING_EVAL_OPS(efl_ui_radio) + ELM_LAYOUT_TEXT_ALIASES_OPS(MY_CLASS_PFX) #include "efl_ui_radio.eo.c" #include "efl_ui_radio_group.eo.c" --
[EGIT] [core/efl] master 01/03: tests/ecore_wl2: Fix assert tests for some window functions
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f481b6acf19c7a59c43fc138070c0fce04fd1988 commit f481b6acf19c7a59c43fc138070c0fce04fd1988 Author: Christopher Michael Date: Thu Aug 1 08:53:21 2019 -0400 tests/ecore_wl2: Fix assert tests for some window functions ref T8016 --- src/tests/ecore_wl2/ecore_wl2_test_window.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tests/ecore_wl2/ecore_wl2_test_window.c b/src/tests/ecore_wl2/ecore_wl2_test_window.c index 3f5e98cd50..5fa938ca24 100644 --- a/src/tests/ecore_wl2/ecore_wl2_test_window.c +++ b/src/tests/ecore_wl2/ecore_wl2_test_window.c @@ -58,7 +58,7 @@ EFL_START_TEST(wl2_window_surface_test) ck_assert(surf != NULL); id = ecore_wl2_window_surface_id_get(win); - ck_assert_int_lt(id, 0); + ck_assert_int_gt(id, 0); ck_assert_int_eq(wl_proxy_get_id((struct wl_proxy *)surf), id); } @@ -77,7 +77,7 @@ EFL_START_TEST(wl2_window_rotation_get) ck_assert(win != NULL); rot = ecore_wl2_window_rotation_get(win); - ck_assert_int_lt(rot, 0); + ck_assert_int_ge(rot, 0); } EFL_END_TEST --
[EGIT] [website/www-content] master 01/01: Wiki page eo.md changed with summary [Add link to editor config files] by Xavi Artigas
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=0cd2315e58516af1e8fcc129da27d7d796d7bc87 commit 0cd2315e58516af1e8fcc129da27d7d796d7bc87 Author: Xavi Artigas Date: Wed Aug 28 07:41:07 2019 -0700 Wiki page eo.md changed with summary [Add link to editor config files] by Xavi Artigas --- pages/contrib/docs/eo.md.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/contrib/docs/eo.md.txt b/pages/contrib/docs/eo.md.txt index d7346f684..9ad81ce24 100644 --- a/pages/contrib/docs/eo.md.txt +++ b/pages/contrib/docs/eo.md.txt @@ -598,7 +598,7 @@ What follows is a precedence table of operators in Eolian, from higher to lower - Please try to keep line length below 80 columns. - Put a space before every opening brace as well as before inherits list. -The example code should serve as a decent enough example. +You can find handy syntax highlighting config files for different editors [here](https://git.enlightenment.org/editors). ## Common Eolian Mistakes ## --
[EGIT] [core/efl] master 06/14: edje - fix conversion of edje var from int to float to use tmp var
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d9bdf12019002d6ade30f2b4db154686a08b31c2 commit d9bdf12019002d6ade30f2b4db154686a08b31c2 Author: Carsten Haitzler (Rasterman) Date: Sat Aug 10 22:59:27 2019 +0100 edje - fix conversion of edje var from int to float to use tmp var fix CID 1402624 --- src/lib/edje/edje_var.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/edje/edje_var.c b/src/lib/edje/edje_var.c index 6fa72ce4af..ab92e61fb7 100644 --- a/src/lib/edje/edje_var.c +++ b/src/lib/edje/edje_var.c @@ -376,7 +376,8 @@ _edje_var_var_float_get(Edje *ed EINA_UNUSED, Edje_Var *var) } else if (var->type == EDJE_VAR_INT) { -var->data.f.v = (double)(var->data.i.v); +double tmp = (double)(var->data.i.v); +var->data.f.v = tmp; var->type = EDJE_VAR_FLOAT; } else if (var->type == EDJE_VAR_NONE) --
[EGIT] [core/efl] master 01/01: tests/popup: add unit tests for alert_popup
bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4410f8b080060acc97a841e2a2fb74acb0d61621 commit 4410f8b080060acc97a841e2a2fb74acb0d61621 Author: Mike Blumenkrantz Date: Tue Aug 6 10:03:45 2019 -0400 tests/popup: add unit tests for alert_popup this covers all cases from the elm_test example Reviewed-by: Marcel Hollerbach Differential Revision: https://phab.enlightenment.org/D9512 --- src/tests/elementary/efl_ui_test_popup.c | 69 1 file changed, 69 insertions(+) diff --git a/src/tests/elementary/efl_ui_test_popup.c b/src/tests/elementary/efl_ui_test_popup.c index 45231674e4..c7e2913761 100644 --- a/src/tests/elementary/efl_ui_test_popup.c +++ b/src/tests/elementary/efl_ui_test_popup.c @@ -174,10 +174,79 @@ EFL_START_TEST(efl_ui_test_popup_backwall_img) } EFL_END_TEST +static void +_popup_button_click(void *data, const Efl_Event *ev) +{ + Efl_Ui_Alert_Popup_Button_Clicked_Event *event = ev->info; + int *called = data; + + *called = event->button_type; +} + +EFL_START_TEST(efl_ui_test_popup_alert) +{ + Eo *win, *popup; + char buf[PATH_MAX]; + Eina_Size2D layout_sz_min; + int called; + + win = win_add(); + efl_gfx_entity_size_set(win, EINA_SIZE2D(WIN_SIZE, WIN_SIZE)); + + popup = efl_add(EFL_UI_ALERT_POPUP_CLASS, win); + efl_text_set(efl_part(popup, "title"), "title"); + + efl_gfx_entity_size_set(popup, EINA_SIZE2D(160, 160)); + + Eo *layout = efl_add(EFL_UI_LAYOUT_CLASS, popup); + snprintf(buf, sizeof(buf), "%s/objects/test.edj", ELM_TEST_DATA_DIR); + ck_assert(efl_file_simple_load(layout, buf, "efl_ui_popup_scroll_content")); + efl_canvas_group_calculate(layout); + + layout_sz_min = efl_gfx_hint_size_combined_min_get(layout); + + efl_content_set(popup, layout); + efl_ui_alert_popup_button_set(popup, EFL_UI_ALERT_POPUP_BUTTON_POSITIVE, "Yes", NULL); + efl_ui_alert_popup_button_set(popup, EFL_UI_ALERT_POPUP_BUTTON_NEGATIVE, "No", NULL); + efl_ui_alert_popup_button_set(popup, EFL_UI_ALERT_POPUP_BUTTON_USER, "Cancel", NULL); + + efl_event_callback_add(popup, EFL_UI_ALERT_POPUP_EVENT_BUTTON_CLICKED, _popup_button_click, ); + + get_me_to_those_events(popup); + { + /* the layout should currently be the size of its calculated (edje) min size */ + Eina_Size2D layout_sz = efl_gfx_entity_size_get(layout); + ck_assert_int_eq(layout_sz.w, layout_sz_min.w); + ck_assert_int_eq(layout_sz.h, layout_sz_min.h); + } + + Eo *btn_layout = efl_content_get(efl_part(popup, "efl.buttons")); + /* verify button events work as expected using the layout set above: + + Cancel | Yes | No +*/ + called = -1; + click_part(btn_layout, "efl.button1"); + ecore_main_loop_iterate(); + ck_assert_int_eq(called, EFL_UI_ALERT_POPUP_BUTTON_USER); + + called = -1; + click_part(btn_layout, "efl.button2"); + ecore_main_loop_iterate(); + ck_assert_int_eq(called, EFL_UI_ALERT_POPUP_BUTTON_POSITIVE); + + called = -1; + click_part(btn_layout, "efl.button3"); + ecore_main_loop_iterate(); + ck_assert_int_eq(called, EFL_UI_ALERT_POPUP_BUTTON_NEGATIVE); +} +EFL_END_TEST + void efl_ui_test_popup(TCase *tc) { tcase_add_test(tc, efl_ui_test_popup_events); tcase_add_test(tc, efl_ui_test_popup_basic_sizing); tcase_add_test(tc, efl_ui_test_popup_basic_align); tcase_add_test(tc, efl_ui_test_popup_backwall_img); + tcase_add_test(tc, efl_ui_test_popup_alert); } --
[EGIT] [core/efl] master 01/01: elm_popup: calculate the label min size of popup before the popup group calculation
jaehyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=10a5d83e83e39b943aab6bca5e999e5862c6dcbd commit 10a5d83e83e39b943aab6bca5e999e5862c6dcbd Author: Taehyub Kim Date: Tue Sep 3 19:47:01 2019 +0900 elm_popup: calculate the label min size of popup before the popup group calculation Summary: consider the label min width size before the popup group calculation @fix Test Plan: 1. run elementary_test popup Reviewers: Jaehyun_Cho, woohyun Reviewed By: Jaehyun_Cho Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9818 --- src/lib/elementary/elc_popup.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/elc_popup.c b/src/lib/elementary/elc_popup.c index 8117d15b9b..df9e4e70e8 100644 --- a/src/lib/elementary/elc_popup.c +++ b/src/lib/elementary/elc_popup.c @@ -1039,8 +1039,11 @@ _content_text_set(Evas_Object *obj, evas_object_event_callback_add (sd->text_content_obj, EVAS_CALLBACK_DEL, _on_text_content_del, obj); - elm_label_line_wrap_set(sd->text_content_obj, sd->content_text_wrap_type); + elm_label_line_wrap_set(sd->text_content_obj, ELM_WRAP_NONE); elm_object_text_set(sd->text_content_obj, text); + efl_canvas_group_calculate(sd->text_content_obj); + elm_label_line_wrap_set(sd->text_content_obj, sd->content_text_wrap_type); + evas_object_size_hint_weight_set (sd->text_content_obj, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set --
[EGIT] [core/efl] master 01/01: eolian_mono: remove redundant code in NativeMethods
lauromoura pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f4d9188ca75b1961d1936abf47fb2685c35d5ee2 commit f4d9188ca75b1961d1936abf47fb2685c35d5ee2 Author: Yeongjong Lee Date: Sun Sep 8 22:13:40 2019 -0300 eolian_mono: remove redundant code in NativeMethods Summary: Duplicated interface's NativeMethods code will be removed. they are called in `GetInterfaces`. Size of efl_mono.dll 6,587,392 bytes(6.6MB) -> 4,112,384 bytes (4.1MB) Test Plan: ninja test Reviewers: felipealmeida, lauromoura, vitor.sousa Reviewed By: lauromoura Subscribers: cedric, #reviewers, woohyun, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9752 --- src/bin/eolian_mono/eolian/mono/klass.hh | 20 +--- src/bindings/mono/eo_mono/EoWrapper.cs | 2 +- src/bindings/mono/eo_mono/iwrapper.cs| 24 +++- 3 files changed, 21 insertions(+), 25 deletions(-) diff --git a/src/bin/eolian_mono/eolian/mono/klass.hh b/src/bin/eolian_mono/eolian/mono/klass.hh index f1b89abc71..c10bfb3fda 100644 --- a/src/bin/eolian_mono/eolian/mono/klass.hh +++ b/src/bin/eolian_mono/eolian/mono/klass.hh @@ -398,7 +398,7 @@ struct klass context); auto native_inherit_name = name_helpers::klass_native_inherit_name(cls); auto inherit_name = name_helpers::klass_inherit_name(cls); - auto implementable_methods = helpers::get_all_implementable_methods(cls, context); + auto implementable_methods = cls.functions; bool root = !helpers::has_regular_ancestor(cls); auto const& indent = current_indentation(inative_cxt); @@ -430,7 +430,7 @@ struct klass if(!as_generator( indent << scope_tab << "/// Gets the list of Eo operations to override.\n" << indent << scope_tab << "/// The list of Eo operations to be overload.\n" - << indent << scope_tab << "public override System.Collections.Generic.List GetEoOps(System.Type type)\n" + << indent << scope_tab << "public override System.Collections.Generic.List GetEoOps(System.Type type, bool includeInherited)\n" << indent << scope_tab << "{\n" << indent << scope_tab << scope_tab << "var descs = new System.Collections.Generic.List();\n" ) @@ -452,8 +452,22 @@ struct klass ).generate(sink, attributes::unused, inative_cxt)) return false; + if(!as_generator( + indent << scope_tab << scope_tab << "if (includeInherited)\n" + << indent << scope_tab(2) << "{\n" + << indent << scope_tab(3) << "var all_interfaces = type.GetInterfaces();\n" + << indent << scope_tab(3) << "foreach (var iface in all_interfaces)\n" + << indent << scope_tab(3) << "{\n" + << indent << scope_tab(4) << "var moredescs = ((Efl.Eo.NativeClass)iface.GetCustomAttributes(false)?.FirstOrDefault(attr => attr is Efl.Eo.NativeClass))?.GetEoOps(type, false);\n" + << indent << scope_tab(4) << "if (moredescs != null)\n" + << indent << scope_tab(5) << "descs.AddRange(moredescs);\n" + << indent << scope_tab(3) << "}\n" + << indent << scope_tab(2) << "}\n" + ).generate(sink, attributes::unused, inative_cxt)) + return false; + if (!root || context_find_tag(context).current_wrapper_kind != class_context::concrete) - if(!as_generator(indent << scope_tab << scope_tab << "descs.AddRange(base.GetEoOps(type));\n").generate(sink, attributes::unused, inative_cxt)) + if(!as_generator(indent << scope_tab << scope_tab << "descs.AddRange(base.GetEoOps(type, false));\n").generate(sink, attributes::unused, inative_cxt)) return false; if(!as_generator( diff --git a/src/bindings/mono/eo_mono/EoWrapper.cs b/src/bindings/mono/eo_mono/EoWrapper.cs index 688de85cae..1805071175 100644 --- a/src/bindings/mono/eo_mono/EoWrapper.cs +++ b/src/bindings/mono/eo_mono/EoWrapper.cs @@ -357,7 +357,7 @@ public abstract class EoWrapper : IWrapper, IDisposable /// Gets the list of Eo operations to override. /// The list of Eo operations to be overload. -public override System.Collections.Generic.List GetEoOps(Type type) +public override System.Collections.Generic.List GetEoOps(Type type, bool includeInherited) { var descs = new System.Collections.Generic.List(); diff --git a/src/bindings/mono/eo_mono/iwrapper.cs b/src/bindings/mono/eo_mono/iwrapper.cs index 6b7719e61f..a03e48a326 100644 --- a/src/bindings/mono/eo_mono/iwrapper.cs +++ b/src/bindings/mono/eo_mono/iwrapper.cs @@ -351,26 +351,8 @@ public class Globals if (nativeClass != null) { Eina.Log.Debug("nativeClass !=
[EGIT] [core/efl] master 02/03: tests/ecore_wl2: Add test for ecore_wl2_input_seat_id_get function
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f166cf3741c0a5ecc71a6a9ddf2b17b3b5f65fee commit f166cf3741c0a5ecc71a6a9ddf2b17b3b5f65fee Author: Christopher Michael Date: Thu Aug 1 08:53:45 2019 -0400 tests/ecore_wl2: Add test for ecore_wl2_input_seat_id_get function ref T8016 --- src/tests/ecore_wl2/ecore_wl2_test_input.c | 25 + 1 file changed, 25 insertions(+) diff --git a/src/tests/ecore_wl2/ecore_wl2_test_input.c b/src/tests/ecore_wl2/ecore_wl2_test_input.c index 074455a394..814fa800b3 100644 --- a/src/tests/ecore_wl2/ecore_wl2_test_input.c +++ b/src/tests/ecore_wl2/ecore_wl2_test_input.c @@ -43,11 +43,36 @@ EFL_START_TEST(wl2_input_seat_get) } EFL_END_TEST +EFL_START_TEST(wl2_input_seat_id_get) +{ + Ecore_Wl2_Display *disp; + Ecore_Wl2_Input *input; + Eina_Iterator *itr; + + disp = _display_connect(); + ck_assert(disp != NULL); + + itr = ecore_wl2_display_inputs_get(disp); + ck_assert(itr != NULL); + + EINA_ITERATOR_FOREACH(itr, input) + { +int id; + +id = ecore_wl2_input_seat_id_get(input); +ck_assert_int_ne(id, 0); + } + + eina_iterator_free(itr); +} +EFL_END_TEST + void ecore_wl2_test_input(TCase *tc) { if (getenv("WAYLAND_DISPLAY")) { tcase_add_test(tc, wl2_input_seat_get); +tcase_add_test(tc, wl2_input_seat_id_get); } } --
[EGIT] [core/efl] master 01/01: canvas vg: optimize memory usage in composition.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=27498629ed279557f6b179c6fc938406510ee760 commit 27498629ed279557f6b179c6fc938406510ee760 Author: Hermet Park Date: Wed Sep 11 14:27:47 2019 +0900 canvas vg: optimize memory usage in composition. Ector buffer allocates memory in default, We don't need to allocate buffer memory additionally to handle over outside. We can map/unmap ector buffer for reusing this. --- src/lib/evas/canvas/efl_canvas_vg_container.c | 35 ++- src/lib/evas/canvas/evas_vg_private.h | 2 ++ 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/src/lib/evas/canvas/efl_canvas_vg_container.c b/src/lib/evas/canvas/efl_canvas_vg_container.c index e265e33e11..d53d5624c3 100644 --- a/src/lib/evas/canvas/efl_canvas_vg_container.c +++ b/src/lib/evas/canvas/efl_canvas_vg_container.c @@ -79,27 +79,36 @@ _prepare_comp(Evas_Object_Protected_Data *obj, //vector object if (!pd->comp.buffer || (pd->comp.bound.w != mbound.w) || (pd->comp.bound.h != mbound.h)) { -if (pd->comp.pixels) free(pd->comp.pixels); -if (pd->comp.buffer) efl_unref(pd->comp.buffer); -pd->comp.pixels = malloc(sizeof(uint32_t) * (mbound.w * mbound.h)); -memset(pd->comp.pixels, init_buffer, sizeof(uint32_t) * (mbound.w * mbound.h)); +if (pd->comp.buffer) + { + if (pd->comp.pixels) + ector_buffer_unmap(pd->comp.buffer, pd->comp.pixels, pd->comp.length); + efl_unref(pd->comp.buffer); + } pd->comp.buffer = ENFN->ector_buffer_new(ENC, obj->layer->evas->evas, mbound.w, mbound.h, EFL_GFX_COLORSPACE_ARGB, ECTOR_BUFFER_FLAG_DRAWABLE | ECTOR_BUFFER_FLAG_CPU_READABLE | ECTOR_BUFFER_FLAG_CPU_WRITABLE); -ector_buffer_pixels_set(pd->comp.buffer, pd->comp.pixels, -mbound.w, mbound.h, 0, -EFL_GFX_COLORSPACE_ARGB, EINA_TRUE); pd->comp.bound.w = mbound.w; pd->comp.bound.h = mbound.h; pd->comp.vg_pd = obj; + +//Map +pd->comp.pixels = ector_buffer_map(pd->comp.buffer, >comp.length, + (ECTOR_BUFFER_FLAG_DRAWABLE | +ECTOR_BUFFER_FLAG_CPU_READABLE | +ECTOR_BUFFER_FLAG_CPU_WRITABLE), + 0, 0, mbound.w, mbound.h, + EFL_GFX_COLORSPACE_ARGB, + >comp.stride); +if (!pd->comp.pixels) ERR("Failed to map VG composite buffer"); } else { if (pd->comp.pixels) - memset(pd->comp.pixels, init_buffer, sizeof(uint32_t) * mbound.w * mbound.h); + memset(pd->comp.pixels, init_buffer, pd->comp.length); } pd->comp.bound.x = mbound.x; @@ -130,7 +139,7 @@ _prepare_comp(Evas_Object_Protected_Data *obj, //vector object ptransform, comp, comp_method); //4. Generating Composite Image. - ector_buffer_pixels_set(surface, pd->comp.pixels, mbound.w, mbound.h, 0, + ector_buffer_pixels_set(surface, pd->comp.pixels, mbound.w, mbound.h, pd->comp.stride, EFL_GFX_COLORSPACE_ARGB, EINA_TRUE); ector_surface_reference_point_set(surface, -mbound.x, -mbound.y); _draw_comp(obj, comp_target, surface, engine, output, context); @@ -228,8 +237,12 @@ _efl_canvas_vg_container_efl_object_destructor(Eo *obj, if (pd->blend_buffer) efl_unref(pd->blend_buffer); //Destroy comp surface - if (pd->comp.buffer) efl_unref(pd->comp.buffer); - if (pd->comp.pixels) free(pd->comp.pixels); + if (pd->comp.buffer) + { +if (pd->comp.pixels) + ector_buffer_unmap(pd->comp.buffer, pd->comp.pixels, pd->comp.length); +efl_unref(pd->comp.buffer); + } efl_unref(pd->comp_target); eina_list_free(pd->comp.src); diff --git a/src/lib/evas/canvas/evas_vg_private.h b/src/lib/evas/canvas/evas_vg_private.h index c3752b003b..c87753778b 100644 --- a/src/lib/evas/canvas/evas_vg_private.h +++ b/src/lib/evas/canvas/evas_vg_private.h @@ -84,6 +84,8 @@ typedef struct _Vg_Composite Evas_Object_Protected_Data *vg_pd; //Vector Object (for accessing backend engine) Ector_Buffer *buffer; //Composite Ector Buffer void *pixels; //Composite pixel buffer (actual data) + unsigned int length;//pixel buffer data size + unsigned int stride;//pixel buffer stride Eina_Rect bound;
[EGIT] [core/efl] master 05/10: efl_ui/scroll_util: don't trigger group_calc again on size changes
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=617bc90f128407f3927c5ffd4ea1b92aa3d47f0a commit 617bc90f128407f3927c5ffd4ea1b92aa3d47f0a Author: Mike Blumenkrantz Date: Fri Aug 16 15:06:16 2019 -0400 efl_ui/scroll_util: don't trigger group_calc again on size changes this is already handled elsewhere and can cause infinite recalc loops Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D9591 --- src/lib/elementary/efl_ui_scroll_util.c | 17 - 1 file changed, 17 deletions(-) diff --git a/src/lib/elementary/efl_ui_scroll_util.c b/src/lib/elementary/efl_ui_scroll_util.c index f21ed184ae..4336678fc7 100644 --- a/src/lib/elementary/efl_ui_scroll_util.c +++ b/src/lib/elementary/efl_ui_scroll_util.c @@ -210,19 +210,6 @@ _scroll_connector_bar_hide_cb(void *data, const Efl_Event *event) else if (type == EFL_UI_SCROLLBAR_DIRECTION_VERTICAL) efl_layout_signal_emit(wd->resize_obj, "efl,action,hide,vbar", "efl"); } -static void -_scroll_connector_resized_cb(void *data, const Efl_Event *ev EINA_UNUSED) -{ - Scroll_Connector_Context *ctx = data; - efl_canvas_group_change(ctx->obj); -} - -static void -_scroll_connector_size_hint_changed_cb(void *data, const Efl_Event *ev EINA_UNUSED) -{ - Scroll_Connector_Context *ctx = data; - efl_canvas_group_change(ctx->obj); -} void efl_ui_scroll_connector_bind(Eo *obj, Eo *manager) @@ -276,10 +263,6 @@ efl_ui_scroll_connector_bind(Eo *obj, Eo *manager) _scroll_connector_bar_show_cb, ctx); efl_event_callback_add(obj, EFL_UI_SCROLLBAR_EVENT_BAR_HIDE, _scroll_connector_bar_hide_cb, ctx); - efl_event_callback_add(obj, EFL_GFX_ENTITY_EVENT_SIZE_CHANGED, - _scroll_connector_resized_cb, ctx); - efl_event_callback_add(obj, EFL_GFX_ENTITY_EVENT_HINTS_CHANGED, - _scroll_connector_size_hint_changed_cb, ctx); } void --
[EGIT] [core/enlightenment] master 01/01: tiling - use a tiling specific border if it exists in theme and cfg
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=fa0608b50fb641517fd4cb51d93a734d47931658 commit fa0608b50fb641517fd4cb51d93a734d47931658 Author: Carsten Haitzler (Rasterman) Date: Thu Aug 1 13:47:30 2019 +0100 tiling - use a tiling specific border if it exists in theme and cfg if you set cfg not ot use nomral borders then use "tiling" if it exists instead of "pixel" as thats probably the right thing to do... --- src/modules/tiling/e_mod_tiling.c | 27 +-- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/modules/tiling/e_mod_tiling.c b/src/modules/tiling/e_mod_tiling.c index a0e33f206..62c6e29d0 100644 --- a/src/modules/tiling/e_mod_tiling.c +++ b/src/modules/tiling/e_mod_tiling.c @@ -567,24 +567,23 @@ _desk_config_apply(E_Desk *d, int old_nb_stacks, int new_nb_stacks) static void _client_apply_settings(E_Client *ec, Client_Extra *extra) { - if (!extra) - { -extra = tiling_entry_func(ec); - } + const char *bdname = "pixel"; - if (!extra || !extra->tiled) - return; + if (!extra) extra = tiling_entry_func(ec); - if (ec->maximized) - _e_client_unmaximize(ec, E_MAXIMIZE_BOTH); + if ((!extra) || (!extra->tiled)) return; + + if (ec->maximized) _e_client_unmaximize(ec, E_MAXIMIZE_BOTH); - if (!tiling_g.config->show_titles && (!ec->bordername || - strcmp(ec->bordername, "pixel"))) - change_window_border(ec, "pixel"); - else if (tiling_g.config->show_titles && (ec->bordername && - !strcmp(ec->bordername, "pixel"))) - change_window_border(ec, (extra->orig.bordername) ? extra->orig.bordername : "default"); + if (e_theme_border_find("tiling")) bdname = "tiling"; + if ((!tiling_g.config->show_titles) && + (!ec->bordername || strcmp(ec->bordername, bdname))) + change_window_border(ec, bdname); + else if ((tiling_g.config->show_titles) && +(ec->bordername && !strcmp(ec->bordername, bdname))) + change_window_border(ec, (extra->orig.bordername) ? + extra->orig.bordername : "default"); } static void --
[EGIT] [core/efl] master 03/03: tests/ecore_wl2: Add test for ecore_wl2_input_display_get function
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f15ca5e227fc401bae2fa8272ba8cc6953a22150 commit f15ca5e227fc401bae2fa8272ba8cc6953a22150 Author: Christopher Michael Date: Thu Aug 1 08:56:42 2019 -0400 tests/ecore_wl2: Add test for ecore_wl2_input_display_get function ref T8016 --- src/tests/ecore_wl2/ecore_wl2_test_input.c | 22 ++ 1 file changed, 22 insertions(+) diff --git a/src/tests/ecore_wl2/ecore_wl2_test_input.c b/src/tests/ecore_wl2/ecore_wl2_test_input.c index 814fa800b3..479b1d385c 100644 --- a/src/tests/ecore_wl2/ecore_wl2_test_input.c +++ b/src/tests/ecore_wl2/ecore_wl2_test_input.c @@ -67,6 +67,27 @@ EFL_START_TEST(wl2_input_seat_id_get) } EFL_END_TEST +EFL_START_TEST(wl2_input_display_get) +{ + Ecore_Wl2_Display *disp; + Ecore_Wl2_Input *input; + Eina_Iterator *itr; + + disp = _display_connect(); + ck_assert(disp != NULL); + + itr = ecore_wl2_display_inputs_get(disp); + ck_assert(itr != NULL); + + EINA_ITERATOR_FOREACH(itr, input) + { +ck_assert(ecore_wl2_input_display_get(input) != NULL); + } + + eina_iterator_free(itr); +} +EFL_END_TEST + void ecore_wl2_test_input(TCase *tc) { @@ -74,5 +95,6 @@ ecore_wl2_test_input(TCase *tc) { tcase_add_test(tc, wl2_input_seat_get); tcase_add_test(tc, wl2_input_seat_id_get); +tcase_add_test(tc, wl2_input_display_get); } } --
[EGIT] [core/efl] master 13/14: evas text - handle null font case for font set
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9e94115ab321bd0cde76bab51d1afb42a9be9a0f commit 9e94115ab321bd0cde76bab51d1afb42a9be9a0f Author: Carsten Haitzler (Rasterman) Date: Sat Aug 10 23:33:05 2019 +0100 evas text - handle null font case for font set coverity was unhappy wiht inconsistent checks, so we'll be consistent and thus handle a null font. fixes CID 1403882 --- src/lib/evas/canvas/evas_object_text.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/evas_object_text.c b/src/lib/evas/canvas/evas_object_text.c index 1a97af9f4c..e8eafcaee3 100644 --- a/src/lib/evas/canvas/evas_object_text.c +++ b/src/lib/evas/canvas/evas_object_text.c @@ -459,7 +459,7 @@ _evas_text_efl_text_font_font_set(Eo *eo_obj, Evas_Text_Data *o, const char *fon evas_object_async_block(obj); if ((size == o->cur.size) && - (o->cur.font && !strcmp(font, o->cur.font))) return; + (o->cur.font && font && !strcmp(font, o->cur.font))) return; if (font) { --
[EGIT] [apps/evisum] master 01/01: Batteries: Add multiple suppor
netstar pushed a commit to branch master. http://git.enlightenment.org/apps/evisum.git/commit/?id=6ba6c251359c5c1221f12a68bf2d5a3a367f83f7 commit 6ba6c251359c5c1221f12a68bf2d5a3a367f83f7 Author: Alastair Poole Date: Sun Sep 1 14:54:27 2019 +0100 Batteries: Add multiple suppor --- src/system.c | 30 +- src/system.h | 14 ++ src/ui.c | 4 ++-- 3 files changed, 33 insertions(+), 15 deletions(-) diff --git a/src/system.c b/src/system.c index dea2129..7ccad64 100644 --- a/src/system.c +++ b/src/system.c @@ -814,6 +814,13 @@ _power_battery_count_get(power_t *power) closedir(dir); #endif + + power->batteries = malloc(power->battery_count * sizeof(bat_t **)); + for (int i = 0; i < power->battery_count; i++) + { +power->batteries[i] = calloc(1, sizeof(bat_t)); + } + return power->battery_count; } @@ -821,6 +828,7 @@ static void _battery_state_get(power_t *power, int *mib) { #if defined(__OpenBSD__) || defined(__NetBSD__) + static int index = 0; double charge_full = 0; double charge_current = 0; size_t slen = sizeof(struct sensor); @@ -854,13 +862,14 @@ _battery_state_get(power_t *power, int *mib) charge_current = (double)snsr.value; } - power->charge_full += charge_full; - power->charge_current += charge_current; + power->batteries[index]->charge_full = charge_full; + power->batteries[index]->charge_current = charge_current; + ++index; #elif defined(__FreeBSD__) || defined(__DragonFly__) unsigned int value; size_t len = sizeof(value); if ((sysctl(mib, 4, , , NULL, 0)) != -1) - power->percent = value; + power->batteries[0]->percent = value; #elif defined(__linux__) char path[PATH_MAX]; struct dirent *dh; @@ -915,8 +924,8 @@ _battery_state_get(power_t *power, int *mib) free(buf); } -power->charge_full += charge_full; -power->charge_current += charge_current; +power->batteries[i]->charge_full = charge_full; +power->batteries[i]->charge_current = charge_current; free(naming); @@ -971,10 +980,13 @@ _power_state_get(power_t *power) _battery_state_get(power, power->bat_mibs[i]); #if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__linux__) - double percent = - 100 * (power->charge_current / power->charge_full); + for (i = 0; i < power->battery_count; i++) + { +double percent = + 100 * (power->batteries[i]->charge_current / power->batteries[i]->charge_full); +power->batteries[i]->percent = percent; + } - power->percent = percent; power->have_ac = have_ac; #elif defined(__FreeBSD__) || defined(__DragonFly__) len = sizeof(value); @@ -983,7 +995,7 @@ _power_state_get(power_t *power) return; } - power->percent = value; + power->batteries[0]->percent = value; #endif diff --git a/src/system.h b/src/system.h index f091707..3eebca7 100644 --- a/src/system.h +++ b/src/system.h @@ -22,15 +22,21 @@ typedef struct unsigned long swap_used; } meminfo_t; +#define MAX_BATTERIES 10 +typedef struct +{ + double charge_full; + double charge_current; + uint8_t percent; +} bat_t; + typedef struct { boolhave_ac; int battery_count; - double charge_full; - double charge_current; - uint8_t percent; -#define MAX_BATTERIES 10 + bat_t **batteries; + char*battery_names[MAX_BATTERIES]; int*bat_mibs[MAX_BATTERIES]; int ac_mibs[5]; diff --git a/src/ui.c b/src/ui.c index 296785f..da42b5e 100644 --- a/src/ui.c +++ b/src/ui.c @@ -132,7 +132,7 @@ _misc_view_update(Ui *ui, results_t *results) evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(box); - if (results->power.battery_count) + for (int i = 0; i < results->power.battery_count; i++) { frame = elm_frame_add(box); evas_object_size_hint_align_set(frame, EVAS_HINT_FILL, 0); @@ -149,7 +149,7 @@ _misc_view_update(Ui *ui, results_t *results) evas_object_size_hint_weight_set(progress, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_progressbar_span_size_set(progress, 1.0); elm_progressbar_unit_format_set(progress, "%1.2f%%"); -_progressbar_value_force_set(progress, (double)results->power.percent / 100); +_progressbar_value_force_set(progress, (double)results->power.batteries[i]->percent / 100); evas_object_show(progress); elm_object_content_set(frame, progress); elm_box_pack_end(box, frame); --
[EGIT] [core/efl] master 01/01: evas: fix png regression issue
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f5aa672853d4fe70a60508e9abc796b0246915ba commit f5aa672853d4fe70a60508e9abc796b0246915ba Author: Shinwoo Kim Date: Fri Aug 16 16:54:50 2019 +0900 evas: fix png regression issue Summary: The evas_image_load_file_data_png had called png_set_tRNS_to_alpha from following commit. 6988a38 evas: fix png loader to actually produce lower resolution content when asked. You could refer to following information regarding png_set_tRNS_to_alpha which is available on page http://www.libpng.org/pub/png/libpng-manual.txt The following code transforms grayscale images of less than 8 to 8 bits, changes paletted images to RGB, and adds a full alpha channel if there is transparency information in a tRNS chunk. This is most useful on grayscale images with bit depths of 2 or 4 or if there is a multiple-image viewing application that wishes to treat all images in the same way. if (color_type == PNG_COLOR_TYPE_PALETTE) png_set_palette_to_rgb(png_ptr); if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) png_set_tRNS_to_alpha(png_ptr); if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) png_set_expand_gray_1_2_4_to_8(png_ptr) Accidentally commit "382c580 evas: add support for .9.png file to PNG loader." adding a new feature with small code refactoring missed the line calling png_set_tRNS_to_alpha. So we got a rendering issue. It made around 75% size white rectangle using a grayscale and transparent image. I'd like to attach the image which has following type information for test purpose. $ identify -verbose ./grayscale_transparent.png | grep type -i Mime type: image/png Type: Bilevel png:IHDR.color-type-orig: 0 png:IHDR.color_type: 0 (Grayscale) Test Plan: This is the sample image file grayscale_transparent.png {F3748665} Reviewers: cedric, Hermet, jsuya Reviewed By: Hermet Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9580 --- src/modules/evas/image_loaders/png/evas_image_load_png.c | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/modules/evas/image_loaders/png/evas_image_load_png.c b/src/modules/evas/image_loaders/png/evas_image_load_png.c index 7b440d5089..1eb8b12dc8 100644 --- a/src/modules/evas/image_loaders/png/evas_image_load_png.c +++ b/src/modules/evas/image_loaders/png/evas_image_load_png.c @@ -212,7 +212,14 @@ _evas_image_load_file_internal_head_png(Evas_Loader_Internal *loader, prop->info.w = (int) epi->w32; prop->info.h = (int) epi->h32; } - if (png_get_valid(epi->png_ptr, epi->info_ptr, PNG_INFO_tRNS)) epi->hasa = 1; + + if (png_get_valid(epi->png_ptr, epi->info_ptr, PNG_INFO_tRNS)) + { +/* expand transparency entry -> alpha channel if present */ +if (!close_file) png_set_tRNS_to_alpha(epi->png_ptr); +epi->hasa = 1; + } + switch (epi->color_type) { case PNG_COLOR_TYPE_RGB_ALPHA: --
[EGIT] [core/enlightenment] master 01/01: todo - add more items
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=7f5a0246de33dce1f5e54a1b4459174602153c48 commit 7f5a0246de33dce1f5e54a1b4459174602153c48 Author: Carsten Haitzler (Rasterman) Date: Thu Sep 5 17:08:12 2019 +0100 todo - add more items --- TODO | 1 + 1 file changed, 1 insertion(+) diff --git a/TODO b/TODO index 3290af17f..db5a5e8c3 100644 --- a/TODO +++ b/TODO @@ -1,4 +1,5 @@ TODO: +* bluez4: remove as it's obsolete * scriptlets: stdin/out module that provides gui services to some back-end script or process where e just talks via stdin/out. things to provide: --
[EGIT] [core/efl] master 01/03: efl_ui/timepicker: fix range clamping on 12 hour timepickers
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6c93461324c7687aa81eec6b58635e0ea3a786c3 commit 6c93461324c7687aa81eec6b58635e0ea3a786c3 Author: Mike Blumenkrantz Date: Thu Jul 25 14:45:48 2019 -0400 efl_ui/timepicker: fix range clamping on 12 hour timepickers Summary: this errors all the time otherwise Reviewers: devilhorns Reviewed By: devilhorns Subscribers: devilhorns, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9396 --- src/lib/elementary/efl_ui_timepicker.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/efl_ui_timepicker.c b/src/lib/elementary/efl_ui_timepicker.c index 938c22c846..59ef13d3f1 100644 --- a/src/lib/elementary/efl_ui_timepicker.c +++ b/src/lib/elementary/efl_ui_timepicker.c @@ -59,7 +59,7 @@ _field_value_update(Eo *obj) if (!pd->is_24hour) { -if (pd->cur_time[TIMEPICKER_HOUR] >= 12) +if (pd->cur_time[TIMEPICKER_HOUR] > 12) { //TODO: gets text from strftime. efl_text_set(pd->ampm, "PM"); @@ -68,7 +68,7 @@ _field_value_update(Eo *obj) else { efl_text_set(pd->ampm, "AM"); - efl_ui_range_value_set(pd->hour, pd->cur_time[TIMEPICKER_HOUR] + 12); + efl_ui_range_value_set(pd->hour, pd->cur_time[TIMEPICKER_HOUR]); } } --
[EGIT] [core/efl] master 07/10: efl_ui/scroller: create scroll manager in constructor
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c4e03dcea4fadc515c46e6d9d3e224025ec0e9c8 commit c4e03dcea4fadc515c46e6d9d3e224025ec0e9c8 Author: Mike Blumenkrantz Date: Fri Aug 16 15:08:14 2019 -0400 efl_ui/scroller: create scroll manager in constructor this fixes setting scroller properties during construction Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D9593 --- src/lib/elementary/efl_ui_scroller.c | 13 +++-- 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/lib/elementary/efl_ui_scroller.c b/src/lib/elementary/efl_ui_scroller.c index ca2a21ddc9..9a65337674 100644 --- a/src/lib/elementary/efl_ui_scroller.c +++ b/src/lib/elementary/efl_ui_scroller.c @@ -241,12 +241,18 @@ _focused_element(void *data, const Efl_Event *event) EOLIAN static Eo * _efl_ui_scroller_efl_object_constructor(Eo *obj, -Efl_Ui_Scroller_Data *sd EINA_UNUSED) +Efl_Ui_Scroller_Data *sd) { if (!elm_widget_theme_klass_get(obj)) elm_widget_theme_klass_set(obj, "scroller"); obj = efl_constructor(efl_super(obj, MY_CLASS)); + sd->smanager = efl_add(EFL_UI_SCROLL_MANAGER_CLASS, obj); + efl_ui_mirrored_set(sd->smanager, efl_ui_mirrored_get(obj)); + efl_composite_attach(obj, sd->smanager); + + efl_ui_scroll_connector_bind(obj, sd->smanager); + return obj; } @@ -258,10 +264,6 @@ _efl_ui_scroller_efl_object_finalize(Eo *obj, ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); - sd->smanager = efl_add(EFL_UI_SCROLL_MANAGER_CLASS, obj); - efl_ui_mirrored_set(sd->smanager, efl_ui_mirrored_get(obj)); - efl_composite_attach(obj, sd->smanager); - sd->pan_obj = efl_add(EFL_UI_PAN_CLASS, obj); efl_ui_scroll_manager_pan_set(sd->smanager, sd->pan_obj); @@ -269,7 +271,6 @@ _efl_ui_scroller_efl_object_finalize(Eo *obj, elm_widget_can_focus_set(obj, EINA_TRUE); - efl_ui_scroll_connector_bind(obj, sd->smanager); efl_event_callback_add(sd->pan_obj, EFL_GFX_ENTITY_EVENT_SIZE_CHANGED, _efl_ui_scroller_pan_resized_cb, obj); --
[EGIT] [core/enlightenment] master 01/01: module and config - remove pointless config vars that have no use
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=b4cfada8e84d626a07ee5c201246974268c6702e commit b4cfada8e84d626a07ee5c201246974268c6702e Author: Carsten Haitzler (Rasterman) Date: Tue Sep 10 17:58:30 2019 +0100 module and config - remove pointless config vars that have no use we dont need to delay module loading anymore so remove allof this - priority too shouldn't be necessary as well and was just a workaround. this remvoes all of that removing some e module api's and module struct members as well as some global config fields. it also ensures all config files are up to date as well. --- data/config/default/e.src | 4 +- data/config/standard/e.src | 82 + data/config/standard/e_bindings.src| 30 +++-- data/config/tiling/e.src | 83 +- data/config/tiling/e_bindings.src | 32 -- src/bin/e_config.c | 22 +--- src/bin/e_config.h | 4 - src/bin/e_main.c | 2 - src/bin/e_module.c | 127 + src/bin/e_module.h | 4 +- src/bin/e_shelf.c | 49 src/bin/e_shelf.h | 1 + src/modules/conf/e_mod_main.c | 2 - src/modules/conf_applications/e_mod_main.c | 1 - src/modules/conf_bindings/e_mod_main.c | 1 - src/modules/conf_dialogs/e_mod_main.c | 1 - src/modules/conf_display/e_mod_main.c | 1 - src/modules/conf_interaction/e_mod_main.c | 1 - src/modules/conf_intl/e_mod_main.c | 1 - src/modules/conf_menus/e_mod_main.c| 1 - src/modules/conf_paths/e_mod_main.c| 1 - .../conf_performance/e_int_config_performance.c| 21 +--- src/modules/conf_performance/e_mod_main.c | 1 - src/modules/conf_shelves/e_mod_main.c | 1 - src/modules/conf_theme/e_mod_main.c| 1 - src/modules/conf_window_manipulation/e_mod_main.c | 1 - src/modules/conf_window_remembers/e_mod_main.c | 1 - src/modules/everything/e_mod_main.c| 3 - src/modules/everything/evry_plug_settings.c| 5 +- src/modules/everything/evry_view.c | 27 ++--- src/modules/fileman/e_mod_main.c | 1 - src/modules/gadman/e_mod_main.c| 1 - src/modules/quickaccess/e_mod_main.c | 1 - src/modules/shot/e_mod_main.c | 2 - src/modules/syscon/e_mod_main.c| 1 - src/modules/vkbd/e_mod_main.c | 1 - src/modules/winlist/e_mod_main.c | 1 - 37 files changed, 103 insertions(+), 416 deletions(-) diff --git a/data/config/default/e.src b/data/config/default/e.src index 6c601c5d3..4b081d0b3 100644 --- a/data/config/default/e.src +++ b/data/config/default/e.src @@ -1,5 +1,5 @@ group "E_Config" struct { - value "config_version" int: 114; + value "config_version" int: 128; value "config_type" uint: 0; // this profile seems to just be super minimalist value "show_splash" int: 0; value "desktop_default_name" string: "%i-%i"; @@ -26,8 +26,6 @@ group "E_Config" struct { group "E_Config_Module" struct { value "name" string: "wizard"; value "enabled" uchar: 1; - value "delayed" uchar: 0; - value "priority" int: 0; } } value "window_placement_policy" int: 0; diff --git a/data/config/standard/e.src b/data/config/standard/e.src index cd18b67ec..31b2982f2 100644 --- a/data/config/standard/e.src +++ b/data/config/standard/e.src @@ -1,5 +1,5 @@ group "E_Config" struct { -value "config_version" int: 114; +value "config_version" int: 128; value "config_type" uint: 3; value "show_splash" int: 1; value "desktop_default_name" string: "%i-%i"; @@ -10,7 +10,6 @@ group "E_Config" struct { value "border_shade_animate" int: 1; value "border_shade_transition" int: 3; value "border_shade_speed" double: 3000.0; -value "framerate" double: 60.0; value "priority" int: 3; value "image_cache" int: 4096; value "font_cache" int: 512; @@ -217,7 +216,6 @@ group "E_Config" struct { value "powersave.extreme" double: 1200.0; value "powersave.min" int: 0; value "powersave.max" int: 5; -value "no_module_delay" int: 1; group "syscon.actions" list { group "E_Config_Syscon_Action" struct { value "action" string: "halt"; @@ -550,7 +548,7 @@ group "E_Config" struct { value "mime" string: "application/x-desktop"; value "icon" string: "DESKTOP"; } -group
[EGIT] [core/efl] master 07/08: elm/config: fix config usage with EFL_RUN_IN_TREE set
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=36ff0a012ce227757331a745fbb437b2097f4e45 commit 36ff0a012ce227757331a745fbb437b2097f4e45 Author: Mike Blumenkrantz Date: Mon Jul 29 12:41:59 2019 -0400 elm/config: fix config usage with EFL_RUN_IN_TREE set when running in tree, elm_config should not attempt to access files outside the tree, nor should it attempt to overwrite any existing config files @fix Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D9433 --- src/lib/elementary/elm_config.c | 35 --- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/src/lib/elementary/elm_config.c b/src/lib/elementary/elm_config.c index 9258939f79..c6da38ed27 100644 --- a/src/lib/elementary/elm_config.c +++ b/src/lib/elementary/elm_config.c @@ -5,6 +5,7 @@ #include #include "elm_priv.h" +#include "../../static_libs/buildsystem/buildsystem.h" #include "efl_config_global.eo.h" EAPI int ELM_EVENT_CONFIG_ALL_CHANGED = 0; @@ -964,7 +965,8 @@ _elm_config_profile_dir_get(const char *prof, if (!is_user) goto not_user; - _elm_config_user_dir_snprintf(buf, sizeof(buf), "config/%s", prof); + if ((!_use_build_config) || (!bs_data_path_get(buf, sizeof(buf), "elementary/config", prof))) + _elm_config_user_dir_snprintf(buf, sizeof(buf), "config/%s", prof); // See elm_config_profile_dir_free: always use strdup+free if (ecore_file_is_dir(buf)) @@ -973,7 +975,8 @@ _elm_config_profile_dir_get(const char *prof, return NULL; not_user: - snprintf(buf, sizeof(buf), "%s/config/%s", _elm_data_dir, prof); + if ((!_use_build_config) || (!bs_data_path_get(buf, sizeof(buf), "elementary/config", prof))) + snprintf(buf, sizeof(buf), "%s/config/%s", _elm_data_dir, prof); // See elm_config_profile_dir_free: always use strdup+free if (ecore_file_is_dir(buf)) @@ -1355,9 +1358,15 @@ _elm_config_profiles_list(Eina_Bool hide_profiles) Eina_Iterator *file_it; char buf[PATH_MAX]; const char *dir; - size_t len; + size_t len = 0; - len = _elm_config_user_dir_snprintf(buf, sizeof(buf), "config"); + if (_use_build_config) + { +len = bs_data_path_get(buf, sizeof(buf), "elementary", "config"); +if (len) len = strlen(buf); + } + if (!len) + len = _elm_config_user_dir_snprintf(buf, sizeof(buf), "config"); file_it = eina_file_stat_ls(buf); if (!file_it) goto sys; @@ -2082,7 +2091,7 @@ _elm_config_profile_save(const char *profile) Eet_File *ef; size_t len; - if ((s = getenv("ELM_PROFILE_NOSAVE")) && atoi(s)) + if (_use_build_config || ((s = getenv("ELM_PROFILE_NOSAVE")) && atoi(s))) return EINA_TRUE; len = _elm_config_user_dir_snprintf(buf, sizeof(buf), "config/profile.cfg"); @@ -3001,6 +3010,11 @@ elm_config_profile_exists(const char *profile) if (!profile) return EINA_FALSE; + if (_use_build_config) + { +if (!bs_data_path_get(buf, sizeof(buf), "elementary/config", profile)) return EINA_FALSE; +return ecore_file_exists(buf); + } _elm_config_user_dir_snprintf(buf, sizeof(buf), "config/%s/base.cfg", profile); if (ecore_file_exists(buf)) return EINA_TRUE; @@ -4093,6 +4107,7 @@ elm_config_all_flush(void) int ok = 0; size_t len; + if (_use_build_config) return; len = _elm_config_user_dir_snprintf(buf, sizeof(buf), "themes/"); if (len + 1 >= sizeof(buf)) return; @@ -4199,6 +4214,7 @@ _elm_config_sub_shutdown(void) ELM_SAFE_FREE(_monitor_file_created_handler, ecore_event_handler_del); ELM_SAFE_FREE(_monitor_file_modified_handler, ecore_event_handler_del); ELM_SAFE_FREE(_monitor_directory_created_handler, ecore_event_handler_del); + _use_build_config = EINA_FALSE; } static Eina_Bool @@ -4290,8 +4306,13 @@ _elm_config_sub_init(void) char buf[PATH_MAX]; int ok = 0; - _elm_config_user_dir_snprintf(buf, sizeof(buf), "config"); - ok = ecore_file_mkpath(buf); + if (_use_build_config) + ok = bs_data_path_get(buf, sizeof(buf), "elementary", "config"); + else + { +_elm_config_user_dir_snprintf(buf, sizeof(buf), "config"); +ok = ecore_file_mkpath(buf); + } if (!ok) { ERR("Problem accessing Elementary's user configuration directory: %s", --
[EGIT] [core/efl] master 01/01: efl shape: add missing interpolation of miterlimit property.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=31d0d1ffd3c5fd8e4041324db0fbc8c7f68d4678 commit 31d0d1ffd3c5fd8e4041324db0fbc8c7f68d4678 Author: Hermet Park Date: Thu Aug 22 13:12:19 2019 +0900 efl shape: add missing interpolation of miterlimit property. --- src/lib/efl/interfaces/efl_gfx_shape.c | 5 + 1 file changed, 5 insertions(+) diff --git a/src/lib/efl/interfaces/efl_gfx_shape.c b/src/lib/efl/interfaces/efl_gfx_shape.c index 7d7e177732..787dbac0c1 100644 --- a/src/lib/efl/interfaces/efl_gfx_shape.c +++ b/src/lib/efl/interfaces/efl_gfx_shape.c @@ -36,6 +36,7 @@ struct _Efl_Gfx_Property double scale; double w; double centered; + double miterlimit; Efl_Gfx_Cap c; Efl_Gfx_Join j; @@ -57,6 +58,7 @@ _efl_gfx_property_get(const Eo *obj, Efl_Gfx_Property *property) efl_gfx_shape_stroke_dash_get(obj, >dash, >dash_length); property->c = efl_gfx_shape_stroke_cap_get(obj); property->j = efl_gfx_shape_stroke_join_get(obj); + property->miterlimit = efl_gfx_shape_stroke_miterlimit_get(obj); } EOLIAN static Eina_Bool @@ -117,6 +119,9 @@ _efl_gfx_shape_efl_gfx_path_interpolate(Eo *obj, Efl_Gfx_Shape_Data *pd, interv = interpolate(property_from.centered, property_to.centered, pos_map); efl_gfx_shape_stroke_location_set(obj, interv); + interv = interpolate(property_from.miterlimit, property_to.miterlimit, pos_map); + efl_gfx_shape_stroke_miterlimit_set(obj, interv); + efl_gfx_shape_stroke_dash_set(obj, dash, property_to.dash_length); efl_gfx_shape_stroke_cap_set(obj, (pos_map < 0.5) ? property_from.c : property_to.c); --
[EGIT] [core/efl] master 03/03: efl_ui_radio_group: migrate to Efl.Ui.Single_Selectable
bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d445e5240b03ddf659b3c16c74d982956a2a7b67 commit d445e5240b03ddf659b3c16c74d982956a2a7b67 Author: Marcel Hollerbach Date: Thu Aug 22 15:06:22 2019 +0200 efl_ui_radio_group: migrate to Efl.Ui.Single_Selectable with this the whole thing is migrated to single_selectable. The group is added to the spec test suite. The elm_test case of radio_group now also has a fallback option to demonstrate the usage of it. This also fixes a broken testcase, where a flag was forgotten to be checked. ref T8024 Reviewed-by: Mike Blumenkrantz Differential Revision: https://phab.enlightenment.org/D9706 --- src/bin/elementary/test_part_bg.c | 6 +- src/bin/elementary/test_ui_image.c | 2 +- src/bin/elementary/test_ui_radio.c | 18 +++--- src/lib/elementary/efl_ui_radio_box.c | 1 + src/lib/elementary/efl_ui_radio_group.eo | 11 +--- src/lib/elementary/efl_ui_radio_group_impl.c | 69 ++ src/lib/elementary/efl_ui_radio_group_impl.eo | 3 +- src/tests/elementary/efl_ui_test_radio_group.c | 38 ++-- .../elementary/spec/efl_test_single_selectable.c | 13 +++- 9 files changed, 89 insertions(+), 72 deletions(-) diff --git a/src/bin/elementary/test_part_bg.c b/src/bin/elementary/test_part_bg.c index cb9dd4dbd3..3f8f30be00 100644 --- a/src/bin/elementary/test_part_bg.c +++ b/src/bin/elementary/test_part_bg.c @@ -15,7 +15,7 @@ _reset_cb(void *data, const Efl_Event *ev EINA_UNUSED) Efl_Ui_Radio_Group *radio = data; Evas_Object *target; - radio = efl_ui_radio_group_selected_object_get(radio); + radio = efl_ui_single_selectable_last_selected_get(radio); target = evas_object_data_get(radio, "data"); efl_gfx_color_set(efl_part(target, "background"), 0, 0, 0, 0); @@ -29,7 +29,7 @@ _color_cb(void *data, const Efl_Event *ev EINA_UNUSED) Evas_Object *target; static Eina_Bool i; - radio = efl_ui_radio_group_selected_object_get(radio); + radio = efl_ui_single_selectable_last_selected_get(radio); target = evas_object_data_get(radio, "data"); i ^= EINA_TRUE; efl_gfx_color_set(efl_part(target, "background"), (i) ? 255 : 0, (i) ? 0 : 255, 0, 255); @@ -43,7 +43,7 @@ _scale_type_cb(void *data, const Efl_Event *ev EINA_UNUSED) Efl_Gfx_Image_Scale_Type type; char buf[PATH_MAX]; - radio = efl_ui_radio_group_selected_object_get(radio); + radio = efl_ui_single_selectable_last_selected_get(radio); target = evas_object_data_get(radio, "data"); snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", elm_app_data_dir_get()); diff --git a/src/bin/elementary/test_ui_image.c b/src/bin/elementary/test_ui_image.c index e3f1bd5b52..87ad9fbafb 100644 --- a/src/bin/elementary/test_ui_image.c +++ b/src/bin/elementary/test_ui_image.c @@ -640,7 +640,7 @@ test_ui_image_prescale(void *data EINA_UNUSED, Eo *obj EINA_UNUSED, void *event_ efl_pack(hbox, rd); efl_event_callback_add(hbox, EFL_UI_RADIO_GROUP_EVENT_VALUE_CHANGED, _cb_prescale_radio_changed, im); - efl_ui_radio_group_selected_object_set(hbox, rd); + efl_ui_selectable_selected_set(rd, EINA_TRUE); efl_pack(box, hbox); diff --git a/src/bin/elementary/test_ui_radio.c b/src/bin/elementary/test_ui_radio.c index ec2740f9cb..487c6aa932 100644 --- a/src/bin/elementary/test_ui_radio.c +++ b/src/bin/elementary/test_ui_radio.c @@ -77,12 +77,12 @@ _set_selected_btn_clicked(void *data, const Efl_Event *ev EINA_UNUSED) } static void -_set_selected_object_btn_clicked(void *data, const Efl_Event *ev) +_set_fallback_radio_btn_clicked(void *data, const Efl_Event *ev EINA_UNUSED) { - Efl_Ui_Radio_Group *group = data; - - efl_ui_radio_group_selected_value_set(group, 3); - efl_ui_radio_group_selected_object_set(group, efl_key_data_get(ev->object, "uk")); + if (!efl_ui_single_selectable_fallback_selection_get(data)) + efl_ui_single_selectable_fallback_selection_set(data, efl_pack_content_get(data, 4)); + else + efl_ui_single_selectable_fallback_selection_set(data, NULL); } void test_efl_ui_radio(void *data EINA_UNUSED, @@ -94,7 +94,6 @@ void test_efl_ui_radio(void *data EINA_UNUSED, Efl_Ui_Box *bx; Eina_Array *arr; Efl_Ui_Button *o; - Efl_Ui_Radio *uk = NULL; win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(), efl_ui_win_type_set(efl_added, EFL_UI_WIN_TYPE_BASIC), @@ -112,8 +111,6 @@ void test_efl_ui_radio(void *data EINA_UNUSED, { Efl_Ui_Radio *r = eina_array_data_get(arr, i); efl_pack_end(bx, r); -if (i == 4) - uk = r; } o = efl_add(EFL_UI_BUTTON_CLASS, table); @@ -128,9 +125,8 @@ void test_efl_ui_radio(void *data EINA_UNUSED, o = efl_add(EFL_UI_BUTTON_CLASS, table); efl_pack_table(table, o, 1, 2, 1, 1); - efl_text_set(o, "Set object
[EGIT] [core/efl] master 01/05: ecore - efl thread - reduce copy & paste and merge into single func
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=687b06fb3ff679c8d7464c9858365ea4eae4eaa3 commit 687b06fb3ff679c8d7464c9858365ea4eae4eaa3 Author: Carsten Haitzler (Rasterman) Date: Sat Jul 20 11:44:05 2019 +0100 ecore - efl thread - reduce copy & paste and merge into single func the call and call sync stuff was almost entirely copy & paste - this moves all the common code into shared funcs that reduce code bloat. it also moved from heap to stack for sync reply struct location. --- src/lib/ecore/efl_thread.c | 72 +- 1 file changed, 27 insertions(+), 45 deletions(-) diff --git a/src/lib/ecore/efl_thread.c b/src/lib/ecore/efl_thread.c index 1545c74597..f08be0e119 100644 --- a/src/lib/ecore/efl_thread.c +++ b/src/lib/ecore/efl_thread.c @@ -1035,11 +1035,9 @@ _efl_thread_efl_io_writer_can_write_get(const Eo *obj EINA_UNUSED, Efl_Thread_Da return pd->fd.can_write; } -void -_appthread_threadio_call(Eo *obj EINA_UNUSED, Efl_Appthread_Data *pd, - void *func_data, EFlThreadIOCall func, Eina_Free_Cb func_free_cb) +static void +_threadio_call(int fd, void *func_data, EFlThreadIOCall func, Eina_Free_Cb func_free_cb) { - Thread_Data *thdat = pd->thdat; Control_Data cmd; memset(, 0, sizeof(cmd)); @@ -1047,21 +1045,41 @@ _appthread_threadio_call(Eo *obj EINA_UNUSED, Efl_Appthread_Data *pd, cmd.d.ptr[0] = func; cmd.d.ptr[1] = func_data; cmd.d.ptr[2] = func_free_cb; - _efl_thread_pipe_write(thdat->ctrl.in, , sizeof(Control_Data)); + _efl_thread_pipe_write(fd, , sizeof(Control_Data)); +} + +void +_appthread_threadio_call(Eo *obj EINA_UNUSED, Efl_Appthread_Data *pd, + void *func_data, EFlThreadIOCall func, Eina_Free_Cb func_free_cb) +{ + Thread_Data *thdat = pd->thdat; + _threadio_call(thdat->ctrl.in, func_data, func, func_free_cb); } EOLIAN static void _efl_thread_efl_threadio_call(Eo *obj EINA_UNUSED, Efl_Thread_Data *pd, void *func_data, EFlThreadIOCall func, Eina_Free_Cb func_free_cb) +{ + _threadio_call(pd->ctrl.in, func_data, func, func_free_cb); +} + +static void * +_threadio_call_sync(int fd, void *func_data, EFlThreadIOCallSync func, Eina_Free_Cb func_free_cb) { Control_Data cmd; + Control_Reply rep; memset(, 0, sizeof(cmd)); - cmd.d.command = CMD_CALL; + cmd.d.command = CMD_CALL_SYNC; cmd.d.ptr[0] = func; cmd.d.ptr[1] = func_data; cmd.d.ptr[2] = func_free_cb; - _efl_thread_pipe_write(pd->ctrl.in, , sizeof(Control_Data)); + cmd.d.ptr[3] = + rep.data = NULL; + eina_semaphore_new(&(rep.sem), 0); + _efl_thread_pipe_write(fd, , sizeof(Control_Data)); + eina_semaphore_lock(&(rep.sem)); + return rep.data; } void * @@ -1069,50 +1087,14 @@ _appthread_threadio_call_sync(Eo *obj EINA_UNUSED, Efl_Appthread_Data *pd, void *func_data, EFlThreadIOCallSync func, Eina_Free_Cb func_free_cb) { Thread_Data *thdat = pd->thdat; - Control_Data cmd; - Control_Reply *rep; - void *data; - - memset(, 0, sizeof(cmd)); - cmd.d.command = CMD_CALL_SYNC; - cmd.d.ptr[0] = func; - cmd.d.ptr[1] = func_data; - cmd.d.ptr[2] = func_free_cb; - rep = malloc(sizeof(Control_Reply)); - if (!rep) return NULL; - cmd.d.ptr[3] = rep; - rep->data = NULL; - eina_semaphore_new(&(rep->sem), 0); - _efl_thread_pipe_write(thdat->ctrl.in, , sizeof(Control_Data)); - eina_semaphore_lock(&(rep->sem)); - data = rep->data; - free(rep); - return data; + return _threadio_call_sync(thdat->ctrl.in, func_data, func, func_free_cb); } EOLIAN static void * _efl_thread_efl_threadio_call_sync(Eo *obj EINA_UNUSED, Efl_Thread_Data *pd, void *func_data, EFlThreadIOCallSync func, Eina_Free_Cb func_free_cb) { - Control_Data cmd; - Control_Reply *rep; - void *data; - - memset(, 0, sizeof(cmd)); - cmd.d.command = CMD_CALL_SYNC; - cmd.d.ptr[0] = func; - cmd.d.ptr[1] = func_data; - cmd.d.ptr[2] = func_free_cb; - rep = malloc(sizeof(Control_Reply)); - if (!rep) return NULL; - cmd.d.ptr[3] = rep; - rep->data = NULL; - eina_semaphore_new(&(rep->sem), 0); - _efl_thread_pipe_write(pd->ctrl.in, , sizeof(Control_Data)); - eina_semaphore_lock(&(rep->sem)); - data = rep->data; - free(rep); - return data; + return _threadio_call_sync(pd->ctrl.in, func_data, func, func_free_cb); } // --
[EGIT] [core/efl] master 01/14: eet dict+ data read - move rw lock to ourside decode for speed read
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=61be4f02bf92c9a0e9eeff9be40b40196471f044 commit 61be4f02bf92c9a0e9eeff9be40b40196471f044 Author: Carsten Haitzler (Rasterman) Date: Sat Aug 10 12:16:58 2019 +0100 eet dict+ data read - move rw lock to ourside decode for speed read on read/decode we can avoid lots of little locks and unlocked by having the rwlock go to the outside and a single lock+unlock (read) on the dictionary. it blocks for longer by has less atomics/fence points as a result and thus decodes faster where changes that we are writing while decoding is insanely low so no point worrying here. --- src/lib/eet/Eet_private.h| 27 +++ src/lib/eet/eet_data.c | 26 +-- src/lib/eet/eet_dictionary.c | 170 ++- 3 files changed, 168 insertions(+), 55 deletions(-) diff --git a/src/lib/eet/Eet_private.h b/src/lib/eet/Eet_private.h index becfabb638..ef274a07ad 100644 --- a/src/lib/eet/Eet_private.h +++ b/src/lib/eet/Eet_private.h @@ -227,16 +227,32 @@ Eet_Dictionary * eet_dictionary_add(void); void eet_dictionary_free(Eet_Dictionary *ed); +void + eet_dictionary_lock_read(const Eet_Dictionary *ed); +void + eet_dictionary_lock_write(Eet_Dictionary *ed); +void + eet_dictionary_unlock(const Eet_Dictionary *ed); int eet_dictionary_string_add(Eet_Dictionary *ed, const char *string); int +eet_dictionary_string_get_size_unlocked(const Eet_Dictionary *ed, +int index); +int eet_dictionary_string_get_size(const Eet_Dictionary *ed, int index); const char * +eet_dictionary_string_get_char_unlocked(const Eet_Dictionary *ed, +int index); +const char * eet_dictionary_string_get_char(const Eet_Dictionary *ed, int index); Eina_Bool +eet_dictionary_string_get_float_unlocked(const Eet_Dictionary *ed, + int index, + float *result); +Eina_Bool eet_dictionary_string_get_float(const Eet_Dictionary *ed, int index, float *result); @@ -245,9 +261,20 @@ eet_dictionary_string_get_double(const Eet_Dictionary *ed, int index, double *result); Eina_Bool +eet_dictionary_string_get_double_unlocked(const Eet_Dictionary *ed, + int index, + double *result); +Eina_Bool eet_dictionary_string_get_fp(const Eet_Dictionary *ed, int index, Eina_F32p32 *result); +Eina_Bool +eet_dictionary_string_get_fp_unlocked(const Eet_Dictionary *ed, + int index, + Eina_F32p32 *result); +int +eet_dictionary_string_get_hash_unlocked(const Eet_Dictionary *ed, +int index); int eet_dictionary_string_get_hash(const Eet_Dictionary *ed, int index); diff --git a/src/lib/eet/eet_data.c b/src/lib/eet/eet_data.c index 2cda26def6..f8293ed896 100644 --- a/src/lib/eet/eet_data.c +++ b/src/lib/eet/eet_data.c @@ -786,7 +786,7 @@ eet_data_get_string_hash(const Eet_Dictionary *ed, if (eet_data_get_int(ed, src, src_end, ) < 0) return -1; -return eet_dictionary_string_get_hash(ed, idx); +return eet_dictionary_string_get_hash_unlocked(ed, idx); } return -1; @@ -810,12 +810,12 @@ eet_data_get_string(const Eet_Dictionary *ed, if (eet_data_get_int(ed, src, src_end, ) < 0) return -1; -str = eet_dictionary_string_get_char(ed, idx); +str = eet_dictionary_string_get_char_unlocked(ed, idx); if (!str) return -1; *d = (char *)str; -return eet_dictionary_string_get_size(ed, idx); +return eet_dictionary_string_get_size_unlocked(ed, idx); } s = (char *)src; @@ -996,7 +996,7 @@ eet_data_get_float(const Eet_Dictionary *ed, if (eet_data_get_int(ed, src, src_end, ) < 0) return -1; - if (!eet_dictionary_string_get_float(ed, idx, d)) + if (!eet_dictionary_string_get_float_unlocked(ed, idx, d)) return -1; return 1; @@ -1073,7 +1073,7 @@ eet_data_get_double(const Eet_Dictionary *ed, if (eet_data_get_int(ed, src, src_end, ) < 0) return -1; - if (!eet_dictionary_string_get_double(ed, idx, d)) + if (!eet_dictionary_string_get_double_unlocked(ed, idx, d)) return -1; return 1; @@ -1143,7 +1143,7 @@ eet_data_get_f32p32(const Eet_Dictionary *ed, if (eet_data_get_int(ed, src, src_end, ) < 0) return -1; - if (!eet_dictionary_string_get_fp(ed, idx, fp)) + if
[EGIT] [website/www-content] master 01/01: Wiki page download-latest changed with summary [] by Mike Blumenkrantz
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=fca4ef38247fc1d0ebf5fbc9dd36ee65cc6f09f8 commit fca4ef38247fc1d0ebf5fbc9dd36ee65cc6f09f8 Author: Mike Blumenkrantz Date: Wed Sep 4 11:55:07 2019 -0700 Wiki page download-latest changed with summary [] by Mike Blumenkrantz --- pages/download-latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/download-latest.txt b/pages/download-latest.txt index 31d5d5a44..0a4f26209 100644 --- a/pages/download-latest.txt +++ b/pages/download-latest.txt @@ -1,5 +1,5 @@ -efl_v = 1.22.3 +efl_v = 1.22.4 python_efl_v = 1.22.0 enlightenment_v = 0.23.0 --
[EGIT] [core/efl] master 04/05: ecore - efl thread - remove mroe error case cnp code and share it
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3195cf6d5f8d3548c9d194fba3aed07c69e8551c commit 3195cf6d5f8d3548c9d194fba3aed07c69e8551c Author: Carsten Haitzler (Rasterman) Date: Sat Jul 20 11:52:52 2019 +0100 ecore - efl thread - remove mroe error case cnp code and share it more cnp code de-duplication --- src/lib/ecore/efl_thread.c | 40 ++-- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/src/lib/ecore/efl_thread.c b/src/lib/ecore/efl_thread.c index 761796d219..7ae263c902 100644 --- a/src/lib/ecore/efl_thread.c +++ b/src/lib/ecore/efl_thread.c @@ -605,6 +605,22 @@ _efl_thread_efl_object_parent_set(Eo *obj, Efl_Thread_Data *pd, Efl_Object *pare pd->loop = efl_provider_find(parent, EFL_LOOP_CLASS); } +static void +_task_run_pipe_fail_clear(Thread_Data *thdat, Efl_Thread_Data *pd) +{ + efl_del(pd->fd.in_handler); + efl_del(pd->fd.out_handler); + close(thdat->fd.in); + close(thdat->fd.out); + close(pd->fd.in); + close(pd->fd.out); + pd->fd.in_handler = NULL; + pd->fd.out_handler = NULL; + pd->fd.in = -1; + pd->fd.out = -1; + free(thdat); +} + EOLIAN static Eina_Future * _efl_thread_efl_task_run(Eo *obj, Efl_Thread_Data *pd) { @@ -689,35 +705,15 @@ _efl_thread_efl_task_run(Eo *obj, Efl_Thread_Data *pd) if (pipe(pipe_to_thread) != 0) { ERR("Can't create to_thread control pipe"); -efl_del(pd->fd.in_handler); -efl_del(pd->fd.out_handler); -close(thdat->fd.in); -close(thdat->fd.out); -close(pd->fd.in); -close(pd->fd.out); -pd->fd.in_handler = NULL; -pd->fd.out_handler = NULL; -pd->fd.in = -1; -pd->fd.out = -1; -free(thdat); +_task_run_pipe_fail_clear(thdat, pd); return NULL; } if (pipe(pipe_from_thread) != 0) { ERR("Can't create from_thread control pipe"); -efl_del(pd->fd.in_handler); -efl_del(pd->fd.out_handler); +_task_run_pipe_fail_clear(thdat, pd); close(pipe_to_thread[0]); close(pipe_to_thread[1]); -close(thdat->fd.in); -close(thdat->fd.out); -close(pd->fd.in); -close(pd->fd.out); -pd->fd.in_handler = NULL; -pd->fd.out_handler = NULL; -pd->fd.in = -1; -pd->fd.out = -1; -free(thdat); return NULL; } thdat->ctrl.in = pipe_from_thread[1]; // write - input to parent --
[EGIT] [core/efl] master 01/01: efl_ui/datepicker: adjust datepicker minimum limits
xartigas pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=44dbf5c22a221bef490edffc0552400b5f07b20a commit 44dbf5c22a221bef490edffc0552400b5f07b20a Author: Mike Blumenkrantz Date: Fri Jul 26 16:55:48 2019 +0200 efl_ui/datepicker: adjust datepicker minimum limits Summary: this whole thing seems pretty busted but at least now it won't error and break elm_test t.tm_mday is 0 when the function in the macro returns, so this value needs to be clamped like the others Reviewers: segfaultxavi Reviewed By: segfaultxavi Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl_widgets Differential Revision: https://phab.enlightenment.org/D9398 --- src/lib/elementary/efl_ui_datepicker.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/elementary/efl_ui_datepicker.c b/src/lib/elementary/efl_ui_datepicker.c index 810c9bc4c4..666791b36f 100644 --- a/src/lib/elementary/efl_ui_datepicker.c +++ b/src/lib/elementary/efl_ui_datepicker.c @@ -18,7 +18,7 @@ Efl_Time t = efl_datetime_manager_value_get(pd->dt_manager);\ pd->cur_date[DATEPICKER_YEAR] = t.tm_year + 1900; \ pd->cur_date[DATEPICKER_MONTH] = t.tm_mon + 1; \ - pd->cur_date[DATEPICKER_DAY] = t.tm_mday; \ + pd->cur_date[DATEPICKER_DAY] = t.tm_mday + 1; \ } while (0) #define DATE_SET() \ @@ -26,7 +26,7 @@ Efl_Time t; \ t.tm_year = pd->cur_date[DATEPICKER_YEAR] - 1900; \ t.tm_mon = pd->cur_date[DATEPICKER_MONTH] - 1; \ - t.tm_mday = pd->cur_date[DATEPICKER_DAY]; \ + t.tm_mday = pd->cur_date[DATEPICKER_DAY] - 1; \ t.tm_sec = 0; \ efl_datetime_manager_value_set(pd->dt_manager, t); \ } while (0) @@ -160,7 +160,7 @@ _fields_init(Eo *obj) //Field create. pd->year = efl_add(EFL_UI_SPIN_BUTTON_CLASS, obj, - efl_ui_range_limits_set(efl_added, 1970, 2037), + efl_ui_range_limits_set(efl_added, 1900, 2037), efl_ui_spin_button_circulate_set(efl_added, EINA_TRUE), efl_ui_spin_button_editable_set(efl_added, EINA_TRUE), efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL), --
[EGIT] [core/efl] master 02/14: evas - png loader - fix leake in error case of pixels
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e0f0165220fe754176ccbbe94c2779a0b8d51d78 commit e0f0165220fe754176ccbbe94c2779a0b8d51d78 Author: Carsten Haitzler (Rasterman) Date: Sat Aug 10 22:44:47 2019 +0100 evas - png loader - fix leake in error case of pixels fix CID 1403027 @fix --- src/modules/evas/image_loaders/png/evas_image_load_png.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/modules/evas/image_loaders/png/evas_image_load_png.c b/src/modules/evas/image_loaders/png/evas_image_load_png.c index 732bd94c6a..7b440d5089 100644 --- a/src/modules/evas/image_loaders/png/evas_image_load_png.c +++ b/src/modules/evas/image_loaders/png/evas_image_load_png.c @@ -400,6 +400,7 @@ evas_image_load_file_head_with_data_png(void *loader_data, if (nine_patch && pack_offset != sizeof (DATA32)) { *error = EVAS_LOAD_ERROR_CORRUPT_FILE; +free(pixels2); goto close_file; } @@ -502,12 +503,14 @@ evas_image_load_file_head_with_data_png(void *loader_data, if (prop->content.x == 0 || prop->content.y == 0) { *error = EVAS_LOAD_ERROR_CORRUPT_FILE; + free(pixels2); goto close_file; } if ((prop->content.x + prop->content.w >= image_w - 1) && (prop->content.y + prop->content.h >= image_h - 1)) { *error = EVAS_LOAD_ERROR_CORRUPT_FILE; + free(pixels2); goto close_file; } --
[EGIT] [apps/rage] master 01/01: bump ver to 0.3.1
raster pushed a commit to branch master. http://git.enlightenment.org/apps/rage.git/commit/?id=141a8624f6ffe24f89c4fe9e6df608b828f93ae6 commit 141a8624f6ffe24f89c4fe9e6df608b828f93ae6 Author: Carsten Haitzler (Rasterman) Date: Sat Aug 24 08:59:51 2019 +0100 bump ver to 0.3.1 --- README | 2 +- meson.build | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README b/README index 6e772fb..d6205f2 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -Rage 0.3.0 +Rage 0.3.1 ** diff --git a/meson.build b/meson.build index b705bbd..63922d5 100644 --- a/meson.build +++ b/meson.build @@ -1,6 +1,6 @@ # project project('rage', 'c', -version: '0.3.0', +version: '0.3.1', license: 'BSD 2 clause', default_options: [ 'buildtype=plain', 'c_std=gnu99' ], meson_version : '>= 0.40.0') @@ -11,7 +11,7 @@ proj = meson.project_name() ver = meson.project_version() # dependencies -efl_version = '>= 1.19.0' +efl_version = '>= 1.22.3' deps = dependency('elementary', version: efl_version) edje = dependency('edje', version: efl_version) --
[EGIT] [core/efl] master 01/01: edje/style/optimization: Enable lazy computaion of styles.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e2663ba8f38c80dd583abb3ecc6ed8e2ab7c1a45 commit e2663ba8f38c80dd583abb3ecc6ed8e2ab7c1a45 Author: subhransu mohanty Date: Thu Aug 29 14:32:28 2019 +0900 edje/style/optimization: Enable lazy computaion of styles. Summary: As user request for the evas_textblock_style through _edje_textblock_style_get() api and that api implements lazy computation of the styles. By just marking the style dirty (stl->cache=false) will be enough. no need to calculate the style computaion at that time. Reviewers: Hermet, ali.alzyod, kimcinoo, woohyun Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9776 --- src/lib/edje/edje_textblock_styles.c | 30 +- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/src/lib/edje/edje_textblock_styles.c b/src/lib/edje/edje_textblock_styles.c index d9856ba7fb..4ceb3ae152 100644 --- a/src/lib/edje/edje_textblock_styles.c +++ b/src/lib/edje/edje_textblock_styles.c @@ -126,10 +126,11 @@ _edje_format_reparse(Edje_File *edf, const char *str, Edje_Style_Tag *tag_ret, E * * @param ed The edje containing the given style which need to be updated * @param style The style which need to be updated - * @param force Update the given style forcely or not + * As now edje_style supports lazy computation of evas_textblock_style + * only call this function from _edje_textblock_style_get() */ void -_edje_textblock_style_update(Edje *ed, Edje_Style *stl, Eina_Bool force) +_edje_textblock_style_update(Edje *ed, Edje_Style *stl) { Eina_List *l; Eina_Strbuf *txt = NULL; @@ -142,11 +143,19 @@ _edje_textblock_style_update(Edje *ed, Edje_Style *stl, Eina_Bool force) /* Make sure the style is already defined */ if (!stl->style) return; - /* we are sure it dosen't have any text_class */ - if (stl->readonly) return; + /* this check is only here to catch misuse of this function */ + if (stl->readonly) + { +ERR("style_update() shouldn't be called for readonly style. performance regression : %s", stl->name); +return; + } - /* No need to compute it again and again and again */ - if (!force && stl->cache) return; + /* this check is only here to catch misuse of this function */ + if (stl->cache) + { +ERR("style_update() shouldn't be called for cached style. performance regression : %s", stl->name); +return; + } if (!txt) txt = eina_strbuf_new(); @@ -282,7 +291,8 @@ _edje_textblock_style_add(Edje *ed, Edje_Style *stl) _edje_textblock_style_observer_add(stl, ed->obj); - _edje_textblock_style_update(ed, stl, EINA_TRUE); + // mark it dirty to recompute it later. + stl->cache = EINA_FALSE; } static inline void @@ -370,7 +380,7 @@ _edje_textblock_style_get(Edje *ed, const char *style) /* if style is dirty recompute */ if (!stl->cache) - _edje_textblock_style_update(ed, stl, EINA_FALSE); + _edje_textblock_style_update(ed, stl); return stl->style; } @@ -400,7 +410,9 @@ _edje_textblock_style_all_update_text_class(Edje *ed, const char *text_class) if (!strcmp(tag->text_class, text_class)) { - _edje_textblock_style_update(ed, stl, EINA_TRUE); + // just mark it dirty so the next request + // for this style will trigger recomputation. + stl->cache = EINA_FALSE; break; } } --
[EGIT] [core/efl] master 02/05: textblock/optimization: refactor evas_textblock_style for memory and perfromance.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9952b9bf182d2b27de05b82476649a1ed8c1785d commit 9952b9bf182d2b27de05b82476649a1ed8c1785d Author: subhransu mohanty Date: Mon Aug 12 02:42:27 2019 + textblock/optimization: refactor evas_textblock_style for memory and perfromance. the main user of textblock_style_set() api is the edje whcih keeps its owen edje_textblock_style tags( string_shared string) by changing the textblock to keep the string_shared string will improve the chance of sharing the same string hence reducing memory. By removing the Eina_StrBuf usage inside the loop in textblock_style_set() api we can avoid lot of temporary memory allocation and deallocation hence will improve performance. Note: I see lot of places we use Eina_Strbuf inside a loop (eina_strbuf_new() does 2 allocation) We need to be extra carefull while reviewing when the code uses those construct to see if its really necessary. Data: it reduces memory allocation by 7000 in elementary_test launch time. Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D9545 --- src/lib/evas/canvas/evas_object_textblock.c | 57 ++--- 1 file changed, 20 insertions(+), 37 deletions(-) diff --git a/src/lib/evas/canvas/evas_object_textblock.c b/src/lib/evas/canvas/evas_object_textblock.c index 4f3f4d54eb..6ecc9b1112 100644 --- a/src/lib/evas/canvas/evas_object_textblock.c +++ b/src/lib/evas/canvas/evas_object_textblock.c @@ -307,8 +307,8 @@ typedef struct _Text_Item_Filter Text_Item_Filter; struct _Evas_Object_Style_Tag_Base { - char *tag; /**< Format Identifier: b=Bold, i=Italic etc. */ - char *replace; /**< Replacement string. "font_weight=Bold", "font_style=Italic" etc. */ + const char *tag; /**< Format Identifier: b=Bold, i=Italic etc. */ + const char *replace; /**< Replacement string. "font_weight=Bold", "font_style=Italic" etc. */ size_t tag_len; /**< Strlen of tag. */ }; @@ -552,7 +552,7 @@ struct _Evas_Object_Textblock_Format struct _Efl_Canvas_Text_Style { const char*style_text; - char *default_tag; + const char*default_tag; Evas_Object_Style_Tag *tags; Eina_List *objects; Eina_Bool delete_me : 1; @@ -874,15 +874,15 @@ static void _style_replace(Evas_Textblock_Style *ts, const char *style_text) { eina_stringshare_replace(>style_text, style_text); - if (ts->default_tag) free(ts->default_tag); + if (ts->default_tag) eina_stringshare_del(ts->default_tag); while (ts->tags) { Evas_Object_Style_Tag *tag; tag = (Evas_Object_Style_Tag *)ts->tags; ts->tags = (Evas_Object_Style_Tag *)eina_inlist_remove(EINA_INLIST_GET(ts->tags), EINA_INLIST_GET(tag)); -free(tag->tag.tag); -free(tag->tag.replace); +eina_stringshare_del(tag->tag.tag); +eina_stringshare_del(tag->tag.replace); free(tag); } ts->default_tag = NULL; @@ -7319,6 +7319,7 @@ evas_textblock_style_set(Evas_Textblock_Style *ts, const char *text) key_start = key_stop = val_start = NULL; p = ts->style_text; +Eina_Strbuf *tag_value_buf = eina_strbuf_new(); while (*p) { if (!key_start) @@ -7344,12 +7345,13 @@ evas_textblock_style_set(Evas_Textblock_Style *ts, const char *text) } if ((key_start) && (key_stop) && (val_start)) { - char *tags, *replaces = NULL; + const char *tag_value = NULL; Evas_Object_Style_Tag *tag; const char *val_stop = NULL; + + eina_strbuf_reset(tag_value_buf); size_t tag_len; { - Eina_Strbuf *buf = eina_strbuf_new(); val_stop = val_start; while(*p) { @@ -7358,72 +7360,53 @@ evas_textblock_style_set(Evas_Textblock_Style *ts, const char *text) /* Break if we found the tag end */ if (p[-1] != '\\') { - eina_strbuf_append_length(buf, val_stop, + eina_strbuf_append_length(tag_value_buf, val_stop, p - val_stop); break; } else { - eina_strbuf_append_length(buf, val_stop, + eina_strbuf_append_length(tag_value_buf, val_stop, p - val_stop - 1); -
[EGIT] [website/www-content] master 01/01: Add link to EXTERNAL C# reference guide
xartigas pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=8682ab8ea217e4f49af2fa2e021c061d6a1e commit 8682ab8ea217e4f49af2fa2e021c061d6a1e Author: Xavi Artigas Date: Thu Jul 25 13:00:50 2019 +0200 Add link to EXTERNAL C# reference guide While the infrastructure in docs.enlightenment.org is being setup we are going to host the DocFX autogenerated HTML in GitHub Pages, in a mirror of this repository, in a "gh-pages" branch (only present in the mirror). --- pages/develop/navigation.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pages/develop/navigation.txt b/pages/develop/navigation.txt index 16aaa3388..5daae8ea9 100644 --- a/pages/develop/navigation.txt +++ b/pages/develop/navigation.txt @@ -53,4 +53,5 @@ * [[/develop/guides/csharp/ui/sizing.md | UI Sizing]] * [[/develop/guides/csharp/ui/focus.md | UI Focus]] * [[/develop/legacy/api/c/ | Reference Guide: Legacy API ]] - * [[/develop/api/ | Reference Guide: Unified C API]] \ No newline at end of file + * [[/develop/api/ | Reference Guide: Unified C API]] + * [[https://enlightenment.github.io/www-content/gh-pages/api/csharp/api | Reference Guide: Unified C# API]] --
[EGIT] [website/www-content] master 01/01: e 23 release news
raster pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=003ba0308c70e24ac311965adac9b26684a3622a commit 003ba0308c70e24ac311965adac9b26684a3622a Author: Carsten Haitzler (Rasterman) Date: Sat Aug 24 08:45:28 2019 +0100 e 23 release news --- pages/news/e23_release.txt | 44 1 file changed, 44 insertions(+) diff --git a/pages/news/e23_release.txt b/pages/news/e23_release.txt new file mode 100644 index 0..91657e255 --- /dev/null +++ b/pages/news/e23_release.txt @@ -0,0 +1,44 @@ +=== Enlightenment DR 0.23.0 Release === + * //2019-08-24 - by Carsten Haitzler// + +Highlights: + * New padded screenshot option + * Meson build now is the build system + * Music Control now supports rage mpris dbus protocol + * Add Bluez5 support with totally new and redone module and gadget + * Add dpms option to turn it off or on + * Alt-tab window switcher allows moving of windows while alt-tabbing + * Lots of bug fixes, compile warning fixes etc. + * Massive improvements to Wayland support + + +== Download == + +^ ** LINK ** ^ ** SHA256 ** ^ +| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.23.0.tar.xz | Enlightenment DR 0.23.0 XZ]] | b8c5d040875576d3d3ad8572644f92a65e21291bcee6b0d62f74fbfd482afdf8 | + + +== Building and Dependencies == + + - [[https://git.enlightenment.org/core/efl.git/tree/README | EFL]] + - xcb + - xcb-shape + - xcb-keysyms + - libpam (Linux only) + +Highly recommended to ensure proper functionality (though you can live +without these): + + - connman (For network configuration support) + - bluez5 (For bluetooth configuration and control) + - bc (For the evrything module calculator mode) + - pulseaudio (For proper audio device control and redirection) + - acpid (For systems with ACPI for lid events, AC/Battery plug in/out etc.) + - packagekit (For the built in system updates monitoring and updater) + - udisks2 (For removable storage mounting/unmounting) + - gdb (If you want automatic backtraces on a crash in ~/.e-crashdump.txt - don't forget to build EFL and E with gdb debugging to make this useful) + +**Note:** Enlightenment 0.23.0 depends on EFL **v1.22.3** or newer. + +{{:blank.png?nolink&100|}} +~~DISCUSSIONS~~ --
[EGIT] [core/enlightenment] master 01/01: winlist - use new geom key navigate action util
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ec1ee3ff4275e757e908156fe09eff60e0fb7702 commit ec1ee3ff4275e757e908156fe09eff60e0fb7702 Author: Carsten Haitzler (Rasterman) Date: Thu Sep 5 00:19:31 2019 +0100 winlist - use new geom key navigate action util --- src/modules/winlist/e_winlist.c | 28 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/modules/winlist/e_winlist.c b/src/modules/winlist/e_winlist.c index 0b38004e8..24e5ad5f7 100644 --- a/src/modules/winlist/e_winlist.c +++ b/src/modules/winlist/e_winlist.c @@ -971,22 +971,26 @@ static Eina_Bool _e_winlist_cb_key_down(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) { Ecore_Event_Key *ev = event; + E_Util_Action act; + int x = 0, y = 0; if (ev->window != _input_window) return ECORE_CALLBACK_PASS_ON; - if (!strcmp(ev->key, "Up")) - e_winlist_direction_select(_winlist_zone, 0); - else if (!strcmp(ev->key, "Down")) - e_winlist_direction_select(_winlist_zone, 1); - else if (!strcmp(ev->key, "Left")) - e_winlist_direction_select(_winlist_zone, 2); - else if (!strcmp(ev->key, "Right")) - e_winlist_direction_select(_winlist_zone, 3); - else if (!strcmp(ev->key, "Return")) + act = e_util_key_geometry_action_get(ev->key, , , 1, 1); + if (act == E_UTIL_ACTION_DONE) e_winlist_hide(); - else if (!strcmp(ev->key, "space")) - e_winlist_hide(); - else if (!strcmp(ev->key, "Escape")) + else if (act == E_UTIL_ACTION_ABORT) _e_winlist_restore_desktop(); + else if (act == E_UTIL_ACTION_DO) + { +if (y < 0) + e_winlist_direction_select(_winlist_zone, 0); +else if (y > 0) + e_winlist_direction_select(_winlist_zone, 1); +else if (x < 0) + e_winlist_direction_select(_winlist_zone, 2); +else if (x > 0) + e_winlist_direction_select(_winlist_zone, 3); + } else if (!strcmp(ev->key, "1")) _e_winlist_activate_nth(0); else if (!strcmp(ev->key, "2")) --
[EGIT] [core/efl] master 01/01: eolian: change composite syntax from block to inheritance section
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=eb25e92770f9524e2921a512a326aea202e4b032 commit eb25e92770f9524e2921a512a326aea202e4b032 Author: Daniel Kolesa Date: Fri Sep 6 15:08:27 2019 +0200 eolian: change composite syntax from block to inheritance section This makes more sense as these are related to inheritance tree. Therefore, change while we still can. Fixes T8183 --- src/lib/elementary/efl_ui_collection.eo | 9 ++- src/lib/elementary/efl_ui_image_zoomable.eo | 5 +- src/lib/elementary/efl_ui_list_view.eo| 6 +- src/lib/elementary/efl_ui_panel.eo| 4 +- src/lib/elementary/efl_ui_radio_box.eo| 4 +- src/lib/elementary/efl_ui_scroller.eo | 7 +- src/lib/elementary/efl_ui_tab_bar.eo | 9 +-- src/lib/elementary/efl_ui_tags.eo | 7 +- src/lib/elementary/efl_ui_text.eo | 6 +- src/lib/elementary/efl_ui_video.eo| 7 +- src/lib/elementary/efl_ui_widget_focus_manager.eo | 8 +-- src/lib/elementary/efl_ui_win.eo | 4 +- src/lib/eolian/eo_parser.c| 79 +++ src/tests/eolian/data/unimpl.eo | 5 +- 14 files changed, 66 insertions(+), 94 deletions(-) diff --git a/src/lib/elementary/efl_ui_collection.eo b/src/lib/elementary/efl_ui_collection.eo index ecd0eb1e94..9fad710f65 100644 --- a/src/lib/elementary/efl_ui_collection.eo +++ b/src/lib/elementary/efl_ui_collection.eo @@ -6,6 +6,10 @@ class @beta Efl.Ui.Collection extends Efl.Ui.Layout_Base implements Efl.Ui.Multi_Selectable, Efl.Ui.Focus.Manager_Sub, Efl.Ui.Widget_Focus_Manager + composite + Efl.Ui.Scrollable_Interactive, + Efl.Ui.Scrollbar, + Efl.Ui.Focus.Manager { [[This widget displays a list of items in an arrangement controlled by an external @.position_manager object. By using different @.position_manager objects this widget can show unidimensional lists or @@ -95,10 +99,5 @@ class @beta Efl.Ui.Collection extends Efl.Ui.Layout_Base implements item,clicked : Efl.Ui.Item; [[A $clicked event occurred over an item.]] item,clicked,any : Efl.Ui.Item; [[A $clicked,any event occurred over an item.]] } - composite { - Efl.Ui.Scrollable_Interactive; - Efl.Ui.Scrollbar; - Efl.Ui.Focus.Manager; - } } diff --git a/src/lib/elementary/efl_ui_image_zoomable.eo b/src/lib/elementary/efl_ui_image_zoomable.eo index 4669a4f4a4..62ae9bc591 100644 --- a/src/lib/elementary/efl_ui_image_zoomable.eo +++ b/src/lib/elementary/efl_ui_image_zoomable.eo @@ -5,6 +5,7 @@ struct @extern Elm.Photocam.Progress; [[Photocam progress information.]] class @beta Efl.Ui.Image_Zoomable extends Efl.Ui.Image implements Efl.Ui.Zoom, Efl.Ui.Scrollable_Interactive, Efl.Ui.Scrollbar + composite Efl.Ui.Scrollable_Interactive, Efl.Ui.Scrollbar { [[Elementary Image Zoomable class]] methods { @@ -84,8 +85,4 @@ class @beta Efl.Ui.Image_Zoomable extends Efl.Ui.Image implements Efl.Ui.Zoom, download,done: void; [[Called when photocam download finished]] download,error: Elm.Photocam.Error; [[Called when photocam download failed]] } - composite { - Efl.Ui.Scrollable_Interactive; - Efl.Ui.Scrollbar; - } } diff --git a/src/lib/elementary/efl_ui_list_view.eo b/src/lib/elementary/efl_ui_list_view.eo index f1490b3b26..5c49394ec4 100644 --- a/src/lib/elementary/efl_ui_list_view.eo +++ b/src/lib/elementary/efl_ui_list_view.eo @@ -10,6 +10,8 @@ struct @beta Efl.Ui.List_View_Item_Event class @beta Efl.Ui.List_View extends Efl.Ui.Layout_Base implements Efl.Ui.Scrollable_Interactive, Efl.Ui.Scrollbar, Efl.Access.Widget.Action, Efl.Access.Selection, Efl.Ui.Focus.Composition, Efl.Ui.Focus.Manager_Sub, Efl.Ui.Container_Selectable, Efl.Ui.List_View_Model, Efl.Ui.Widget_Focus_Manager + composite +Efl.Ui.Scrollable_Interactive, Efl.Ui.Scrollbar { methods { @property homogeneous { @@ -90,8 +92,4 @@ class @beta Efl.Ui.List_View extends Efl.Ui.Layout_Base implements Efl.Ui.Scroll Efl.Access.Selection.all_children_select; Efl.Access.Selection.access_selection_clear; } - composite { - Efl.Ui.Scrollable_Interactive; - Efl.Ui.Scrollbar; - } } diff --git a/src/lib/elementary/efl_ui_panel.eo b/src/lib/elementary/efl_ui_panel.eo index 0cde869b3e..24182af750 100644 --- a/src/lib/elementary/efl_ui_panel.eo +++ b/src/lib/elementary/efl_ui_panel.eo @@ -18,6 +18,7 @@ struct @beta Efl.Ui.Panel_Scroll_Info class @beta Efl.Ui.Panel extends Efl.Ui.Layout_Base implements Efl.Ui.Focus.Layer, Efl.Ui.Scrollable_Interactive, Efl.Content,
[EGIT] [core/enlightenment] enlightenment-0.23 01/02: e comp object - fix null comp win access on move begin
raster pushed a commit to branch enlightenment-0.23. http://git.enlightenment.org/core/enlightenment.git/commit/?id=af199f6c0fd17d8068c3ede4fecf012b6e84e066 commit af199f6c0fd17d8068c3ede4fecf012b6e84e066 Author: Carsten Haitzler (Rasterman) Date: Wed Sep 4 13:34:05 2019 +0100 e comp object - fix null comp win access on move begin don't crash. @fix --- src/bin/e_comp_object.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 59e6e56a0..4b3d4db00 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -2631,6 +2631,7 @@ _e_comp_object_move_end(void *d EINA_UNUSED, E_Client *ec) Evas_Object *rect; Eina_Array_Iterator it; + if (!cw) return; if (!cw->input_objs) return; EINA_ARRAY_ITER_NEXT(cw->input_objs, i, rect, it) @@ -2645,6 +2646,7 @@ _e_comp_object_move_begin(void *d EINA_UNUSED, E_Client *ec) Evas_Object *rect; Eina_Array_Iterator it; + if (!cw) return; if (!cw->input_objs) return; EINA_ARRAY_ITER_NEXT(cw->input_objs, i, rect, it) --
[EGIT] [core/efl] master 01/10: elm/hoversel: avoid calling api functions on null hoversel objects
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=1948bf0d077a14a487bafc47da393532ed04c0e4 commit 1948bf0d077a14a487bafc47da393532ed04c0e4 Author: Mike Blumenkrantz Date: Mon Aug 19 13:38:15 2019 -0400 elm/hoversel: avoid calling api functions on null hoversel objects the hoversel must be created before it can be shown, and its internal hover object may be destroyed when it is hidden @fix Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D9631 --- src/lib/elementary/elc_hoversel.c | 3 ++- src/lib/elementary/elm_entry.c| 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/elc_hoversel.c b/src/lib/elementary/elc_hoversel.c index b882b87833..dfdb638892 100644 --- a/src/lib/elementary/elc_hoversel.c +++ b/src/lib/elementary/elc_hoversel.c @@ -678,7 +678,8 @@ _elm_hoversel_efl_gfx_entity_visible_set(Eo *obj, Elm_Hoversel_Data *sd, Eina_Bo return; efl_gfx_entity_visible_set(efl_super(obj, MY_CLASS), vis); - efl_gfx_entity_visible_set(sd->hover, vis); + if (sd->hover) + efl_gfx_entity_visible_set(sd->hover, vis); } EOLIAN static void diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c index 1fa1a9096a..94ce3c5391 100644 --- a/src/lib/elementary/elm_entry.c +++ b/src/lib/elementary/elm_entry.c @@ -1811,8 +1811,8 @@ _menu_call(Evas_Object *obj) if (sd->hoversel) { _hoversel_position(obj); - evas_object_show(sd->hoversel); elm_hoversel_hover_begin(sd->hoversel); + evas_object_show(sd->hoversel); } if (!_elm_config->desktop_entry) --
[EGIT] [core/efl] master 01/01: Revert "evas_object_textblock: add support for variation sequences"
bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6883087ac7dac530062b24b5ea918904589a89c2 commit 6883087ac7dac530062b24b5ea918904589a89c2 Author: Marcel Hollerbach Date: Tue Jul 30 19:09:12 2019 +0200 Revert "evas_object_textblock: add support for variation sequences" This reverts commit f7ce771e3243e19f8a12672ea2be752dedccbcf6. --- src/bin/elementary/test.c | 2 - src/bin/elementary/test_label.c | 24 --- src/lib/evas/common/evas_font.h | 53 +- src/lib/evas/common/evas_font_load.c | 6 +- src/lib/evas/common/evas_font_main.c | 296 -- src/lib/evas/common/evas_font_query.c | 54 ++- src/lib/evas/common/evas_text_utils.c | 6 +- src/tests/evas/evas_test_textblock.c | 19 +-- 8 files changed, 49 insertions(+), 411 deletions(-) diff --git a/src/bin/elementary/test.c b/src/bin/elementary/test.c index 1a332575da..5264ab146a 100644 --- a/src/bin/elementary/test.c +++ b/src/bin/elementary/test.c @@ -243,7 +243,6 @@ void test_label_wrap(void *data, Evas_Object *obj, void *event_info); void test_label_ellipsis(void *data, Evas_Object *obj, void *event_info); void test_label_colors(void *data, Evas_Object *obj, void *event_info); void test_label_emoji(void *data, Evas_Object *obj, void *event_info); -void test_label_variation_sequence(void *data, Evas_Object *obj, void *event_info); void test_conformant(void *data, Evas_Object *obj, void *event_info); void test_conformant2(void *data, Evas_Object *obj, void *event_info); void test_conformant_indicator(void *data, Evas_Object *obj, void *event_info); @@ -1204,7 +1203,6 @@ add_tests: ADD_TEST(NULL, "Text", "Label Ellipsis", test_label_ellipsis); ADD_TEST(NULL, "Text", "Label Colors", test_label_colors); ADD_TEST(NULL, "Text", "Label Emoji", test_label_emoji); - ADD_TEST(NULL, "Text", "Label Variation Sequnece", test_label_variation_sequence); ADD_TEST_EO(NULL, "Text", "Efl.Ui.Textpath", test_ui_textpath); //--// diff --git a/src/bin/elementary/test_label.c b/src/bin/elementary/test_label.c index f49255f21e..c00ae7986e 100644 --- a/src/bin/elementary/test_label.c +++ b/src/bin/elementary/test_label.c @@ -401,30 +401,6 @@ test_label_colors(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *ev evas_object_show(win); } -/*** Label variation sequence **/ -void -test_label_variation_sequence(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Evas_Object *win, *lb; - - win = elm_win_util_standard_add("label-variation sequence", "Label variation sequnece"); - elm_win_autodel_set(win, EINA_TRUE); - - lb = elm_label_add(win); - elm_object_text_set(lb, - "You need to have at least on font contains variation sequence" - "Three different 8 glyphs : " - "888" - "line with 3 variation glyphs : " - "8AAA1234567" - ); - evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_win_resize_object_add(win, lb); - evas_object_show(lb); - - evas_object_show(win); -} - /*** Label Emoji */ static char * _fontlist_text_get(void *data, Evas_Object *obj EINA_UNUSED, const char *part EINA_UNUSED) diff --git a/src/lib/evas/common/evas_font.h b/src/lib/evas/common/evas_font.h index 5e79026ca3..ab6e6fbd17 100644 --- a/src/lib/evas/common/evas_font.h +++ b/src/lib/evas/common/evas_font.h @@ -56,32 +56,7 @@ typedef unsigned long longDATA64; #define LKU(x) eina_lock_release(&(x)) #define LKDBG(x) eina_lock_debug(&(x)) -/** - * See explanation of variation_sequences at: - * https://unicode.org/Public/UCD/latest/ucd/StandardizedVariants.txt - * https://unicode.org/reports/tr37/ - * https://unicode.org/ivd/ - * https://www.freetype.org/freetype2/docs/reference/ft2-glyph_variants.html -*/ -#define VAR_SEQ(x) GENERIC_VARIATION_SEQUENCES(x) | IDEOGRAPHICS_VARIATION_SEQUENCES(x) | MANGOLIAN_VARIATION_SEQUENCES(x) -#define GENERIC_VARIATION_SEQUENCES(x) (x>=0xFE00 && x<=0xFE0F) ? x : 0 -#define IDEOGRAPHICS_VARIATION_SEQUENCES(x) (x>=0xE0100 && x<=0xE01EF) ? x : 0 -#define MANGOLIAN_VARIATION_SEQUENCES(x) (x>=0x180B && x<=0x180D) ? x : 0 -/** - * http://unicode.org/emoji/charts/emoji-variants.html -*/ -#define VARIATION_EMOJI_PRESENTATION 0xFE0F -#define VARIATION_TEXT_PRESENTATION 0xFE0E - -/** - * These Options (Flags) are used with evas_common_font_glyph_search function - */ -#define EVAS_FONT_SEARCH_OPTION_NONE0x -#define EVAS_FONT_SEARCH_OPTION_SKIP_COLOR 0x0001 - -#define FASH_INT_MAGIC 0x01012345 -#define FASH_GLYPH_MAGIC0x02012345 enum _Evas_Font_Style { @@ -153,10 +128,6 @@ typedef
[EGIT] [core/efl] master 01/01: csharp: Adding ToString methods to Strbuf and custommarshaler.
lauromoura pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=50a1572c093d8c2620cd4d1e9d48950fe7eeae95 commit 50a1572c093d8c2620cd4d1e9d48950fe7eeae95 Author: Bruno da Silva Belo Date: Tue Sep 10 17:42:19 2019 -0300 csharp: Adding ToString methods to Strbuf and custommarshaler. Summary: WIN32 should use a allocator and deallocator different from EFL, sometimes, when freeing a pointer, it should use win32_free. To stardardize, A custommarshaler is used to fix this problem. Fixes T8201 Reviewers: lauromoura, felipealmeida Reviewed By: lauromoura Subscribers: cedric, brunobelo, felipealmeida, #reviewers, lauromoura, #committers Tags: #efl Maniphest Tasks: T8201 Differential Revision: https://phab.enlightenment.org/D9842 --- src/bindings/mono/eina_mono/eina_strbuf.cs | 25 ++--- src/bindings/mono/eina_mono/eina_value.cs | 11 ++- src/tests/efl_mono/Strbuf.cs | 10 ++ 3 files changed, 38 insertions(+), 8 deletions(-) diff --git a/src/bindings/mono/eina_mono/eina_strbuf.cs b/src/bindings/mono/eina_mono/eina_strbuf.cs index a538de0fd2..6fd35a4638 100644 --- a/src/bindings/mono/eina_mono/eina_strbuf.cs +++ b/src/bindings/mono/eina_mono/eina_strbuf.cs @@ -32,9 +32,18 @@ static internal class StrbufNativeMethods [return: MarshalAsAttribute(UnmanagedType.U1)] internal static extern bool eina_strbuf_append_char(IntPtr buf, char c); -[DllImport(efl.Libs.Eina)] +[DllImport(efl.Libs.Eina, CharSet=CharSet.Ansi)] +[return: + MarshalAs(UnmanagedType.CustomMarshaler, + MarshalTypeRef=typeof(Efl.Eo.StringPassOwnershipMarshaler))] internal static extern string eina_strbuf_string_steal(IntPtr buf); +[DllImport(efl.Libs.Eina, CharSet=CharSet.Ansi)] +[return: + MarshalAs(UnmanagedType.CustomMarshaler, + MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] +internal static extern string eina_strbuf_string_get(IntPtr buf); + [DllImport(efl.Libs.Eina)] internal static extern IntPtr eina_strbuf_length_get(IntPtr buf); // Uses IntPtr as wrapper for size_t } @@ -176,8 +185,18 @@ public class Strbuf : IDisposable throw new ObjectDisposedException(base.GetType().Name); } -return eina_strbuf_string_steal(Handle); +return eina_strbuf_string_steal(this.Handle); } -} +/// Copy the content of a buffer. +public override string ToString() +{ +if (Disposed) +{ +throw new ObjectDisposedException(base.GetType().Name); +} + +return eina_strbuf_string_get(this.Handle); +} +} } // namespace eina diff --git a/src/bindings/mono/eina_mono/eina_value.cs b/src/bindings/mono/eina_mono/eina_value.cs index 57a615772b..54c437d352 100644 --- a/src/bindings/mono/eina_mono/eina_value.cs +++ b/src/bindings/mono/eina_mono/eina_value.cs @@ -173,7 +173,10 @@ static internal class UnsafeNativeMethods internal static extern int eina_value_compare_wrapper(IntPtr handle, IntPtr other); [DllImport(efl.Libs.Eina, CharSet=CharSet.Ansi)] -internal static extern IntPtr eina_value_to_string(IntPtr handle); // We take ownership of the returned string. +[return: + MarshalAs(UnmanagedType.CustomMarshaler, + MarshalTypeRef=typeof(Efl.Eo.StringPassOwnershipMarshaler))] +internal static extern string eina_value_to_string(IntPtr handle); // We take ownership of the returned string. [DllImport(efl.Libs.CustomExports)] [return: MarshalAsAttribute(UnmanagedType.U1)] @@ -2611,10 +2614,8 @@ public class Value : IDisposable, IComparable, IEquatable public override String ToString() { SanityChecks(); -IntPtr ptr = eina_value_to_string(this.Handle); -String str = Marshal.PtrToStringAnsi(ptr); -MemoryNative.Free(ptr); -return str; +return eina_value_to_string(this.Handle); + } /// Empties an optional Eina.Value, freeing what was previously contained. diff --git a/src/tests/efl_mono/Strbuf.cs b/src/tests/efl_mono/Strbuf.cs index ef2cc56f16..78e9c5cbc3 100644 --- a/src/tests/efl_mono/Strbuf.cs +++ b/src/tests/efl_mono/Strbuf.cs @@ -16,6 +16,16 @@ class TestStrBuf Test.AssertEquals("Here's Johnny!", buf.Steal()); } +public static void test_tostring() +{ +Eina.Strbuf buf = new Eina.Strbuf(); +buf.Append("Hello"); +buf.Append(' '); +buf.Append("World!"); + +Test.AssertEquals("Hello World!", buf.ToString()); +} + public static void test_eolian() { var obj = new Dummy.TestObject(); --
[EGIT] [core/efl] master 01/01: evas - loader - rsvg generic - install svg symlink
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b2ab0a7788d90440a564ff342a7fd7e3cad0c153 commit b2ab0a7788d90440a564ff342a7fd7e3cad0c153 Author: Carsten Haitzler (Rasterman) Date: Sun Aug 18 09:57:42 2019 +0100 evas - loader - rsvg generic - install svg symlink svg loading broke as we didnt have the right symlink installed after a binary file name change. this fixes that. --- src/generic/evas/rsvg/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/generic/evas/rsvg/meson.build b/src/generic/evas/rsvg/meson.build index 4e39e74ee5..a0c5ea12ce 100644 --- a/src/generic/evas/rsvg/meson.build +++ b/src/generic/evas/rsvg/meson.build @@ -9,4 +9,4 @@ if rsvg.version() >= '2.36.0' endif generic_deps = [rsvg] -generic_support = ['svgz', 'svg.gz'] +generic_support = ['svg', 'svgz', 'svg.gz'] --
[EGIT] [core/efl] master 03/05: elementary: add support for widget part property bind.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=74aff95fcad93dc41e0ce8464602117856b82efd commit 74aff95fcad93dc41e0ce8464602117856b82efd Author: Cedric BAIL Date: Wed Aug 7 17:21:24 2019 -0700 elementary: add support for widget part property bind. Reviewed-by: Felipe Magno de Almeida Differential Revision: https://phab.enlightenment.org/D9527 --- src/lib/elementary/efl_ui_property_bind_part.eo | 11 +++ src/lib/elementary/efl_ui_widget_factory.c | 112 +++- src/lib/elementary/efl_ui_widget_factory.eo | 3 +- src/lib/elementary/meson.build | 1 + 4 files changed, 124 insertions(+), 3 deletions(-) diff --git a/src/lib/elementary/efl_ui_property_bind_part.eo b/src/lib/elementary/efl_ui_property_bind_part.eo new file mode 100644 index 00..c8438d90f9 --- /dev/null +++ b/src/lib/elementary/efl_ui_property_bind_part.eo @@ -0,0 +1,11 @@ +class @beta Efl.Ui.Property_Bind_Part extends Efl.Object implements Efl.Ui.Property_Bind +{ + [[Every part returned by an @Efl.Ui.Widget_Factory will enable the @Efl.Ui.Factory to + remember what part to call @Efl.Ui.Property_Bind.property_bind on when an item is created + enabling to propagate binding model property to item object property. + ]] + implements { + Efl.Ui.Property_Bind.property_bind; + Efl.Object.destructor; + } +} diff --git a/src/lib/elementary/efl_ui_widget_factory.c b/src/lib/elementary/efl_ui_widget_factory.c index a04bdcbb23..da83117007 100644 --- a/src/lib/elementary/efl_ui_widget_factory.c +++ b/src/lib/elementary/efl_ui_widget_factory.c @@ -3,17 +3,36 @@ #endif #define EFL_UI_WIDGET_PROTECTED +#define EFL_PART_PROTECTED -#include +#include #include "elm_priv.h" +#include "efl_ui_property_bind_part.eo.h" typedef struct _Efl_Ui_Widget_Factory_Data Efl_Ui_Widget_Factory_Data; typedef struct _Efl_Ui_Widget_Factory_Request Efl_Ui_Widget_Factory_Request; +typedef struct _Efl_Ui_Bind_Part_Data Efl_Ui_Bind_Part_Data; +typedef struct _Efl_Ui_Property_Bind_Data Efl_Ui_Property_Bind_Data; + +struct _Efl_Ui_Property_Bind_Data +{ + Eina_Stringshare *part_property; + Eina_Stringshare *model_property; +}; + +struct _Efl_Ui_Bind_Part_Data +{ + Eina_Stringshare *part; + + Eina_List *properties; +}; struct _Efl_Ui_Widget_Factory_Data { const Efl_Class *klass; + Eina_Hash *parts; + Eina_Stringshare *style; }; @@ -62,6 +81,26 @@ _efl_ui_widget_factory_create_then(Eo *obj EINA_UNUSED, void *data, const Eina_V efl_ui_widget_style_set(efl_added, string), efl_ui_view_model_set(efl_added, r->model)); + if (r->pd->parts) + { +Efl_Ui_Bind_Part_Data *bpd; +Eina_Iterator *it; + +it = eina_hash_iterator_data_new(r->pd->parts); + +EINA_ITERATOR_FOREACH(it, bpd) + { + Efl_Ui_Property_Bind_Data *bppd; + Eina_List *l; + + EINA_LIST_FOREACH(bpd->properties, l, bppd) + efl_ui_property_bind(efl_part(w, bpd->part), +bppd->part_property, +bppd->model_property); + } +eina_iterator_free(it); + } + return eina_value_object_init(w); } @@ -128,7 +167,76 @@ _efl_ui_widget_factory_efl_ui_property_bind_property_bind(Eo *obj, Efl_Ui_Widget return 0; } - return efl_ui_property_bind(efl_super(obj, EFL_UI_WIDGET_FACTORY_CLASS), target, property); + return EINVAL; +} + + +typedef struct _Efl_Ui_Property_Bind_Part_Data Efl_Ui_Property_Bind_Part_Data; +struct _Efl_Ui_Property_Bind_Part_Data +{ + Efl_Ui_Widget_Factory_Data *pd; + Eina_Stringshare *name; +}; + +static Efl_Object * +_efl_ui_widget_factory_efl_part_part_get(const Eo *obj, + Efl_Ui_Widget_Factory_Data *pd, + const char *name) +{ + Efl_Ui_Property_Bind_Part_Data *ppd; + Efl_Object *part; + + part = efl_add(EFL_UI_PROPERTY_BIND_PART_CLASS, (Eo*) obj); + if (!part) return NULL; + + ppd = efl_data_scope_get(obj, EFL_UI_PROPERTY_BIND_PART_CLASS); + ppd->name = eina_stringshare_add(name); + ppd->pd = pd; + + return part; +} + +static void +_efl_ui_property_bind_part_efl_object_destructor(Eo *obj, Efl_Ui_Property_Bind_Part_Data *pd) +{ + eina_stringshare_replace(>name, NULL); + + efl_destructor(efl_super(obj, EFL_UI_PROPERTY_BIND_PART_CLASS)); +} + +static Eina_Error +_efl_ui_property_bind_part_efl_ui_property_bind_property_bind(Eo *obj EINA_UNUSED, + Efl_Ui_Property_Bind_Part_Data *pd, + const char *key, + const char *property) +{ + Efl_Ui_Bind_Part_Data *bpd; + Efl_Ui_Property_Bind_Data *bppd; + + if
[EGIT] [core/efl] master 03/14: efl model - fix use after free
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=05ee22cd68732592d107e6bd5643e6d4d6b72d6e commit 05ee22cd68732592d107e6bd5643e6d4d6b72d6e Author: Carsten Haitzler (Rasterman) Date: Sat Aug 10 22:47:22 2019 +0100 efl model - fix use after free fix CID 1402712 --- src/lib/ecore/efl_generic_model.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/lib/ecore/efl_generic_model.c b/src/lib/ecore/efl_generic_model.c index 35d26374a8..99b6f480ec 100644 --- a/src/lib/ecore/efl_generic_model.c +++ b/src/lib/ecore/efl_generic_model.c @@ -88,13 +88,12 @@ _efl_generic_model_efl_model_property_set(Eo *obj, Efl_Generic_Model_Data *pd, c free(e); } - eina_stringshare_del(prop); - evt.changed_properties = eina_array_new(1); eina_array_push(evt.changed_properties, prop); efl_event_callback_call(obj, EFL_MODEL_EVENT_PROPERTIES_CHANGED, ); + eina_stringshare_del(prop); eina_array_free(evt.changed_properties); return efl_loop_future_resolved(obj, --
[EGIT] [core/efl] feature/themes/flat 01/02: TH - fix build...
raster pushed a commit to branch feature/themes/flat. http://git.enlightenment.org/core/efl.git/commit/?id=fbcbd00758b09ddaa33693e898e7e80f3f9bc7e2 commit fbcbd00758b09ddaa33693e898e7e80f3f9bc7e2 Author: Carsten Haitzler (Rasterman) Date: Thu Aug 22 20:25:32 2019 +0100 TH - fix build... --- data/elementary/themes/edc/wallpaper.edc | 1 - 1 file changed, 1 deletion(-) diff --git a/data/elementary/themes/edc/wallpaper.edc b/data/elementary/themes/edc/wallpaper.edc index 216a86e566..f653e210d7 100644 --- a/data/elementary/themes/edc/wallpaper.edc +++ b/data/elementary/themes/edc/wallpaper.edc @@ -321,7 +321,6 @@ } program { signal: "e,action,thumb,gen"; source: "e"; action: STATE_SET "visible" 0.0; -target: "shadow"; target: "base"; target: "events"; after: "thumb_gen2"; --
[EGIT] [core/efl] master 01/07: evas_filter_parser: remove dereferenced NULL
zmike pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=228bed4c8c8ab00773151dc67ea80fe261997d3b commit 228bed4c8c8ab00773151dc67ea80fe261997d3b Author: Shinwoo Kim Date: Fri Aug 30 09:17:59 2019 -0400 evas_filter_parser: remove dereferenced NULL Summary: This is detected by static analysis tool. The variable last could be NULL when it is dereferenced. Reviewers: Hermet, zmike, bu5hm4n Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9796 --- src/lib/evas/filters/evas_filter_parser.c | 14 ++ 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/lib/evas/filters/evas_filter_parser.c b/src/lib/evas/filters/evas_filter_parser.c index 00b231e020..264f6a6ffa 100644 --- a/src/lib/evas/filters/evas_filter_parser.c +++ b/src/lib/evas/filters/evas_filter_parser.c @@ -1405,10 +1405,16 @@ _curve_instruction_prepare(Evas_Filter_Program *pgm, Evas_Filter_Instruction *in // TODO: Allow passing an array of 256 values as points. // It could be easily computed from another function in the script. _instruction_param_seq_add(instr, "points", VT_SPECIAL, _lua_curve_points_func, NULL); - if (instr->params) last = instr->params->last; - param = EINA_INLIST_CONTAINER_GET(last, Instruction_Param); - param->allow_any_string = EINA_TRUE; - + if (instr->params) + { +last = instr->params->last; +if (last) + { + param = EINA_INLIST_CONTAINER_GET(last, Instruction_Param); + param->allow_any_string = EINA_TRUE; + } + } + _instruction_param_seq_add(instr, "interpolation", VT_STRING, "linear"); _instruction_param_seq_add(instr, "channel", VT_STRING, "rgb"); _instruction_param_name_add(instr, "src", VT_BUFFER, _buffer_get(pgm, "input")); --
[EGIT] [core/efl] master 01/01: efl_ui/scrollable_content: be more explicit about scrollable_content_get()
xartigas pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=51265dea6b84a6b6191abc03e89087d710d31883 commit 51265dea6b84a6b6191abc03e89087d710d31883 Author: Mike Blumenkrantz Date: Fri Sep 13 18:49:03 2019 +0200 efl_ui/scrollable_content: be more explicit about scrollable_content_get() Summary: always return NULL when an internal text object exists to avoid exposing internal objects; this is an abstraction mechanism which should not be extended or relied upon Reviewers: segfaultxavi Reviewed By: segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9910 --- src/lib/elementary/efl_ui_widget_scrollable_content.c | 1 + src/lib/elementary/efl_ui_widget_scrollable_content.eo | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/lib/elementary/efl_ui_widget_scrollable_content.c b/src/lib/elementary/efl_ui_widget_scrollable_content.c index c69f7b073d..299eabbece 100644 --- a/src/lib/elementary/efl_ui_widget_scrollable_content.c +++ b/src/lib/elementary/efl_ui_widget_scrollable_content.c @@ -206,6 +206,7 @@ _efl_ui_widget_scrollable_content_scrollable_content_set(Eo *obj, Efl_Ui_Widget_ EOLIAN static Eo * _efl_ui_widget_scrollable_content_scrollable_content_get(const Eo *obj EINA_UNUSED, Efl_Ui_Widget_Scrollable_Content_Data *pd) { + if (pd->label) return NULL; if (!pd->scroller) return NULL; return efl_content_get(pd->scroller); } diff --git a/src/lib/elementary/efl_ui_widget_scrollable_content.eo b/src/lib/elementary/efl_ui_widget_scrollable_content.eo index ff3e774449..9dba617de1 100644 --- a/src/lib/elementary/efl_ui_widget_scrollable_content.eo +++ b/src/lib/elementary/efl_ui_widget_scrollable_content.eo @@ -43,6 +43,8 @@ mixin @beta Efl.Ui.Widget_Scrollable_Content requires Efl.Object @property scrollable_content { [[This is the content which will be placed in the internal scroller. + If a scrollable text string is set, this will return $NULL. + @since 1.23 ]] set { --
[EGIT] [core/efl] master 02/10: elm/hoversel: manually trigger group_calc for internal objects
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=187425e12ccc355e9fb58074b72c786535d5aa23 commit 187425e12ccc355e9fb58074b72c786535d5aa23 Author: Mike Blumenkrantz Date: Mon Aug 19 13:39:11 2019 -0400 elm/hoversel: manually trigger group_calc for internal objects hoversel doesn't implement group calc or do any sane type of sizing so just manually call these on demand to ensure the correct size is used fix T8127 Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D9632 --- src/lib/elementary/elc_hoversel.c | 1 + src/lib/elementary/elm_entry.c| 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/lib/elementary/elc_hoversel.c b/src/lib/elementary/elc_hoversel.c index dfdb638892..ca08e713df 100644 --- a/src/lib/elementary/elc_hoversel.c +++ b/src/lib/elementary/elc_hoversel.c @@ -501,6 +501,7 @@ _activate(Evas_Object *obj) { ELM_HOVERSEL_ITEM_DATA_GET(eo_item, item); evas_object_show(VIEW(item)); +efl_canvas_group_calculate(VIEW(item)); elm_box_pack_end(sd->bx, VIEW(item)); } diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c index 94ce3c5391..7e9e838d97 100644 --- a/src/lib/elementary/elm_entry.c +++ b/src/lib/elementary/elm_entry.c @@ -1437,6 +1437,8 @@ _hoversel_position(Evas_Object *obj) edje_object_part_text_cursor_geometry_get (sd->entry_edje, "elm.text", , , , ); + if (efl_canvas_group_need_recalculate_get(sd->hoversel)) + efl_canvas_group_calculate(sd->hoversel); evas_object_size_hint_combined_min_get(sd->hoversel, , ); if (cx + mw > w) cx = w - mw; --
[EGIT] [core/efl] master 08/09: efl_ui/popup_backwall: implement efl.file file and key get methods
bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=15eff4082011fd13cadc781916e4813a008d0b94 commit 15eff4082011fd13cadc781916e4813a008d0b94 Author: Mike Blumenkrantz Date: Mon Aug 5 18:56:44 2019 + efl_ui/popup_backwall: implement efl.file file and key get methods these need to be proxied to the internal image object to return correct values Reviewed-by: Marcel Hollerbach Differential Revision: https://phab.enlightenment.org/D9508 --- src/lib/elementary/efl_ui_popup.c| 20 src/lib/elementary/efl_ui_popup_part_backwall.eo | 2 ++ 2 files changed, 22 insertions(+) diff --git a/src/lib/elementary/efl_ui_popup.c b/src/lib/elementary/efl_ui_popup.c index 007e5f5b9b..eea29e7bdc 100644 --- a/src/lib/elementary/efl_ui_popup.c +++ b/src/lib/elementary/efl_ui_popup.c @@ -322,6 +322,26 @@ _efl_ui_popup_part_backwall_repeat_events_get(const Eo *obj, void *_pd EINA_UNUS return efl_canvas_object_repeat_events_get(sd->backwall); } +EOLIAN static Eina_Stringshare * +_efl_ui_popup_part_backwall_efl_file_file_get(const Eo *obj, void *_pd EINA_UNUSED) +{ + Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); + Efl_Ui_Popup_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_POPUP_CLASS); + + Eo *content = edje_object_part_swallow_get(sd->backwall, "efl.content"); + return content ? efl_file_get(content) : NULL; +} + +EOLIAN static Eina_Stringshare * +_efl_ui_popup_part_backwall_efl_file_key_get(const Eo *obj, void *_pd EINA_UNUSED) +{ + Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); + Efl_Ui_Popup_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_POPUP_CLASS); + + Eo *content = edje_object_part_swallow_get(sd->backwall, "efl.content"); + return content ? efl_file_key_get(content) : NULL; +} + EOLIAN static void _efl_ui_popup_part_backwall_efl_file_unload(Eo *obj, void *_pd EINA_UNUSED) { diff --git a/src/lib/elementary/efl_ui_popup_part_backwall.eo b/src/lib/elementary/efl_ui_popup_part_backwall.eo index 64bd8636b7..8b4eea33bf 100644 --- a/src/lib/elementary/efl_ui_popup_part_backwall.eo +++ b/src/lib/elementary/efl_ui_popup_part_backwall.eo @@ -25,6 +25,8 @@ class @beta Efl.Ui.Popup_Part_Backwall extends Efl.Ui.Layout_Part implements Efl } } implements { + Efl.File.file { get; } + Efl.File.key { get; } Efl.File.load; Efl.File.unload; } --
[EGIT] [core/efl] master 04/08: elm_test: add a example that shows efl_ui_item instances
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=764f35b7a3e795e344d2414e252e280c3c34756d commit 764f35b7a3e795e344d2414e252e280c3c34756d Author: Marcel Hollerbach Date: Mon Jul 29 15:00:32 2019 +0200 elm_test: add a example that shows efl_ui_item instances this is just a little showcase to show the possible items Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D9430 --- src/bin/elementary/meson.build | 1 + src/bin/elementary/test.c | 3 ++ src/bin/elementary/test_ui_items.c | 87 ++ src/lib/elementary/Efl_Ui.h| 1 + 4 files changed, 92 insertions(+) diff --git a/src/bin/elementary/meson.build b/src/bin/elementary/meson.build index 10372d9154..9c26bc3eb4 100644 --- a/src/bin/elementary/meson.build +++ b/src/bin/elementary/meson.build @@ -157,6 +157,7 @@ elementary_test_src = [ 'test_ui_tab_pager.c', 'test_ui_relative_layout.c', 'test_ui_item_container.c', + 'test_ui_items.c', 'test.h' ] diff --git a/src/bin/elementary/test.c b/src/bin/elementary/test.c index f4400695e5..1a332575da 100644 --- a/src/bin/elementary/test.c +++ b/src/bin/elementary/test.c @@ -402,6 +402,8 @@ void test_ui_relative_layout(void *data, Evas_Object *obj, void *event_info); void test_efl_ui_radio(void *data, Evas_Object *obj, void *event_info); void test_efl_ui_collection_list(void *data, Evas_Object *obj, void *event_info ); void test_efl_ui_collection_grid(void *data, Evas_Object *obj, void *event_info); +void test_efl_ui_item(void *data, Evas_Object *obj, void *event_info); + static void _list_udpate(void); static Evas_Object *win, *tbx, *entry; // TODO: refactoring @@ -905,6 +907,7 @@ add_tests: ADD_TEST_EO(NULL, "Containers", "Efl.Ui.Relative_Layout", test_ui_relative_layout); ADD_TEST_EO(NULL, "Containers", "Efl.Ui.Collection List", test_efl_ui_collection_list); ADD_TEST_EO(NULL, "Containers", "Efl.Ui.Collection Grid", test_efl_ui_collection_grid); + ADD_TEST_EO(NULL, "Containers", "Items", test_efl_ui_item); //--// ADD_TEST_EO(NULL, "Events", "Event Refeed", test_events); diff --git a/src/bin/elementary/test_ui_items.c b/src/bin/elementary/test_ui_items.c new file mode 100644 index 00..4c2254ad25 --- /dev/null +++ b/src/bin/elementary/test_ui_items.c @@ -0,0 +1,87 @@ +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif + +#include + +static Efl_Ui_Widget* +_item_add(Eo *box, const Efl_Class *c, int i) +{ + Eo *check, *rect, *il = efl_add(c, box); + int r = 0, g = 0, b = 0; + char buf[PATH_MAX]; + + snprintf(buf, sizeof(buf), "%d - Test %d", i, i%13); + efl_text_set(il, buf); + + rect = efl_add(EFL_CANVAS_RECTANGLE_CLASS, evas_object_evas_get(il)); + switch (i % 5) + { + case 0: + r = 255; + break; + case 1: + g = 255; + break; + case 2: + b = 255; + break; + case 3: + r = g = b = 255; + break; + case 4: + r = g = b = 0; + break; + } + efl_gfx_color_set(rect, r, g, b, 255); + efl_content_set(il, rect); + + check = efl_add(EFL_UI_CHECK_CLASS, il); + efl_content_set(efl_part(il, "extra"), check); + + if (c == EFL_UI_GRID_DEFAULT_ITEM_CLASS) + efl_gfx_hint_size_min_set(il, EINA_SIZE2D(100, 180)); + else + efl_gfx_hint_size_min_set(il, EINA_SIZE2D(40, 40+(i%2)*40)); + + return il; +} + +void test_efl_ui_item(void *data EINA_UNUSED, + Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + Eo *win, *box, *o; + + win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(), + efl_ui_win_type_set(efl_added, EFL_UI_WIN_TYPE_BASIC), + efl_text_set(efl_added, "Item examples"), + efl_ui_win_autodel_set(efl_added, EINA_TRUE) +); + + box = efl_add(EFL_UI_BOX_CLASS, win, + efl_content_set(win, efl_added)); + + o = _item_add(box, EFL_UI_GRID_DEFAULT_ITEM_CLASS, 1); + efl_pack_end(box, o); + + o = _item_add(box, EFL_UI_GRID_DEFAULT_ITEM_CLASS, 2); + efl_ui_widget_disabled_set(o, EINA_TRUE); + efl_pack_end(box, o); + + o = _item_add(box, EFL_UI_LIST_DEFAULT_ITEM_CLASS, 3); + efl_pack_end(box, o); + + o = _item_add(box, EFL_UI_LIST_DEFAULT_ITEM_CLASS, 4); + efl_ui_widget_disabled_set(o, EINA_TRUE); + efl_pack_end(box, o); + + o = efl_add(EFL_UI_LIST_PLACEHOLDER_ITEM_CLASS, box); + efl_gfx_hint_size_min_set(o, EINA_SIZE2D(40, 40+40)); + efl_pack_end(box, o); + + o = efl_add(EFL_UI_LIST_PLACEHOLDER_ITEM_CLASS, box); + efl_gfx_hint_size_min_set(o, EINA_SIZE2D(40, 40)); + efl_ui_widget_disabled_set(o, EINA_TRUE); + efl_pack_end(box, o); +} diff --git a/src/lib/elementary/Efl_Ui.h b/src/lib/elementary/Efl_Ui.h index 8ccc063dea..4ed285771f 100644 ---
[EGIT] [core/efl] master 02/07: efl_ui/pan: remove pan content, changed event
zmike pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=23220764e27ed84698914cc7739b363bf2ed1c69 commit 23220764e27ed84698914cc7739b363bf2ed1c69 Author: Mike Blumenkrantz Date: Fri Aug 30 14:47:46 2019 -0400 efl_ui/pan: remove pan content,changed event Summary: this was being emitted as a catch-all for pan changes, where something else should have been monitored/used instead ref T7708 Reviewers: bu5hm4n Reviewed By: bu5hm4n Subscribers: bu5hm4n, cedric, #reviewers, #committers Tags: #efl_widgets Maniphest Tasks: T7708 Differential Revision: https://phab.enlightenment.org/D9787 --- src/lib/elementary/efl_ui_image_zoomable.c| 12 ++--- src/lib/elementary/efl_ui_list_view.c | 2 +- src/lib/elementary/efl_ui_pan.c | 13 + src/lib/elementary/efl_ui_pan.eo | 1 - src/lib/elementary/efl_ui_scroll_manager.c| 65 --- src/lib/elementary/efl_ui_widget_scroll_manager.h | 1 + 6 files changed, 56 insertions(+), 38 deletions(-) diff --git a/src/lib/elementary/efl_ui_image_zoomable.c b/src/lib/elementary/efl_ui_image_zoomable.c index ee9ad073da..9ab2238b5d 100644 --- a/src/lib/elementary/efl_ui_image_zoomable.c +++ b/src/lib/elementary/efl_ui_image_zoomable.c @@ -143,7 +143,7 @@ _calc_job_cb(void *data) sd->minw = minw; sd->minh = minh; -efl_event_callback_call(sd->pan_obj, EFL_UI_PAN_EVENT_PAN_CONTENT_CHANGED, NULL); +efl_event_callback_call(sd->pan_obj, EFL_UI_PAN_EVENT_PAN_POSITION_CHANGED, NULL); _sizing_eval(obj); } sd->calc_job = NULL; @@ -1823,17 +1823,17 @@ _efl_ui_image_zoomable_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Image_Zoomable priv->pan_obj = efl_add(MY_PAN_CLASS, obj); + pan_data = efl_data_scope_get(priv->pan_obj, MY_PAN_CLASS); + efl_data_ref(obj, MY_CLASS); + pan_data->wobj = obj; + pan_data->wsd = priv; + efl_ui_scroll_manager_pan_set(priv->smanager, priv->pan_obj); if (elm_widget_is_legacy(obj)) edje_object_part_swallow(edje, "elm.swallow.content", priv->pan_obj); else edje_object_part_swallow(edje, "efl.content", priv->pan_obj); - pan_data = efl_data_scope_get(priv->pan_obj, MY_PAN_CLASS); - efl_data_ref(obj, MY_CLASS); - pan_data->wobj = obj; - pan_data->wsd = priv; - efl_event_callback_add(obj, EFL_UI_EVENT_SCROLL, _scroll_cb, obj); priv->g_layer_start = 1.0; diff --git a/src/lib/elementary/efl_ui_list_view.c b/src/lib/elementary/efl_ui_list_view.c index 25ef87fc94..d992a3fafd 100644 --- a/src/lib/elementary/efl_ui_list_view.c +++ b/src/lib/elementary/efl_ui_list_view.c @@ -863,7 +863,7 @@ _efl_ui_list_view_efl_ui_list_view_model_min_size_set(Eo *obj, Efl_Ui_List_View_ pd->min.h = min.h; efl_gfx_hint_size_min_set(wd->resize_obj, EINA_SIZE2D(pd->min.w, pd->min.h)); - efl_event_callback_call(pd->pan_obj, EFL_UI_PAN_EVENT_PAN_CONTENT_CHANGED, NULL); + efl_event_callback_call(pd->pan_obj, EFL_CONTENT_EVENT_CONTENT_CHANGED, NULL); } EOLIAN static void diff --git a/src/lib/elementary/efl_ui_pan.c b/src/lib/elementary/efl_ui_pan.c index 753793606d..9fb68eed2c 100644 --- a/src/lib/elementary/efl_ui_pan.c +++ b/src/lib/elementary/efl_ui_pan.c @@ -122,12 +122,7 @@ _efl_ui_pan_content_del_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Evas_Object *pobj = data; - EFL_UI_PAN_DATA_GET_OR_RETURN(pobj, psd); - - psd->content = NULL; - psd->content_w = psd->content_h = psd->px = psd->py = 0; - efl_event_callback_call(pobj, EFL_UI_PAN_EVENT_PAN_CONTENT_CHANGED, NULL); + efl_content_unset(data); } static void @@ -146,7 +141,6 @@ _efl_ui_pan_content_resize_cb(void *data, psd->content_h = sz.h; evas_object_smart_changed(pobj); } - efl_event_callback_call(pobj, EFL_UI_PAN_EVENT_PAN_CONTENT_CHANGED, NULL); efl_event_callback_call(pobj, EFL_UI_PAN_EVENT_PAN_POSITION_CHANGED, NULL); } @@ -160,7 +154,7 @@ _efl_ui_pan_efl_content_content_set(Evas_Object *obj, Efl_Ui_Pan_Data *psd, Evas { efl_content_unset(obj); } - if (!content) goto end; + if (!content) return EINA_TRUE; psd->content = content; efl_canvas_group_member_add(obj, content); @@ -179,9 +173,7 @@ _efl_ui_pan_efl_content_content_set(Evas_Object *obj, Efl_Ui_Pan_Data *psd, Evas evas_object_smart_changed(obj); -end: efl_event_callback_call(obj, EFL_CONTENT_EVENT_CONTENT_CHANGED, content); - efl_event_callback_call(obj, EFL_UI_PAN_EVENT_PAN_CONTENT_CHANGED, NULL); return EINA_TRUE; } @@ -205,7 +197,6 @@ _efl_ui_pan_efl_content_content_unset(Eo *obj EINA_UNUSED, Efl_Ui_Pan_Data *pd) pd->content = NULL; pd->content_w = pd->content_h = pd->px = pd->py = 0; efl_event_callback_call(obj,
[EGIT] [core/efl] master 01/01: elementary_test: Add the animation view test
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7a7d6a858d0dccba3d7d73779e39a999eaf543e9 commit 7a7d6a858d0dccba3d7d73779e39a999eaf543e9 Author: JunsuChoi Date: Wed Aug 21 17:53:14 2019 +0900 elementary_test: Add the animation view test Summary: Add an animation view item to test vector animation on elementary_test. If Evas Vg Json(Lottie) Loader is not supported, use the vector class to output the svg file. Depends {D9451} Test Plan: elementart_test Animation View Reviewers: Hermet, smohanty, kimcinoo, zmike Subscribers: zmike, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9472 --- data/elementary/images/emoji_wink.json | 1 + data/elementary/images/ubuntu.svg | 26 ++ src/bin/elementary/meson.build | 1 + src/bin/elementary/test.c | 6 + src/bin/elementary/test_efl_ui_animation_view.c | 328 5 files changed, 362 insertions(+) diff --git a/data/elementary/images/emoji_wink.json b/data/elementary/images/emoji_wink.json new file mode 100644 index 00..29b39a5369 --- /dev/null +++ b/data/elementary/images/emoji_wink.json @@ -0,0 +1 @@ +{"v":"4.5.7","fr":30,"ip":0,"op":60,"w":100,"h":100,"ddd":0,"assets":[{"id":"comp_38","layers":[{"ddd":0,"ind":0,"ty":4,"nm":"round_normal","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[50,50,0]},"a":{"a":0,"k":[-252,-412,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-17.673,0],[0,-17.673],[17.673,0],[0,17.673]],"o":[[17.673,0],[0,17.673],[-17.673,0],[0,-17.673]],"v":[[-252,-444],[-220,-412],[-252,-380],[-284, [...] \ No newline at end of file diff --git a/data/elementary/images/ubuntu.svg b/data/elementary/images/ubuntu.svg new file mode 100644 index 00..4d7b3ee586 --- /dev/null +++ b/data/elementary/images/ubuntu.svg @@ -0,0 +1,26 @@ +http://www.w3.org/2000/svg; xmlns:xlink="http://www.w3.org/1999/xlink; viewBox="-70 -70 140 140"> + + + + + + + + + + + + + + + + http://www.ubuntu.com/;> + + + + + + + + + diff --git a/src/bin/elementary/meson.build b/src/bin/elementary/meson.build index b490b57881..388623d5c0 100644 --- a/src/bin/elementary/meson.build +++ b/src/bin/elementary/meson.build @@ -159,6 +159,7 @@ elementary_test_src = [ 'test_ui_collection.c', 'test_ui_items.c', 'test_ui_frame.c', + 'test_efl_ui_animation_view.c', 'test.h' ] diff --git a/src/bin/elementary/test.c b/src/bin/elementary/test.c index 186af020b8..27abd2656d 100644 --- a/src/bin/elementary/test.c +++ b/src/bin/elementary/test.c @@ -404,6 +404,8 @@ void test_efl_ui_collection_grid(void *data, Evas_Object *obj, void *event_info) void test_efl_ui_item(void *data, Evas_Object *obj, void *event_info); void test_ui_frame(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED); +void test_efl_ui_animation_view(void *data, Evas_Object *obj, void *event_info); + static void _list_udpate(void); static Evas_Object *win, *tbx, *entry; // TODO: refactoring @@ -1294,6 +1296,10 @@ add_tests: //--// ADD_TEST_EO(NULL, "Widgets Part", "Part Background", test_part_background); ADD_TEST_EO(NULL, "Widgets Part", "Part Shadow", test_part_shadow); + + //--// + ADD_TEST_EO(NULL, "Vector Animation", "Animation View", test_efl_ui_animation_view); + #undef ADD_TEST if (autorun) diff --git a/src/bin/elementary/test_efl_ui_animation_view.c b/src/bin/elementary/test_efl_ui_animation_view.c new file mode 100644 index 00..8d06d6ac11 --- /dev/null +++ b/src/bin/elementary/test_efl_ui_animation_view.c @@ -0,0 +1,328 @@ +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif +#include +#include + +#ifndef EFL_BETA_API_SUPPORT +#define EFL_BETA_API_SUPPORT +#endif + +#ifndef EFL_EO_API_SUPPORT +#define EFL_EO_API_SUPPORT +#endif + +#ifdef BUILD_VG_LOADER_JSON + +static void +btn_clicked_cb(void *data , const Efl_Event *ev ) +{ + Evas_Object *anim_view = data; + const char *text = efl_text_get(ev->object); + + if (!text) return; + + if (!strcmp("Play", text)) + efl_ui_animation_view_play(anim_view); + else if (!strcmp("Pause", text)) + efl_ui_animation_view_pause(anim_view); + else if (!strcmp("Resume", text)) + efl_ui_animation_view_resume(anim_view); + else if (!strcmp("Play Back", text)) + efl_ui_animation_view_play_back(anim_view); + else if (!strcmp("Stop", text)) + efl_ui_animation_view_stop(anim_view); +} + +static void +check_changed_cb(void *data, const Efl_Event *event) +{ + Evas_Object *anim_view = data; + efl_ui_animation_view_auto_repeat_set(anim_view,
[EGIT] [core/efl] master 07/14: efl filter model - fix return value handling to avoid uninit mem access
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c2a33f2225a8f0f32acaa23e68446658ddce000a commit c2a33f2225a8f0f32acaa23e68446658ddce000a Author: Carsten Haitzler (Rasterman) Date: Sat Aug 10 23:04:29 2019 +0100 efl filter model - fix return value handling to avoid uninit mem access coverity reported - it's right. this fixes CID 1401461 and CID 1401463 --- src/lib/ecore/efl_filter_model.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/ecore/efl_filter_model.c b/src/lib/ecore/efl_filter_model.c index 8a00d82141..7626f5dbbb 100644 --- a/src/lib/ecore/efl_filter_model.c +++ b/src/lib/ecore/efl_filter_model.c @@ -362,7 +362,7 @@ _efl_filter_model_efl_model_children_slice_get(Eo *obj, Efl_Filter_Model_Data *p if (count == 0) return efl_loop_future_rejected(obj, EFL_MODEL_ERROR_INCORRECT_VALUE); - r = malloc((count + 1) * sizeof (Eina_Future *)); + r = calloc(1, (count + 1) * sizeof (Eina_Future *)); if (!r) return efl_loop_future_rejected(obj, ENOMEM); mapping = calloc(count, sizeof (Efl_Filter_Model_Mapping *)); @@ -385,7 +385,7 @@ _efl_filter_model_efl_model_children_slice_get(Eo *obj, Efl_Filter_Model_Data *p r[i] = efl_future_then(obj, r[i], .success_type = EINA_VALUE_TYPE_ARRAY, .success = _filter_remove_array, .data = mapping[i]); -if (!r) goto on_error; +if (!r[i]) goto on_error; } r[i] = EINA_FUTURE_SENTINEL; --
[EGIT] [core/efl] master 01/02: eolian_aux: this must be recursive
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f951ba50761eecaffe06b0927e759167f28b023f commit f951ba50761eecaffe06b0927e759167f28b023f Author: Marcel Hollerbach Date: Wed Aug 28 10:20:48 2019 +0200 eolian_aux: this must be recursive Summary: in order to get all callables, this must be recursive, otherwise deeper callables are forgotten. Reviewers: q66 Reviewed By: q66 Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9421 --- src/lib/eolian/eolian_aux.c | 10 -- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/lib/eolian/eolian_aux.c b/src/lib/eolian/eolian_aux.c index a66c02c58e..66cde8ac73 100644 --- a/src/lib/eolian/eolian_aux.c +++ b/src/lib/eolian/eolian_aux.c @@ -89,11 +89,17 @@ _callables_find(const Eolian_Class *cl, Eina_List **funcs, const Eolian_Class *pcl = eolian_class_parent_get(cl); if (pcl) - total += _callables_find_body(pcl, funcs, events, written); + { +total += _callables_find_body(pcl, funcs, events, written); +total += _callables_find(pcl, funcs, events, written); + } Eina_Iterator *itr = eolian_class_extensions_get(cl); EINA_ITERATOR_FOREACH(itr, pcl) - total += _callables_find_body(pcl, funcs, events, written); + { +total += _callables_find_body(pcl, funcs, events, written); +total += _callables_find(pcl, funcs, events, written); + } return total; } --
[EGIT] [apps/evisum] master 01/01: Silence some compiler warnings
netstar pushed a commit to branch master. http://git.enlightenment.org/apps/evisum.git/commit/?id=2f46f79e770ff8f62bd0a71e0175566262f3f3f7 commit 2f46f79e770ff8f62bd0a71e0175566262f3f3f7 Author: Alastair Poole Date: Thu Sep 5 23:01:00 2019 +0100 Silence some compiler warnings --- src/main.c| 2 -- src/process.h | 2 +- src/system.c | 1 - src/ui.c | 6 ++ src/ui.h | 1 + 5 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/main.c b/src/main.c index 954d073..7d83101 100644 --- a/src/main.c +++ b/src/main.c @@ -5,8 +5,6 @@ #define VERSION "0.2.6" -#include "process.h" -#include "system.h" #include "ui.h" static void diff --git a/src/process.h b/src/process.h index 0ec7539..7a1632c 100644 --- a/src/process.h +++ b/src/process.h @@ -24,7 +24,7 @@ # define PID_MAX 9 #endif -#define CMD_NAME_MAX 256 +#define CMD_NAME_MAX 1024 typedef struct _Proc_Stats { diff --git a/src/system.c b/src/system.c index f2d2869..588496f 100644 --- a/src/system.c +++ b/src/system.c @@ -109,7 +109,6 @@ file_contents(const char *path) char *buf; char byte[1]; size_t count, bytes = 0; - struct stat st; FILE *f; f = fopen(path, "r"); diff --git a/src/ui.c b/src/ui.c index 057e9d6..83bc79f 100644 --- a/src/ui.c +++ b/src/ui.c @@ -122,7 +122,6 @@ _tab_misc_update(Ui *ui, results_t *results) { Evas_Object *box, *frame, *progress; char *tmp; - int i; if (!ui->misc_visible) return; @@ -310,7 +309,7 @@ _tab_disk_update(Ui *ui) static void _tab_memory_update(Ui *ui, results_t *results) { - Evas_Object *box, *frame, *progress; + Evas_Object *progress; double ratio, value; if (!ui->mem_visible) @@ -1003,7 +1002,6 @@ _process_panel_pids_update(Ui *ui) Elm_Widget_Item *item; Eina_List *list; pid_t *pid; - char buf[64]; if (!ui->panel_visible) return; @@ -1492,7 +1490,7 @@ _ui_tab_system_add(Ui *ui) static void _ui_process_panel_add(Ui *ui) { - Evas_Object *parent, *panel, *box, *hbox, *frame, *scroller, *table; + Evas_Object *parent, *panel, *hbox, *frame, *scroller, *table; Evas_Object *label, *list, *entry, *button, *border; parent = ui->content; diff --git a/src/ui.h b/src/ui.h index 8b60822..d58afee 100644 --- a/src/ui.h +++ b/src/ui.h @@ -2,6 +2,7 @@ #define __UI_H__ #include +#include "process.h" #define EVISUM_SIZE_WIDTH 500 #define EVISUM_SIZE_HEIGHT 560 --
[EGIT] [core/efl] master 01/01: csharp: re-enable binbuf tests with -Dmono-beta=false
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e6a52ef371430c69da7ce3e7b22f1455a64f1637 commit e6a52ef371430c69da7ce3e7b22f1455a64f1637 Author: Vitor Sousa Date: Mon Aug 5 18:47:14 2019 -0300 csharp: re-enable binbuf tests with -Dmono-beta=false Summary: Since the introduction of the `binbuf` keyword in eolian, `Eina_Binbuf` is no longer a beta only type. Hence, we enable EFL# binbuf unit tests in non-beta compilation too. Reviewers: lauromoura, felipealmeida Reviewed By: lauromoura Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9467 --- src/tests/efl_mono/EinaTestData.cs | 2 -- src/tests/efl_mono/Events.cs| 2 -- src/tests/efl_mono/StructHelpers.cs | 2 -- src/tests/efl_mono/Structs.cs | 4 --- src/tests/efl_mono/dummy_test_object.eo | 48 - 5 files changed, 24 insertions(+), 34 deletions(-) diff --git a/src/tests/efl_mono/EinaTestData.cs b/src/tests/efl_mono/EinaTestData.cs index 81b318ffae..b64040d5eb 100644 --- a/src/tests/efl_mono/EinaTestData.cs +++ b/src/tests/efl_mono/EinaTestData.cs @@ -152,7 +152,6 @@ class NativeInheritImpl : Dummy.TestObject // // // -#if EFL_BETA override public bool EinaBinbufIn(Eina.Binbuf binbuf) { binbuf_in_flag = true; @@ -281,7 +280,6 @@ class NativeInheritImpl : Dummy.TestObject binbuf_return_own_binbuf = null; return r; } -#endif } } // EinaTestData diff --git a/src/tests/efl_mono/Events.cs b/src/tests/efl_mono/Events.cs index 9e37649df1..b664e2bbbd 100644 --- a/src/tests/efl_mono/Events.cs +++ b/src/tests/efl_mono/Events.cs @@ -176,7 +176,6 @@ class TestEoEvents Test.AssertEquals(sent_struct.Fstring, received_struct.Fstring); } -#if EFL_BETA public static void event_with_struct_complex_payload() { var obj = new Dummy.TestObject(); @@ -192,7 +191,6 @@ class TestEoEvents Test.AssertEquals(sent_struct.Fobj, received_struct.Fobj); } -#endif public static void event_with_array_payload() { diff --git a/src/tests/efl_mono/StructHelpers.cs b/src/tests/efl_mono/StructHelpers.cs index 7af3529055..aeafe9e6d7 100644 --- a/src/tests/efl_mono/StructHelpers.cs +++ b/src/tests/efl_mono/StructHelpers.cs @@ -117,7 +117,6 @@ internal class StructHelpers Test.Assert(simple.Fstringshare == null); } -#if EFL_BETA internal static Dummy.StructComplex structComplexWithValues() { var complex = new Dummy.StructComplex(); @@ -210,7 +209,6 @@ internal class StructHelpers Test.Assert(complex.Fobj == null); } -#endif } diff --git a/src/tests/efl_mono/Structs.cs b/src/tests/efl_mono/Structs.cs index 96728adf4b..970fc97696 100644 --- a/src/tests/efl_mono/Structs.cs +++ b/src/tests/efl_mono/Structs.cs @@ -20,13 +20,11 @@ internal class TestStructs checkZeroedStructSimple(simple); } -#if EFL_BETA private static void complex_default_instantiation() { var complex = new Dummy.StructComplex(); checkZeroedStructComplex(complex); } -#endif public static void parameter_initialization() { @@ -303,7 +301,6 @@ internal class TestStructs */ // Complex Structs -#if EFL_BETA public static void complex_in() { var complex = structComplexWithValues(); @@ -351,7 +348,6 @@ internal class TestStructs // public static void complex_ptr_return_own() // { // } -#endif } } diff --git a/src/tests/efl_mono/dummy_test_object.eo b/src/tests/efl_mono/dummy_test_object.eo index 4f26beba0a..47ec4c6b27 100644 --- a/src/tests/efl_mono/dummy_test_object.eo +++ b/src/tests/efl_mono/dummy_test_object.eo @@ -73,7 +73,7 @@ struct @free(free) Dummy.StructSimple fmyint: Dummy.MyInt; } -struct @beta @free(free) Dummy.StructComplex { +struct @free(free) Dummy.StructComplex { farray: array; flist: list; fhash: hash; @@ -297,28 +297,28 @@ class Dummy.Test_Object extends Efl.Object implements Dummy.Test_Iface { } */ - eina_binbuf_in @beta { + eina_binbuf_in { params { @in binbuf: binbuf; } return: bool; } - call_eina_binbuf_in @beta { + call_eina_binbuf_in { params { @in binbuf: binbuf; } return: bool; } - eina_binbuf_in_own @beta { + eina_binbuf_in_own { params { @in binbuf: binbuf @owned; } return: bool; } - call_eina_binbuf_in_own @beta { + call_eina_binbuf_in_own { params { @in str: binbuf @owned; } @@ -329,14 +329,14 @@ class Dummy.Test_Object extends Efl.Object implements Dummy.Test_Iface { return: bool; } -
[EGIT] [core/efl] master 01/01: elm toolbar - fix toolbar item separators and refactor aling/fill of item
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=db18d67af9470a34b93cd301afeebcf9db1696f7 commit db18d67af9470a34b93cd301afeebcf9db1696f7 Author: Carsten Haitzler (Rasterman) Date: Fri Aug 2 17:17:48 2019 +0100 elm toolbar - fix toolbar item separators and refactor aling/fill of item only set this is one place and thus get it consistent/right for separators vs other items. @fix --- src/lib/elementary/elm_toolbar.c | 94 +++- 1 file changed, 44 insertions(+), 50 deletions(-) diff --git a/src/lib/elementary/elm_toolbar.c b/src/lib/elementary/elm_toolbar.c index 02220c9933..5e797e2620 100644 --- a/src/lib/elementary/elm_toolbar.c +++ b/src/lib/elementary/elm_toolbar.c @@ -1255,6 +1255,41 @@ _item_shrink_signal_emit(Evas_Object *view, Elm_Toolbar_Shrink_Mode shrink_mode) } } +static void +_item_fill_align_set(Elm_Toolbar_Data *sd, Elm_Toolbar_Item_Data *it) +{ + if (sd->shrink_mode != ELM_TOOLBAR_SHRINK_EXPAND) + { +if (it->separator) + { + if (!efl_ui_layout_orientation_is_horizontal(sd->dir, EINA_TRUE)) + evas_object_size_hint_weight_set(VIEW(it), -1.0, 0.0); + else + evas_object_size_hint_weight_set(VIEW(it), 0.0, -1.0); + } +else + { + if (!efl_ui_layout_orientation_is_horizontal(sd->dir, EINA_TRUE)) + evas_object_size_hint_weight_set(VIEW(it), EVAS_HINT_EXPAND, 0.0); + else + evas_object_size_hint_weight_set(VIEW(it), 0.0, EVAS_HINT_EXPAND); + } + } + else + { +if (it->separator) + { + if (!efl_ui_layout_orientation_is_horizontal(sd->dir, EINA_TRUE)) + evas_object_size_hint_weight_set(VIEW(it), -1.0, 0.0); + else + evas_object_size_hint_weight_set(VIEW(it), 0.0, -1.0); + } +else + evas_object_size_hint_weight_set(VIEW(it), EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + } + evas_object_size_hint_align_set(VIEW(it), EVAS_HINT_FILL, EVAS_HINT_FILL); +} + static void _item_theme_hook(Evas_Object *obj, Elm_Toolbar_Item_Data *it, @@ -1324,33 +1359,12 @@ _item_theme_hook(Evas_Object *obj, else elm_layout_signal_emit(view, "elm,orient,horizontal", "elm"); -edje_object_message_signal_process(elm_layout_edje_get(view)); -if (!it->separator && !it->object) - elm_coords_finger_size_adjust(1, , 1, ); -if (sd->shrink_mode != ELM_TOOLBAR_SHRINK_EXPAND) - { - if (!efl_ui_layout_orientation_is_horizontal(sd->dir, EINA_TRUE)) - { - evas_object_size_hint_weight_set(view, EVAS_HINT_EXPAND, -1.0); - evas_object_size_hint_align_set -(view, EVAS_HINT_FILL, EVAS_HINT_FILL); - } - else - { - evas_object_size_hint_weight_set(VIEW(it), -1.0, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set -(view, EVAS_HINT_FILL, EVAS_HINT_FILL); - } - } -else - { - evas_object_size_hint_weight_set - (VIEW(it), EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set - (VIEW(it), EVAS_HINT_FILL, EVAS_HINT_FILL); - } -_resizing_eval_item(it); -evas_object_smart_need_recalculate_set(obj, EINA_TRUE); + edje_object_message_signal_process(elm_layout_edje_get(view)); + if (!it->separator && !it->object) + elm_coords_finger_size_adjust(1, , 1, ); + _item_fill_align_set(sd, it); + _resizing_eval_item(it); + evas_object_smart_need_recalculate_set(obj, EINA_TRUE); } static void @@ -2485,28 +2499,8 @@ _item_new(Evas_Object *obj, edje_object_message_signal_process(elm_layout_edje_get(VIEW(it))); -if (sd->shrink_mode != ELM_TOOLBAR_SHRINK_EXPAND) - { - if (!efl_ui_layout_orientation_is_horizontal(sd->dir, EINA_TRUE)) - { - evas_object_size_hint_weight_set(VIEW(it), EVAS_HINT_EXPAND, -1.0); - evas_object_size_hint_align_set -(VIEW(it), EVAS_HINT_FILL, EVAS_HINT_FILL); - } - else - { - evas_object_size_hint_weight_set(VIEW(it), -1.0, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set -(VIEW(it), EVAS_HINT_FILL, EVAS_HINT_FILL); - } - } -else - { - evas_object_size_hint_weight_set - (VIEW(it), EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set - (VIEW(it), EVAS_HINT_FILL, EVAS_HINT_FILL); - } + _item_fill_align_set(sd, it); + efl_ui_focus_composition_dirty(obj); evas_object_event_callback_add @@ -3373,7 +3367,7 @@ _elm_toolbar_item_separator_set(Eo *eo_item EINA_UNUSED, Elm_Toolbar_Item_Data * item->separator = separator; scale =
[EGIT] [core/efl] master 01/01: elementary: use data:null to remove unecessary structure declaration.
bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f66844ebbf3b58bc5504caacede3fc9ef96418d0 commit f66844ebbf3b58bc5504caacede3fc9ef96418d0 Author: Cedric BAIL Date: Wed Jul 24 15:48:30 2019 -0700 elementary: use data:null to remove unecessary structure declaration. Reviewed-by: Marcel Hollerbach Differential Revision: https://phab.enlightenment.org/D9389 --- src/lib/elementary/efl_ui_grid.c | 6 +- src/lib/elementary/efl_ui_grid.eo | 2 +- src/lib/elementary/efl_ui_list.c | 8 ++-- src/lib/elementary/efl_ui_list.eo | 1 + 4 files changed, 5 insertions(+), 12 deletions(-) diff --git a/src/lib/elementary/efl_ui_grid.c b/src/lib/elementary/efl_ui_grid.c index 709765373c..226b3780cb 100644 --- a/src/lib/elementary/efl_ui_grid.c +++ b/src/lib/elementary/efl_ui_grid.c @@ -15,12 +15,8 @@ #define MY_CLASS_NAME "Efl.Ui.Grid" -typedef struct { - -} Efl_Ui_Grid_Data; - EOLIAN static Eo * -_efl_ui_grid_efl_object_constructor(Eo *obj, Efl_Ui_Grid_Data *pd EINA_UNUSED) +_efl_ui_grid_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED) { obj = efl_constructor(efl_super(obj, MY_CLASS)); diff --git a/src/lib/elementary/efl_ui_grid.eo b/src/lib/elementary/efl_ui_grid.eo index 48221f8f72..832fcf1c31 100644 --- a/src/lib/elementary/efl_ui_grid.eo +++ b/src/lib/elementary/efl_ui_grid.eo @@ -1,7 +1,7 @@ class @beta Efl.Ui.Grid extends Efl.Ui.Collection { [[Simple grid widget with Pack interface.]] - + data: null; implements { Efl.Object.constructor; } diff --git a/src/lib/elementary/efl_ui_list.c b/src/lib/elementary/efl_ui_list.c index 9a4cc7fb16..0281fd8b30 100644 --- a/src/lib/elementary/efl_ui_list.c +++ b/src/lib/elementary/efl_ui_list.c @@ -15,12 +15,8 @@ #define MY_CLASS_NAME "Efl.Ui.List" -typedef struct { - -} Efl_Ui_List_Data; - -EOLIAN static Eo * -_efl_ui_list_efl_object_constructor(Eo *obj, Efl_Ui_List_Data *pd EINA_UNUSED) +static Eo * +_efl_ui_list_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED) { obj = efl_constructor(efl_super(obj, MY_CLASS)); diff --git a/src/lib/elementary/efl_ui_list.eo b/src/lib/elementary/efl_ui_list.eo index 94e90f760d..3cb2fea202 100644 --- a/src/lib/elementary/efl_ui_list.eo +++ b/src/lib/elementary/efl_ui_list.eo @@ -1,6 +1,7 @@ class @beta Efl.Ui.List extends Efl.Ui.Collection { [[Simple list widget with Pack interface.]] + data: null; implements { Efl.Object.constructor; } --
[EGIT] [core/efl] master 05/08: efl_ui_pan: emit position changed when content is resized
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=2057957d219996e5363d34475ceb39c2145d4005 commit 2057957d219996e5363d34475ceb39c2145d4005 Author: Marcel Hollerbach Date: Thu Jul 25 20:54:49 2019 +0200 efl_ui_pan: emit position changed when content is resized even if the position is not really changed here, the min / max relation has changed. If we do not emit this event here, every user (that calculates a relative position) would have to monitor the pan position and the size of the content. This simplifies the given usecase, and fixes the scroller position when new items are added to the collection. Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D9411 --- src/lib/elementary/efl_ui_pan.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/elementary/efl_ui_pan.c b/src/lib/elementary/efl_ui_pan.c index 534b433661..3412cba005 100644 --- a/src/lib/elementary/efl_ui_pan.c +++ b/src/lib/elementary/efl_ui_pan.c @@ -147,6 +147,7 @@ _efl_ui_pan_content_resize_cb(void *data, evas_object_smart_changed(pobj); } efl_event_callback_call(pobj, EFL_UI_PAN_EVENT_PAN_CONTENT_CHANGED, NULL); + efl_event_callback_call(pobj, EFL_UI_PAN_EVENT_PAN_POSITION_CHANGED, NULL); } EOLIAN static Eina_Bool --
[EGIT] [apps/evisum] master 01/01: Release: Prepare
netstar pushed a commit to branch master. http://git.enlightenment.org/apps/evisum.git/commit/?id=967b5ce33e3ca0b1a404658751fa5268e2a80aaa commit 967b5ce33e3ca0b1a404658751fa5268e2a80aaa Author: Alastair Poole Date: Sun Sep 1 17:50:38 2019 +0100 Release: Prepare --- LICENSE| 2 +- VERSION| 2 +- src/main.c | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/LICENSE b/LICENSE index 48d7d73..c6ea722 100644 --- a/LICENSE +++ b/LICENSE @@ -1,5 +1,5 @@ - Copyright (c) 2018, Alastair Poole + Copyright (c) 2018, 2019 Alastair Poole All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/VERSION b/VERSION index abd4105..53a75d6 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.2.4 +0.2.6 diff --git a/src/main.c b/src/main.c index 8f4cfdd..24ea496 100644 --- a/src/main.c +++ b/src/main.c @@ -1,5 +1,6 @@ -/* Copyright 2018. Alastair Poole - See LICENSE file for details. +/* + * Copyright 2018-2019. Alastair Poole + * See LICENSE file for details. */ #define VERSION "0.2.6" --
[EGIT] [core/enlightenment] master 01/02: todo - note down gadget visuals todo
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=850fe29f8d63eb19d799851b16ce0820c9cad1f2 commit 850fe29f8d63eb19d799851b16ce0820c9cad1f2 Author: Carsten Haitzler (Rasterman) Date: Tue Aug 20 11:01:34 2019 +0100 todo - note down gadget visuals todo --- TODO | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/TODO b/TODO index 51d251dc2..eae898fb6 100644 --- a/TODO +++ b/TODO @@ -133,7 +133,10 @@ TODO: * initial gadget bar setup dnd needs to be normal dnd * setup needs an obvious "add" button as dnd not obvious * wizard setup could be nicer? maybe just a default bar with no wizard? - * changing settigns should not re-run the wizard! + * changing settings should not re-run the wizard! + * need to visually join gadget and gadget popup so they can kind of +look like a "tab" thats joined when we want to do this kind of +appearance * efm: use elm for window * efm: use elm scroller for fm view * efm: use elm for file popup --
[EGIT] [core/efl] master 06/09: tests/elm: add helper callback for automatically quitting main loop when triggered
bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e9e8078cec9100993f8124f9ad7bf1158c8e0cea commit e9e8078cec9100993f8124f9ad7bf1158c8e0cea Author: Mike Blumenkrantz Date: Mon Aug 5 13:57:48 2019 -0400 tests/elm: add helper callback for automatically quitting main loop when triggered Reviewed-by: Marcel Hollerbach Differential Revision: https://phab.enlightenment.org/D9506 --- src/tests/elementary/suite_helpers.c | 6 ++ src/tests/elementary/suite_helpers.h | 1 + 2 files changed, 7 insertions(+) diff --git a/src/tests/elementary/suite_helpers.c b/src/tests/elementary/suite_helpers.c index ff5530a93f..44c34e58ae 100644 --- a/src/tests/elementary/suite_helpers.c +++ b/src/tests/elementary/suite_helpers.c @@ -466,6 +466,12 @@ event_callback_that_is_called_exactly_one_time_and_sets_a_single_int_data_pointe *called = 1; } +void +event_callback_that_quits_the_main_loop_when_called() +{ + ecore_main_loop_quit(); +} + void click_object_at(Eo *obj, int x, int y) { diff --git a/src/tests/elementary/suite_helpers.h b/src/tests/elementary/suite_helpers.h index 0dc3944173..a063869f2b 100644 --- a/src/tests/elementary/suite_helpers.h +++ b/src/tests/elementary/suite_helpers.h @@ -15,4 +15,5 @@ void click_object(Eo *obj); void click_part(Eo *obj, const char *part); void click_object_at(Eo *obj, int x, int y); void event_callback_that_is_called_exactly_one_time_and_sets_a_single_int_data_pointer_when_called(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED); +void event_callback_that_quits_the_main_loop_when_called(); #endif --
[EGIT] [core/efl] master 08/14: efl thread - fic pipe close to not close invalid pipe fds
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=60f549c5fb5cc9a43901d505ddd1bb5ac78f323f commit 60f549c5fb5cc9a43901d505ddd1bb5ac78f323f Author: Carsten Haitzler (Rasterman) Date: Sat Aug 10 23:09:06 2019 +0100 efl thread - fic pipe close to not close invalid pipe fds if we only have stdout and no stdin we'd accidentally close junk int's on the stack. fix this fix CID 1396963 --- src/lib/ecore/efl_thread.c | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lib/ecore/efl_thread.c b/src/lib/ecore/efl_thread.c index 9aa61aade2..9ae137ae31 100644 --- a/src/lib/ecore/efl_thread.c +++ b/src/lib/ecore/efl_thread.c @@ -660,8 +660,11 @@ _efl_thread_efl_task_run(Eo *obj, Efl_Thread_Data *pd) if (pipe(pipe_from_thread) != 0) { ERR("Can't create from_thread pipe"); - close(pipe_to_thread[0]); - close(pipe_to_thread[1]); + if (td->flags & EFL_TASK_FLAGS_USE_STDIN) + { + close(pipe_to_thread[0]); + close(pipe_to_thread[1]); + } free(thdat); return NULL; } --
[EGIT] [core/efl] master 06/10: efl_ui_position_manager: add event for updating the range
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4f45749b14abeae6c0338f07b42970e814f85b8e commit 4f45749b14abeae6c0338f07b42970e814f85b8e Author: Marcel Hollerbach Date: Wed Jul 31 19:52:08 2019 +0200 efl_ui_position_manager: add event for updating the range the new event can be used to message back the currently visible range from the position to the collection / collection_view. Reviewed-by: Mike Blumenkrantz Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D9462 --- src/lib/elementary/efl_ui_position_manager_entity.eo | 7 +++ src/lib/elementary/efl_ui_position_manager_grid.c| 9 +++-- src/lib/elementary/efl_ui_position_manager_list.c| 10 -- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/lib/elementary/efl_ui_position_manager_entity.eo b/src/lib/elementary/efl_ui_position_manager_entity.eo index 4a65572181..64c68344d8 100644 --- a/src/lib/elementary/efl_ui_position_manager_entity.eo +++ b/src/lib/elementary/efl_ui_position_manager_entity.eo @@ -17,6 +17,12 @@ function Efl.Ui.Position_Manager.Batch_Access_Size { return: int; [[The number of filled elements in the slice]] }; +struct Efl.Ui.Position_Manager.Range_Update { + [[A struct containing the the updated range of visible items in this position manger]] + start_id : uint; [[The first item that is visible]] + end_id : uint; [[The last item that is visible]] +} + interface @beta Efl.Ui.Position_Manager.Entity extends Efl.Ui.Layout_Orientable { [[ @@ -112,5 +118,6 @@ interface @beta Efl.Ui.Position_Manager.Entity extends Efl.Ui.Layout_Orientable events { content_size,changed : Eina.Size2D; [[Emitted when the aggregate size of all items has changed. This can be used to resize an enclosing Pan object.]] content_min_size,changed : Eina.Size2D; [[Emitted when the minimum size of all items has changed. The minimum size is the size, that this position_manager needs at *least* to display a single item.]] + visible_range,changed : Efl.Ui.Position_Manager.Range_Update; } } diff --git a/src/lib/elementary/efl_ui_position_manager_grid.c b/src/lib/elementary/efl_ui_position_manager_grid.c index 2de7ddf896..bf8f793d12 100644 --- a/src/lib/elementary/efl_ui_position_manager_grid.c +++ b/src/lib/elementary/efl_ui_position_manager_grid.c @@ -38,6 +38,7 @@ _reposition_content(Eo *obj EINA_UNUSED, Efl_Ui_Position_Manager_Grid_Data *pd) unsigned int start_id, end_id, step; const int len = 100; Efl_Gfx_Entity *obj_buffer[len]; + Efl_Ui_Position_Manager_Range_Update ev; if (!pd->size) return; if (pd->max_min_size.w <= 0 || pd->max_min_size.h <= 0) return; @@ -111,8 +112,12 @@ _reposition_content(Eo *obj EINA_UNUSED, Efl_Ui_Position_Manager_Grid_Data *pd) //printf(">%d (%d, %d, %d, %d) %p\n", i, geom.x, geom.y, geom.w, geom.h, ent); efl_gfx_entity_geometry_set(ent, geom); } - pd->prev_run.start_id = start_id; - pd->prev_run.end_id = end_id; + if (pd->prev_run.start_id != start_id || pd->prev_run.end_id != end_id) + { +ev.start_id = pd->prev_run.start_id = start_id; +ev.end_id = pd->prev_run.end_id = end_id; +efl_event_callback_call(obj, EFL_UI_POSITION_MANAGER_ENTITY_EVENT_VISIBLE_RANGE_CHANGED, ); + } } static inline void diff --git a/src/lib/elementary/efl_ui_position_manager_list.c b/src/lib/elementary/efl_ui_position_manager_list.c index 4a8497b4bd..e644a77736 100644 --- a/src/lib/elementary/efl_ui_position_manager_list.c +++ b/src/lib/elementary/efl_ui_position_manager_list.c @@ -142,6 +142,7 @@ position_content(Eo *obj EINA_UNUSED, Efl_Ui_Position_Manager_List_Data *pd) const int len = 100; Eina_Size2D size_buffer[len]; Efl_Gfx_Entity *obj_buffer[len]; + Efl_Ui_Position_Manager_Range_Update ev; if (!pd->size) return; if (pd->average_item_size <= 0) return; @@ -233,8 +234,13 @@ position_content(Eo *obj EINA_UNUSED, Efl_Ui_Position_Manager_List_Data *pd) else geom.x += size.w; } - pd->prev_run.start_id = start_id; - pd->prev_run.end_id = end_id; + if (pd->prev_run.start_id != start_id || pd->prev_run.end_id != end_id) + { +ev.start_id = pd->prev_run.start_id = start_id; +ev.end_id = pd->prev_run.end_id = end_id; +efl_event_callback_call(obj, EFL_UI_POSITION_MANAGER_ENTITY_EVENT_VISIBLE_RANGE_CHANGED, ); + } + } static Eina_Value --
[EGIT] [core/efl] master 01/01: vg_common_json: Support stroke miterlimit
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a569a4eb276720fb0dcd56c6b9fd27d1a9156619 commit a569a4eb276720fb0dcd56c6b9fd27d1a9156619 Author: JunsuChoi Date: Thu Aug 22 12:51:53 2019 +0900 vg_common_json: Support stroke miterlimit Summary: Apply miterlimit received from the node to vg_shape. Depends D9657 D9665 Test Plan: N/A Reviewers: Hermet, smohanty, kimcinoo Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9666 --- src/static_libs/vg_common/vg_common_json.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/static_libs/vg_common/vg_common_json.c b/src/static_libs/vg_common/vg_common_json.c index 47923c95aa..27fc86e7e6 100644 --- a/src/static_libs/vg_common/vg_common_json.c +++ b/src/static_libs/vg_common/vg_common_json.c @@ -149,6 +149,8 @@ _construct_drawable_nodes(Efl_Canvas_Vg_Container *parent, const LOTLayerNode *l } efl_gfx_shape_stroke_join_set(shape, join); + efl_gfx_shape_stroke_miterlimit_set(shape, node->mStroke.miterLimit); + //Stroke Dash if (node->mStroke.dashArraySize > 0) { --
[EGIT] [core/efl] master 03/10: tests/elm: add util functions for triggering wheel events
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=1114106f09fd98e7e4330befb9a15387817cc043 commit 1114106f09fd98e7e4330befb9a15387817cc043 Author: Mike Blumenkrantz Date: Mon Aug 19 14:31:57 2019 -0400 tests/elm: add util functions for triggering wheel events Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D9633 --- src/tests/elementary/suite_helpers.c | 64 +--- src/tests/elementary/suite_helpers.h | 3 ++ 2 files changed, 63 insertions(+), 4 deletions(-) diff --git a/src/tests/elementary/suite_helpers.c b/src/tests/elementary/suite_helpers.c index 44c34e58ae..5c89446a47 100644 --- a/src/tests/elementary/suite_helpers.c +++ b/src/tests/elementary/suite_helpers.c @@ -400,11 +400,10 @@ enum BOTTOM = 1 << 3, }; -static void -click_object_internal(Eo *obj, int dir) +static Eina_Position2D +attempt_to_find_the_right_point_for_mouse_positioning(Eo *obj, int dir) { int x, y; - Evas *e = evas_object_evas_get(obj); Eina_Rect r = efl_gfx_entity_geometry_get(obj); if (dir & LEFT) x = r.x + (.1 * r.w); @@ -418,7 +417,15 @@ click_object_internal(Eo *obj, int dir) y = r.y + (.9 * r.h); else y = r.y + r.h / 2; - evas_event_feed_mouse_move(e, x, y, 0, NULL); + return EINA_POSITION2D(x, y); +} + +static void +click_object_internal(Eo *obj, int dir) +{ + Evas *e = evas_object_evas_get(obj); + Eina_Position2D pos = attempt_to_find_the_right_point_for_mouse_positioning(obj, dir); + evas_event_feed_mouse_move(e, pos.x, pos.y, 0, NULL); evas_event_feed_mouse_down(e, 1, 0, 0, NULL); evas_event_feed_mouse_up(e, 1, 0, 0, NULL); } @@ -457,6 +464,47 @@ click_part(Eo *obj, const char *part) efl_unref(part_obj); } +static void +wheel_object_internal(Eo *obj, int dir, Eina_Bool horiz, Eina_Bool down) +{ + Eina_Position2D pos = attempt_to_find_the_right_point_for_mouse_positioning(obj, dir); + wheel_object_at(obj, pos.x, pos.y, horiz, down); +} + +void +wheel_object(Eo *obj, Eina_Bool horiz, Eina_Bool down) +{ + wheel_object_internal(obj, NONE, horiz, down); +} + +void +wheel_part(Eo *obj, const char *part, Eina_Bool horiz, Eina_Bool down) +{ + Efl_Part *part_obj = efl_ref(efl_part(obj, part)); + Eo *content; + int dir = 0; + + if (efl_canvas_layout_part_type_get(part_obj) == EFL_CANVAS_LAYOUT_PART_TYPE_SWALLOW) + content = efl_content_get(part_obj); + else + { +content = part_obj; +if (strstr(part, "left")) + dir |= LEFT; +else if (strstr(part, "right")) + dir |= RIGHT; +if (strstr(part, "top")) + dir |= TOP; +else if (strstr(part, "bottom")) + dir |= BOTTOM; + } + wheel_object_internal(content, dir, horiz, down); + if (efl_isa(content, EFL_LAYOUT_SIGNAL_INTERFACE)) + edje_object_message_signal_process(content); + edje_object_message_signal_process(obj); + efl_unref(part_obj); +} + void event_callback_that_is_called_exactly_one_time_and_sets_a_single_int_data_pointer_when_called(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { @@ -480,3 +528,11 @@ click_object_at(Eo *obj, int x, int y) evas_event_feed_mouse_down(e, 1, 0, 0, NULL); evas_event_feed_mouse_up(e, 1, 0, 0, NULL); } + +void +wheel_object_at(Eo *obj, int x, int y, Eina_Bool horiz, Eina_Bool down) +{ + Evas *e = evas_object_evas_get(obj); + evas_event_feed_mouse_move(e, x, y, 0, NULL); + evas_event_feed_mouse_wheel(e, horiz, down, 0, NULL); +} diff --git a/src/tests/elementary/suite_helpers.h b/src/tests/elementary/suite_helpers.h index a063869f2b..26cadf1c79 100644 --- a/src/tests/elementary/suite_helpers.h +++ b/src/tests/elementary/suite_helpers.h @@ -14,6 +14,9 @@ void get_me_to_those_events(Eo *obj); void click_object(Eo *obj); void click_part(Eo *obj, const char *part); void click_object_at(Eo *obj, int x, int y); +void wheel_object(Eo *obj, Eina_Bool horiz, Eina_Bool down); +void wheel_part(Eo *obj, const char *part, Eina_Bool horiz, Eina_Bool down); +void wheel_object_at(Eo *obj, int x, int y, Eina_Bool horiz, Eina_Bool down); void event_callback_that_is_called_exactly_one_time_and_sets_a_single_int_data_pointer_when_called(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED); void event_callback_that_quits_the_main_loop_when_called(); #endif --
[EGIT] [core/efl] master 01/01: efl-js: Remove private keys for Twitter API from example
xartigas pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8377ea20a01c95b7bd9b8b2a61e202b4af598016 commit 8377ea20a01c95b7bd9b8b2a61e202b4af598016 Author: Felipe Magno de Almeida Date: Fri Jul 26 14:59:17 2019 +0200 efl-js: Remove private keys for Twitter API from example Summary: For security concerns we removed the secret keys which could be used improperly by the wrong people. Reviewers: woohyun, cedric, lauromoura Reviewed By: lauromoura Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9377 --- src/examples/elementary/twitter_example_01.js | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/examples/elementary/twitter_example_01.js b/src/examples/elementary/twitter_example_01.js index d0f5f71fcd..04edbdd3ae 100644 --- a/src/examples/elementary/twitter_example_01.js +++ b/src/examples/elementary/twitter_example_01.js @@ -13,10 +13,10 @@ Twitter = require('twitter'); user_acount = 'EnlightenmentKo' var twit = new Twitter({ - consumer_key: 'ZbSM93w5Sp2cyZ2SG0XuCvoHV', - consumer_secret: 'g8N7EEQLpdKPnAsS9hWuQV29FYjBkhH62jhZzXyYymDw87DKye', - access_token_key: '222611263-pPhKKjYh59uuNLP0b86sP7aAtLhdecjVQaEsCDCv', - access_token_secret: 'l7ccNKXTVv6cymfSD1gQH61tmfixkdna2QmOjPtpVxSHD' + consumer_key: '', // replace with consumer_key + consumer_secret: '', // replace with consumer_secret + access_token_key: '', // replace with access_token_key + access_token_secret: '' // replace with access_token_secret }); win = new efl.Efl.Ui.Win(null, "Efl JS Example", efl.Efl.Ui.Win.Type.BASIC, "hw"); --
[EGIT] [core/efl] master 01/01: pyolian: Fix tests
vitorsousa pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7927023fc7a3aeebbb570f4e5cc0be36b99218c9 commit 7927023fc7a3aeebbb570f4e5cc0be36b99218c9 Author: Lauro Moura Date: Mon Jul 29 11:24:26 2019 -0300 pyolian: Fix tests Summary: Update tests after some legacy cleanup from last release. Reviewers: bu5hm4n, DaveMDS, segfaultxavi Reviewed By: DaveMDS Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8817 --- src/scripts/pyolian/test_eolian.py | 77 ++ 1 file changed, 45 insertions(+), 32 deletions(-) diff --git a/src/scripts/pyolian/test_eolian.py b/src/scripts/pyolian/test_eolian.py index 23a618be11..b597e812b7 100755 --- a/src/scripts/pyolian/test_eolian.py +++ b/src/scripts/pyolian/test_eolian.py @@ -59,7 +59,7 @@ class TestEolianState(unittest.TestCase): self.assertIsInstance(unit, eolian.Eolian_Unit) self.assertTrue(unit.file.endswith(('.eo', '.eot'))) count += 1 -self.assertGreater(count, 500) +self.assertGreater(count, 400) unit = eolian_db.unit_by_file_get('efl_ui_win.eo') self.assertIsInstance(unit, eolian.Eolian_Unit) @@ -167,8 +167,8 @@ class TestEolianUnit(unittest.TestCase): self.assertGreater(all_count, 50) def test_alias_listing(self): -l = list(eolian_db.aliases_by_file_get('edje_types.eot')) -self.assertGreater(len(l), 5) +l = list(eolian_db.aliases_by_file_get('eina_types.eot')) +self.assertGreater(len(l), 2) self.assertIsInstance(l[0], eolian.Typedecl) all_count = 0 @@ -211,12 +211,30 @@ class TestEolianNamespace(unittest.TestCase): for ns in eolian_db.all_namespaces: self.assertIsInstance(ns, eolian.Namespace) count += 1 -self.assertGreater(count, 100) +self.assertGreater(count, 50) def test_namespace_vs_class_collision(self): +colliding_classes = ['Ecore.Audio', + 'Ecore.Audio.In', + 'Ecore.Audio.Out', + 'Ecore.Event.Message', + 'Ector.Buffer', + 'Ector.Renderer', + 'Ector.Renderer.Cairo', + 'Ector.Renderer.GL', + 'Ector.Renderer.Gradient', + 'Ector.Renderer.Software', + 'Ector.Software.Buffer', + 'Eio.Sentry', + 'Eldbus.Model', +] for ns in eolian_db.all_namespaces: cls = eolian_db.class_by_name_get(ns.name) -self.assertIsNone(cls) +# Some legacy classes are parsed and still make this fail. +if cls: +self.assertIn(cls.name, colliding_classes) +else: +self.assertIsNone(cls) def test_namespace_equality(self): ns1 = eolian.Namespace(eolian_db, 'Efl.Io') @@ -323,7 +341,6 @@ class TestEolianClass(unittest.TestCase): self.assertEqual(list(cls.namespaces), ['Efl']) self.assertEqual(cls.type, eolian.Eolian_Class_Type.REGULAR) self.assertIsInstance(cls.documentation, eolian.Documentation) -self.assertEqual(cls.legacy_prefix, 'ecore_timer') self.assertIsNone(cls.eo_prefix) # TODO fin a class with a value self.assertIsNone(cls.event_prefix) # TODO same as above self.assertIsNone(cls.data_type) # TODO same as above @@ -335,8 +352,8 @@ class TestEolianClass(unittest.TestCase): self.assertEqual(cls.c_get_function_name, 'efl_loop_timer_class_get') self.assertEqual(cls.c_macro, 'EFL_LOOP_TIMER_CLASS') self.assertEqual(cls.c_data_type, 'Efl_Loop_Timer_Data') -self.assertEqual([f.name for f in cls.methods], ['reset','loop_reset','delay']) -self.assertEqual([f.name for f in cls.properties], ['interval','pending']) +self.assertEqual([f.name for f in cls.methods], ['timer_reset','timer_loop_reset','timer_delay']) +self.assertEqual([f.name for f in cls.properties], ['timer_interval','time_pending']) self.assertGreater(len(list(cls.implements)), 5) self.assertIsInstance(list(cls.implements)[0], eolian.Implement) @@ -344,9 +361,9 @@ class TestEolianClass(unittest.TestCase): class TestEolianFunction(unittest.TestCase): def test_function(self): cls = eolian_db.class_by_name_get('Efl.Loop_Timer') -f = cls.function_by_name_get('delay') +f = cls.function_by_name_get('timer_delay') self.assertIsInstance(f, eolian.Function) -self.assertEqual(f.name, 'delay') +self.assertEqual(f.name, 'timer_delay')
[EGIT] [core/efl] master 01/01: evas vg: ++safety.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=49343b628afaf776c38871fe8270f56ad4a1ed1d commit 49343b628afaf776c38871fe8270f56ad4a1ed1d Author: Hermet Park Date: Thu Aug 8 23:28:18 2019 +0900 evas vg: ++safety. Realloc internal composite buffer if its size is invalid. --- src/lib/evas/canvas/efl_canvas_vg_object.c | 18 ++ 1 file changed, 18 insertions(+) diff --git a/src/lib/evas/canvas/efl_canvas_vg_object.c b/src/lib/evas/canvas/efl_canvas_vg_object.c index 1d932012ce..56f892023b 100644 --- a/src/lib/evas/canvas/efl_canvas_vg_object.c +++ b/src/lib/evas/canvas/efl_canvas_vg_object.c @@ -403,6 +403,24 @@ _evas_vg_render(Evas_Object_Protected_Data *obj, Efl_Canvas_Vg_Object_Data *pd, if (alpha < 255) { + //Replace with a new size. + if (cd->blend_buffer) + { + int w2, h2; + ector_buffer_size_get(cd->blend_buffer, , ); + + if (w2 != w || h2 != h) +{ + if (cd->blend_pixels) + { +free(cd->blend_pixels); +cd->blend_pixels = NULL; + } + efl_unref(cd->blend_buffer); + cd->blend_buffer = NULL; +} + } + // Reuse buffer if (!cd->blend_pixels) cd->blend_pixels = calloc(w * h, sizeof(uint32_t*)); --
[EGIT] [core/enlightenment] master 01/01: xkb - make basic variant null now and handle in wl too the same as x
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=fdd472879b61c3230fabe6f8f2e9da1cd52505b0 commit fdd472879b61c3230fabe6f8f2e9da1cd52505b0 Author: Carsten Haitzler (Rasterman) Date: Fri Aug 9 09:50:33 2019 +0100 xkb - make basic variant null now and handle in wl too the same as x now russian works for me. :) fixes T7979 @fix --- src/bin/e_xkb.c | 16 +++- src/modules/xkbswitch/e_mod_config.c | 48 ++-- src/modules/xkbswitch/e_mod_parse.c | 2 +- 3 files changed, 46 insertions(+), 20 deletions(-) diff --git a/src/bin/e_xkb.c b/src/bin/e_xkb.c index 493610d36..e33b17606 100644 --- a/src/bin/e_xkb.c +++ b/src/bin/e_xkb.c @@ -308,23 +308,27 @@ _e_wl_xkb_reconfig(void) eina_strbuf_append(layouts, cl->name); eina_strbuf_append_char(layouts, ','); } +else + eina_strbuf_append_char(layouts, ','); -if (cl->variant) +if ((cl->variant) && (strcmp(cl->variant, "basic"))) { eina_strbuf_append(variants, cl->variant); eina_strbuf_append_char(variants, ','); } +else + eina_strbuf_append_char(variants, ','); } /* collect model to use */ /* set keymap to the compositor */ e_comp_wl_input_keymap_set(NULL, - e_config->xkb.default_model, - eina_strbuf_string_get(layouts), //pool of layouts to use - eina_strbuf_string_get(variants), //pool of variants to use - eina_strbuf_string_get(options) //list of options - ); + e_config->xkb.default_model, + eina_strbuf_string_get(layouts), //pool of layouts to use + eina_strbuf_string_get(variants), //pool of variants to use + eina_strbuf_string_get(options) //list of options + ); eina_strbuf_free(variants); eina_strbuf_free(layouts); diff --git a/src/modules/xkbswitch/e_mod_config.c b/src/modules/xkbswitch/e_mod_config.c index 24fb40efb..4e9a48e2c 100644 --- a/src/modules/xkbswitch/e_mod_config.c +++ b/src/modules/xkbswitch/e_mod_config.c @@ -521,8 +521,14 @@ _basic_create_fill(E_Config_Dialog_Data *cfdata) e_xkb_flag_file_get(buf, sizeof(buf), name); elm_image_file_set(ic, buf, NULL); - snprintf(buf, sizeof(buf), "%s (%s, %s)", - cl->name, cl->model, cl->variant); + snprintf(buf, sizeof(buf), "%s%s%s%s%s%s", + cl->name ? cl->name : _("No Name"), + cl->model || cl->variant ? " (" : "", + cl->model ? cl->model : "", + cl->model && cl->variant ? ", " : "", + cl->variant ? cl->variant : "", + cl->model || cl->variant ? ")" : "" + ); evas_object_show(ic); it = elm_list_item_append(cfdata->used_list, buf, ic, NULL, NULL, cl); @@ -1451,7 +1457,7 @@ _dlg_add_cb_ok(void *data, E_Dialog *dlg) E_XKB_Model *m; E_XKB_Variant *v; E_Config_XKB_Layout *cl; - char buf[PATH_MAX], icon_buf[PATH_MAX]; + char buf[512], icon_buf[PATH_MAX]; Evas_Object *ic; Elm_Object_Item *it; /* Configuration information */ @@ -1480,8 +1486,14 @@ _dlg_add_cb_ok(void *data, E_Dialog *dlg) ic = elm_icon_add(cfdata->used_list); e_xkb_flag_file_get(icon_buf, sizeof(icon_buf), cl->name); elm_image_file_set(ic, icon_buf, NULL); - snprintf(buf, sizeof(buf), "%s (%s, %s)", -cl->name, cl->model, cl->variant); + snprintf(buf, sizeof(buf), "%s%s%s%s%s%s", +cl->name ? cl->name : _("No Name"), +cl->model || cl->variant ? " (" : "", +cl->model ? cl->model : "", +cl->model && cl->variant ? ", " : "", +cl->variant ? cl->variant : "", +cl->model || cl->variant ? ")" : "" + ); elm_list_item_append(cfdata->used_list, buf, ic, NULL, NULL, cl); elm_list_go(cfdata->used_list); @@ -1499,9 +1511,13 @@ static char * _layout_gl_text_get(void *data, Evas_Object *obj EINA_UNUSED, const char *part EINA_UNUSED) { E_XKB_Layout *layout = data; - char buf[PATH_MAX]; + char buf[512]; - snprintf(buf, sizeof(buf), "%s (%s)", layout->description, layout->name); + snprintf(buf, sizeof(buf), "%s%s%s%s", +layout->description ? layout->description : _("No Description"), +layout->name ? " (" : "", +layout->name ? layout->name : "", +layout->name ? ")" : ""); return strdup(buf); } @@ -1580,10 +1596,13 @@ static char * _model_gl_text_get(void *data, Evas_Object *obj EINA_UNUSED, const char *part EINA_UNUSED) { E_XKB_Model *model = data; - char buf[PATH_MAX]; - -
[EGIT] [core/efl] master 01/08: evas_object_textblock: add support for variation sequences
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f7ce771e3243e19f8a12672ea2be752dedccbcf6 commit f7ce771e3243e19f8a12672ea2be752dedccbcf6 Author: Ali Alzyod Date: Thu Jul 18 08:51:28 2019 + evas_object_textblock: add support for variation sequences update font processing to handle variation sequences unicodes to select proper glypg in respect to variation seqences Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D9053 --- src/bin/elementary/test.c | 2 + src/bin/elementary/test_label.c | 24 +++ src/lib/evas/common/evas_font.h | 53 +- src/lib/evas/common/evas_font_load.c | 6 +- src/lib/evas/common/evas_font_main.c | 296 ++ src/lib/evas/common/evas_font_query.c | 54 +-- src/lib/evas/common/evas_text_utils.c | 6 +- src/tests/evas/evas_test_textblock.c | 19 ++- 8 files changed, 411 insertions(+), 49 deletions(-) diff --git a/src/bin/elementary/test.c b/src/bin/elementary/test.c index 8856c7cab1..adae27b52c 100644 --- a/src/bin/elementary/test.c +++ b/src/bin/elementary/test.c @@ -243,6 +243,7 @@ void test_label_wrap(void *data, Evas_Object *obj, void *event_info); void test_label_ellipsis(void *data, Evas_Object *obj, void *event_info); void test_label_colors(void *data, Evas_Object *obj, void *event_info); void test_label_emoji(void *data, Evas_Object *obj, void *event_info); +void test_label_variation_sequence(void *data, Evas_Object *obj, void *event_info); void test_conformant(void *data, Evas_Object *obj, void *event_info); void test_conformant2(void *data, Evas_Object *obj, void *event_info); void test_conformant_indicator(void *data, Evas_Object *obj, void *event_info); @@ -1198,6 +1199,7 @@ add_tests: ADD_TEST(NULL, "Text", "Label Ellipsis", test_label_ellipsis); ADD_TEST(NULL, "Text", "Label Colors", test_label_colors); ADD_TEST(NULL, "Text", "Label Emoji", test_label_emoji); + ADD_TEST(NULL, "Text", "Label Variation Sequnece", test_label_variation_sequence); ADD_TEST_EO(NULL, "Text", "Efl.Ui.Textpath", test_ui_textpath); //--// diff --git a/src/bin/elementary/test_label.c b/src/bin/elementary/test_label.c index c00ae7986e..f49255f21e 100644 --- a/src/bin/elementary/test_label.c +++ b/src/bin/elementary/test_label.c @@ -401,6 +401,30 @@ test_label_colors(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *ev evas_object_show(win); } +/*** Label variation sequence **/ +void +test_label_variation_sequence(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + Evas_Object *win, *lb; + + win = elm_win_util_standard_add("label-variation sequence", "Label variation sequnece"); + elm_win_autodel_set(win, EINA_TRUE); + + lb = elm_label_add(win); + elm_object_text_set(lb, + "You need to have at least on font contains variation sequence" + "Three different 8 glyphs : " + "888" + "line with 3 variation glyphs : " + "8AAA1234567" + ); + evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(win, lb); + evas_object_show(lb); + + evas_object_show(win); +} + /*** Label Emoji */ static char * _fontlist_text_get(void *data, Evas_Object *obj EINA_UNUSED, const char *part EINA_UNUSED) diff --git a/src/lib/evas/common/evas_font.h b/src/lib/evas/common/evas_font.h index ab6e6fbd17..5e79026ca3 100644 --- a/src/lib/evas/common/evas_font.h +++ b/src/lib/evas/common/evas_font.h @@ -56,7 +56,32 @@ typedef unsigned long longDATA64; #define LKU(x) eina_lock_release(&(x)) #define LKDBG(x) eina_lock_debug(&(x)) +/** + * See explanation of variation_sequences at: + * https://unicode.org/Public/UCD/latest/ucd/StandardizedVariants.txt + * https://unicode.org/reports/tr37/ + * https://unicode.org/ivd/ + * https://www.freetype.org/freetype2/docs/reference/ft2-glyph_variants.html +*/ +#define VAR_SEQ(x) GENERIC_VARIATION_SEQUENCES(x) | IDEOGRAPHICS_VARIATION_SEQUENCES(x) | MANGOLIAN_VARIATION_SEQUENCES(x) +#define GENERIC_VARIATION_SEQUENCES(x) (x>=0xFE00 && x<=0xFE0F) ? x : 0 +#define IDEOGRAPHICS_VARIATION_SEQUENCES(x) (x>=0xE0100 && x<=0xE01EF) ? x : 0 +#define MANGOLIAN_VARIATION_SEQUENCES(x) (x>=0x180B && x<=0x180D) ? x : 0 +/** + * http://unicode.org/emoji/charts/emoji-variants.html +*/ +#define VARIATION_EMOJI_PRESENTATION 0xFE0F +#define VARIATION_TEXT_PRESENTATION 0xFE0E + +/** + * These Options (Flags) are used with evas_common_font_glyph_search function + */ +#define EVAS_FONT_SEARCH_OPTION_NONE0x +#define EVAS_FONT_SEARCH_OPTION_SKIP_COLOR 0x0001 + +#define
[EGIT] [core/efl] master 04/14: edje - fix conversion of edje var from float to int to use tmp var
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4b8a422a6d5bf0fd113ec538a5e557d62d8e5f8e commit 4b8a422a6d5bf0fd113ec538a5e557d62d8e5f8e Author: Carsten Haitzler (Rasterman) Date: Sat Aug 10 22:53:29 2019 +0100 edje - fix conversion of edje var from float to int to use tmp var this should disambiguate the conversion intended. fix CID 1402675 --- src/lib/edje/edje_var.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/edje/edje_var.c b/src/lib/edje/edje_var.c index 40f32ff363..6fa72ce4af 100644 --- a/src/lib/edje/edje_var.c +++ b/src/lib/edje/edje_var.c @@ -306,7 +306,8 @@ _edje_var_var_int_get(Edje *ed EINA_UNUSED, Edje_Var *var) } else if (var->type == EDJE_VAR_FLOAT) { -var->data.i.v = (int)(var->data.f.v); +int tmp = (int)(var->data.f.v); +var->data.i.v = tmp; var->type = EDJE_VAR_INT; } else if (var->type == EDJE_VAR_NONE) --
[EGIT] [core/enlightenment] master 01/04: wiz - turn off taskbar by default due to ibar doing this already
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=e1a528ac2dcd7cd7ede8363837add88a0cd1d44e commit e1a528ac2dcd7cd7ede8363837add88a0cd1d44e Author: Carsten Haitzler (Rasterman) Date: Tue Jul 30 11:46:10 2019 +0100 wiz - turn off taskbar by default due to ibar doing this already --- src/modules/wizard/page_180.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/modules/wizard/page_180.c b/src/modules/wizard/page_180.c index 4d87cfbda..4245a0c5e 100644 --- a/src/modules/wizard/page_180.c +++ b/src/modules/wizard/page_180.c @@ -2,7 +2,7 @@ #include "e_wizard.h" #include "e_wizard_api.h" -static Eina_Bool do_tasks = 1; +static Eina_Bool do_tasks = 0; /* E_API int wizard_page_init(E_Wizard_Page *pg EINA_UNUSED, Eina_Bool *need_xdg_desktops EINA_UNUSED, Eina_Bool *need_xdg_icons EINA_UNUSED) @@ -36,7 +36,9 @@ wizard_page_show(E_Wizard_Page *pg EINA_UNUSED) elm_box_pack_end(o, ob); elm_object_text_set(ob, _("A taskbar can be added to" - "show open windows and applications." + "show open windows and applications." + "The IBar launcher already can do this," + "so this is in addition to that." ) ); --
[EGIT] [core/enlightenment] master 02/02: everything- ensure we dont skip over past end of string for fuzzy match
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c29dd0f5cfd976cea6a38e4f036fd684d54e6212 commit c29dd0f5cfd976cea6a38e4f036fd684d54e6212 Author: Carsten Haitzler (Rasterman) Date: Tue Aug 20 23:55:17 2019 +0100 everything- ensure we dont skip over past end of string for fuzzy match --- src/modules/everything/evry_util.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/modules/everything/evry_util.c b/src/modules/everything/evry_util.c index 057b4ff00..7817c7ff6 100644 --- a/src/modules/everything/evry_util.c +++ b/src/modules/everything/evry_util.c @@ -139,7 +139,10 @@ evry_fuzzy_match(const char *str, const char *match) ii = 0; /* go to next word */ for (; (*p != 0) && ((isspace(*p) || (ip && ispunct(*p; p += ii) - if (!_evry_utf8_next(p, )) break; + { +ii = 0; +if (!_evry_utf8_next(p, )) break; + } cnt++; next = p; m_cnt = 0; --
[EGIT] [core/efl] master 01/01: efl_ui : add efl.extra part as layout swallow part list.
sanghyeonlee pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=14f9782a81d1e1ef5c6275805b4d704061ce082b commit 14f9782a81d1e1ef5c6275805b4d704061ce082b Author: SangHyeon Jade Lee Date: Thu Aug 29 10:18:35 2019 +0900 efl_ui : add efl.extra part as layout swallow part list. Summary: efl.extra part is extra part of the layout swallow, which can be generally used on overall layout object. To be supported layout part infrastructures, add efl.extra on layout_swallow_part[] list. Depends on D9233 Reviewers: cedric, bu5hm4n, zmike, segfaultxavi Reviewed By: bu5hm4n Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9316 --- src/lib/elementary/efl_ui_layout.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/elementary/efl_ui_layout.c b/src/lib/elementary/efl_ui_layout.c index 5ae0403331..33ccdc2209 100644 --- a/src/lib/elementary/efl_ui_layout.c +++ b/src/lib/elementary/efl_ui_layout.c @@ -67,6 +67,7 @@ static const char *_efl_ui_layout_swallow_parts[] = { "efl.icon", "efl.end", "efl.background", + "efl.extra", NULL }; --
[EGIT] [core/efl] master 04/09: efl_ui/text: handle disabled text
bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=067d65361e3b2c6d992b59fddb373569839ddc60 commit 067d65361e3b2c6d992b59fddb373569839ddc60 Author: Mike Blumenkrantz Date: Mon Aug 5 13:03:21 2019 -0400 efl_ui/text: handle disabled text no idea what's going on here with new styling but this makes it look like it should ref T6649 Reviewed-by: Marcel Hollerbach Differential Revision: https://phab.enlightenment.org/D9502 --- data/elementary/themes/edc/efl/text.edc | 1 + src/lib/elementary/efl_ui_text.c| 17 ++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/data/elementary/themes/edc/efl/text.edc b/data/elementary/themes/edc/efl/text.edc index 90d260a784..bdae8ff733 100644 --- a/data/elementary/themes/edc/efl/text.edc +++ b/data/elementary/themes/edc/efl/text.edc @@ -522,6 +522,7 @@ group { "efl/text"; item: "font.name" "Sans"; item: "font.size" "10"; item: "style.color" "#fff"; + item: "style.color_disabled" "#151515"; item: "guide.font.name" "Sans"; item: "guide.font.size" "10"; diff --git a/src/lib/elementary/efl_ui_text.c b/src/lib/elementary/efl_ui_text.c index 3adfade9c3..6c8a24d36a 100644 --- a/src/lib/elementary/efl_ui_text.c +++ b/src/lib/elementary/efl_ui_text.c @@ -249,6 +249,7 @@ static void _clear_text_selection(Efl_Ui_Text_Data *sd); static void _anchors_free(Efl_Ui_Text_Data *sd); static void _selection_defer(Eo *obj, Efl_Ui_Text_Data *sd); static Eina_Position2D _decoration_calc_offset(Efl_Ui_Text_Data *sd); +static void _update_text_theme(Eo *obj, Efl_Ui_Text_Data *sd); static char * _file_load(Eo *obj) @@ -729,6 +730,7 @@ _efl_ui_text_efl_ui_widget_disabled_set(Eo *obj, Efl_Ui_Text_Data *sd, Eina_Bool _dnd_pos_cb, NULL, _dnd_drop_cb, NULL); } + _update_text_theme(obj, sd); } /* we can't issue the layout's theming code here, cause it assumes an @@ -2054,12 +2056,14 @@ _update_text_theme(Eo *obj, Efl_Ui_Text_Data *sd) { const char *font_name; const char *font_size; - const char *colorcode; + const char *colorcode = NULL; + Eina_Bool disabled; int font_size_n; unsigned char r, g, b, a; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); + disabled = efl_ui_widget_disabled_get(obj); // Main Text // font_set @@ -2069,7 +2073,10 @@ _update_text_theme(Eo *obj, Efl_Ui_Text_Data *sd) efl_text_font_set(sd->text_obj, font_name, font_size_n); // color - colorcode = edje_object_data_get(wd->resize_obj, "style.color"); + if (disabled) + colorcode = edje_object_data_get(wd->resize_obj, "style.color_disabled"); + if (!colorcode) + colorcode = edje_object_data_get(wd->resize_obj, "style.color"); if (colorcode && _format_color_parse(colorcode, strlen(colorcode), , , , )) { efl_text_normal_color_set(sd->text_obj, r, g, b, a); @@ -2081,8 +2088,12 @@ _update_text_theme(Eo *obj, Efl_Ui_Text_Data *sd) font_size_n = font_size ? atoi(font_size) : 0; efl_text_font_set(sd->text_guide_obj, font_name, font_size_n); + colorcode = NULL; // color - colorcode = edje_object_data_get(wd->resize_obj, "guide.style.color"); + if (disabled) + colorcode = edje_object_data_get(wd->resize_obj, "guide.style.color_disabled"); + if (!colorcode) + colorcode = edje_object_data_get(wd->resize_obj, "guide.style.color"); if (colorcode && _format_color_parse(colorcode, strlen(colorcode), , , , )) { efl_text_normal_color_set(sd->text_guide_obj, r, g, b, a); --
[EGIT] [core/efl] master 01/06: tests/elm: add test for ctxpopup sizing
bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b9648605e8f6623283ec960deac302685909f3c5 commit b9648605e8f6623283ec960deac302685909f3c5 Author: Mike Blumenkrantz Date: Thu Jul 25 11:49:55 2019 -0400 tests/elm: add test for ctxpopup sizing verify that size hints of content are being respected Reviewed-by: Marcel Hollerbach Differential Revision: https://phab.enlightenment.org/D9404 --- src/tests/elementary/elm_test_ctxpopup.c | 36 1 file changed, 36 insertions(+) diff --git a/src/tests/elementary/elm_test_ctxpopup.c b/src/tests/elementary/elm_test_ctxpopup.c index fb462364aa..a6f74de676 100644 --- a/src/tests/elementary/elm_test_ctxpopup.c +++ b/src/tests/elementary/elm_test_ctxpopup.c @@ -41,8 +41,44 @@ EFL_START_TEST(elm_atspi_role_get) } EFL_END_TEST +static void +_geometry_update(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) +{ + Eina_Rectangle *geom = event_info; + int *set = data; + if ((geom->w >= 150) && (geom->h >= 150)) + *set = 1; + else + *set = 0; +} + +EFL_START_TEST(elm_ctxpopup_test_sizing) +{ + Eo *win, *bt, *ctx; + int pass = 0; + + win = win_add(); + bt = elm_button_add(win); + ctx = elm_ctxpopup_add(win); + evas_object_smart_callback_add(ctx, "geometry,update", _geometry_update, ); + elm_object_text_set(bt, "test"); + evas_object_size_hint_min_set(bt, 150, 150); + elm_object_content_set(ctx, bt); + evas_object_show(win); + + evas_object_resize(bt, 200, 200); + evas_object_resize(win, 200, 200); + + evas_object_show(ctx); + get_me_to_those_events(win); + + ck_assert_int_eq(pass, 1); +} +EFL_END_TEST + void elm_test_ctxpopup(TCase *tc) { tcase_add_test(tc, elm_ctxpopup_legacy_type_check); tcase_add_test(tc, elm_atspi_role_get); + tcase_add_test(tc, elm_ctxpopup_test_sizing); } --
[EGIT] [core/enlightenment] master 01/01: efm: ensure progress popup is visible with min calc and hint set
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=b7d89167011306f1130243805390260b782f240d commit b7d89167011306f1130243805390260b782f240d Author: Carsten Haitzler (Rasterman) Date: Thu Aug 15 09:55:12 2019 +0100 efm: ensure progress popup is visible with min calc and hint set we never calc'd min size and set min size hint - fix that and set it... @fix --- src/modules/fileman/e_fwin.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/modules/fileman/e_fwin.c b/src/modules/fileman/e_fwin.c index 25fabd2e2..21e5629a7 100644 --- a/src/modules/fileman/e_fwin.c +++ b/src/modules/fileman/e_fwin.c @@ -3179,6 +3179,7 @@ _e_fwin_op_registry_entry_add_cb(void *data, E_Fm2_Op_Registry_Entry *ere = (E_Fm2_Op_Registry_Entry *)event; E_Fwin_Page *page = data; Evas_Object *o; + Evas_Coord mw, mh; if ((ere->op != E_FM_OP_COPY) && (ere->op != E_FM_OP_MOVE) && (ere->op != E_FM_OP_REMOVE) && (ere->op != E_FM_OP_SECURE_REMOVE)) @@ -3187,7 +3188,8 @@ _e_fwin_op_registry_entry_add_cb(void *data, o = edje_object_add(evas_object_evas_get(page->scrollframe_obj)); e_theme_edje_object_set(o, "base/theme/fileman", "e/fileman/default/progress"); - + edje_object_size_min_calc(o, , ); + evas_object_size_hint_min_set(o, mw, mh); // Append the element to the box edje_object_part_box_append(e_scrollframe_edje_object_get(page->scr), "e.box.operations", o); --
[EGIT] [core/efl] master 09/10: efl_ui/tags: use user size hints for internal objects
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b89e7b35009c7fafffdf62a0e625fefc2d44b3b7 commit b89e7b35009c7fafffdf62a0e625fefc2d44b3b7 Author: Mike Blumenkrantz Date: Thu Aug 1 09:20:34 2019 -0400 efl_ui/tags: use user size hints for internal objects restricted min size hint should only be set by an object's own group_calc function. all other cases should use regular min size hint Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D9477 --- src/lib/elementary/efl_ui_tags.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/lib/elementary/efl_ui_tags.c b/src/lib/elementary/efl_ui_tags.c index eb30e4ddca..daecd0b1c1 100644 --- a/src/lib/elementary/efl_ui_tags.c +++ b/src/lib/elementary/efl_ui_tags.c @@ -119,7 +119,7 @@ _shrink_mode_set(Eo *obj, edje_object_size_min_calc(sd->end, _label_count, ); elm_coords_finger_size_adjust(1, _label_count, 1, ); - efl_gfx_hint_size_restricted_min_set(sd->end, EINA_SIZE2D(w_label_count, h)); + efl_gfx_hint_size_min_set(sd->end, EINA_SIZE2D(w_label_count, h)); efl_pack(sd->box, sd->end); evas_object_show(sd->end); @@ -425,7 +425,7 @@ _item_new(Efl_Ui_Tags_Data *sd, if (sd->w_box && min.w > r.w) { elm_coords_finger_size_adjust(1, , 1, ); -efl_gfx_hint_size_restricted_min_set(layout, EINA_SIZE2D(r.w, min.h)); +efl_gfx_hint_size_min_set(layout, EINA_SIZE2D(r.w, min.h)); efl_gfx_entity_size_set(layout, EINA_SIZE2D(r.w, min.h)); } @@ -514,7 +514,7 @@ _box_resize_cb(void *data, if (min.w > r.w - hpad) { min.w = r.w - hpad; - efl_gfx_hint_size_restricted_min_set(layout, EINA_SIZE2D(min.w, min.h)); + efl_gfx_hint_size_min_set(layout, EINA_SIZE2D(min.w, min.h)); efl_gfx_entity_size_set(layout, EINA_SIZE2D(min.w, min.h)); } } @@ -762,7 +762,7 @@ _view_init(Evas_Object *obj, Efl_Ui_Tags_Data *sd) efl_text_interactive_editable_set(efl_added, EINA_TRUE), efl_composite_attach(obj, efl_added)); - efl_gfx_hint_size_restricted_min_set(sd->entry, EINA_SIZE2D(MIN_W_ENTRY, 0)); + efl_gfx_hint_size_min_set(sd->entry, EINA_SIZE2D(MIN_W_ENTRY, 0)); efl_gfx_hint_weight_set(sd->entry, EFL_GFX_HINT_EXPAND, 0); efl_gfx_hint_fill_set(sd->entry, EINA_TRUE, EINA_FALSE); @@ -779,7 +779,7 @@ _view_init(Evas_Object *obj, Efl_Ui_Tags_Data *sd) edje_object_size_min_calc(sd->end, _min_width, _min_height); elm_coords_finger_size_adjust(1, _min_width, 1, _min_height); -efl_gfx_hint_size_restricted_min_set(sd->end, EINA_SIZE2D(button_min_width, button_min_height)); +efl_gfx_hint_size_min_set(sd->end, EINA_SIZE2D(button_min_width, button_min_height)); elm_widget_sub_object_add(obj, sd->end); } } --
[EGIT] [core/efl] master 01/01: canvas svg: fix to apply premultipled color.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5c39e68d2bcd0ccd3dff21e378f2638509b81a39 commit 5c39e68d2bcd0ccd3dff21e378f2638509b81a39 Author: Hermet Park Date: Tue Aug 20 11:23:59 2019 +0900 canvas svg: fix to apply premultipled color. fill colors should be premultiplied with fill opcaity. --- src/static_libs/vg_common/vg_common_svg.c | 17 + 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/static_libs/vg_common/vg_common_svg.c b/src/static_libs/vg_common/vg_common_svg.c index 5f8398d44b..d15e753cc0 100644 --- a/src/static_libs/vg_common/vg_common_svg.c +++ b/src/static_libs/vg_common/vg_common_svg.c @@ -710,17 +710,16 @@ _apply_vg_property(Svg_Node *node, Efl_VG *vg, Efl_VG *parent, Vg_File_Data *vg_ Svg_Style_Property *style = node->style; // update the vg name - if (node->id) - efl_name_set(vg, node->id); + if (node->id) efl_name_set(vg, node->id); // apply the transformation - if (node->transform) - efl_canvas_vg_node_transformation_set(vg, node->transform); + if (node->transform) efl_canvas_vg_node_transformation_set(vg, node->transform); if ((node->type == SVG_NODE_G) || (node->type == SVG_NODE_DOC)) return; // apply the fill style property efl_gfx_shape_fill_rule_set(vg, style->fill.fill_rule); + // if fill property is NULL then do nothing if (style->fill.paint.none) { @@ -734,14 +733,16 @@ _apply_vg_property(Svg_Node *node, Efl_VG *vg, Efl_VG *parent, Vg_File_Data *vg_ else if (style->fill.paint.cur_color) { // apply the current style color -efl_gfx_color_set(vg, style->r, style->g, - style->b, style->fill.opacity); +float fa = ((float) style->fill.opacity / 255); +efl_gfx_color_set(vg, ((float) style->r) * fa, ((float) style->g) * fa, ((float) style->b) * fa, + style->fill.opacity); } else { // apply the fill color -efl_gfx_color_set(vg, style->fill.paint.r, style->fill.paint.g, - style->fill.paint.b, style->fill.opacity); +float fa = ((float) style->fill.opacity / 255); +efl_gfx_color_set(vg, ((float) style->fill.paint.r) * fa, ((float) style->fill.paint.g) * fa, + ((float) style->fill.paint.b) * fa, style->fill.opacity); } //apply node opacity --
[EGIT] [apps/rage] master 01/01: video - handle null file sets nicely
raster pushed a commit to branch master. http://git.enlightenment.org/apps/rage.git/commit/?id=b24a22ba6f9861ae296d7b528110bc35c2bade08 commit b24a22ba6f9861ae296d7b528110bc35c2bade08 Author: Carsten Haitzler (Rasterman) Date: Tue Aug 6 10:25:17 2019 +0100 video - handle null file sets nicely makes coverity happy --- src/bin/video.c | 62 - 1 file changed, 35 insertions(+), 27 deletions(-) diff --git a/src/bin/video.c b/src/bin/video.c index eb4a056..35d5a63 100644 --- a/src/bin/video.c +++ b/src/bin/video.c @@ -634,41 +634,49 @@ video_file_set(Evas_Object *obj, const char *file) evas_object_hide(sd->o_vid); evas_object_hide(sd->clip); eina_stringshare_replace(&(sd->file), file); - if (!strncasecmp(sd->file, "file:/", 6)) + if (sd->file) { -Efreet_Uri *uri = efreet_uri_decode(sd->file); -if (uri) +if (!strncasecmp(sd->file, "file:/", 6)) { - realfile = ecore_file_realpath(uri->path); - efreet_uri_free(uri); + Efreet_Uri *uri = efreet_uri_decode(sd->file); + if (uri) + { + realfile = ecore_file_realpath(uri->path); + efreet_uri_free(uri); + } } - } - else if ((!strncasecmp(sd->file, "http:/", 6)) || -(!strncasecmp(sd->file, "https:/", 7))) - realfile = strdup(sd->file); - else - realfile = ecore_file_realpath(sd->file); - eina_stringshare_replace(&(sd->realfile), realfile); - free(realfile); - eina_stringshare_replace(&(sd->artfile), NULL); - emotion_object_file_set(sd->o_vid, sd->file); - video_position_set(obj, 0.0); - if ((sd->file) && (sd->doart)) - { -const char *extn = strchr(sd->file, '.'); -if (extn) +else if ((!strncasecmp(sd->file, "http:/", 6)) || + (!strncasecmp(sd->file, "https:/", 7))) + realfile = strdup(sd->file); +else + realfile = ecore_file_realpath(sd->file); +eina_stringshare_replace(&(sd->realfile), realfile); +free(realfile); +eina_stringshare_replace(&(sd->artfile), NULL); +emotion_object_file_set(sd->o_vid, sd->file); +video_position_set(obj, 0.0); +if (sd->doart) { - if ((!strcasecmp(extn, ".mp3")) || - (!strcasecmp(extn, ".m4a")) || - (!strcasecmp(extn, ".oga")) || - (!strcasecmp(extn, ".aac")) || - (!strcasecmp(extn, ".flac")) || - (!strcasecmp(extn, ".wav"))) + const char *extn = strchr(sd->file, '.'); + if (extn) { - _art_check(obj); + if ((!strcasecmp(extn, ".mp3")) || + (!strcasecmp(extn, ".m4a")) || + (!strcasecmp(extn, ".oga")) || + (!strcasecmp(extn, ".aac")) || + (!strcasecmp(extn, ".flac")) || + (!strcasecmp(extn, ".wav"))) +{ + _art_check(obj); +} } } } + else + { +eina_stringshare_replace(&(sd->realfile), NULL); +eina_stringshare_replace(&(sd->artfile), NULL); + } } const char * --
[EGIT] [core/efl] master 12/14: elm ctxpopup - be consistent with scope data checks
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b0ad81d927cfc9d2866f061c2d017b99ecc4505f commit b0ad81d927cfc9d2866f061c2d017b99ecc4505f Author: Carsten Haitzler (Rasterman) Date: Sat Aug 10 23:30:28 2019 +0100 elm ctxpopup - be consistent with scope data checks makes coverity happy. CID 1403898 --- src/lib/elementary/elc_ctxpopup.c | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/lib/elementary/elc_ctxpopup.c b/src/lib/elementary/elc_ctxpopup.c index c391573c0c..a9721ea0c0 100644 --- a/src/lib/elementary/elc_ctxpopup.c +++ b/src/lib/elementary/elc_ctxpopup.c @@ -863,9 +863,12 @@ _elm_ctxpopup_item_elm_widget_item_del_pre(Eo *eo_ctxpopup_it EINA_UNUSED, if (ctxpopup_it->list_item) { Elm_Ctxpopup_Data *sd = efl_data_scope_safe_get(WIDGET(ctxpopup_it), MY_CLASS); -if (sd->list) - elm_object_item_del(ctxpopup_it->list_item); -ctxpopup_it->list_item = NULL; +if (sd) + { + if (sd->list) + elm_object_item_del(ctxpopup_it->list_item); + ctxpopup_it->list_item = NULL; + } } } --
[EGIT] [core/efl] master 04/10: efl_ui_spin_button: rename circulate to wraparound
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=fd860eb6e80d3e54efc3e25a2861424c1fea6959 commit fd860eb6e80d3e54efc3e25a2861424c1fea6959 Author: Marcel Hollerbach Date: Wed Jul 31 18:06:43 2019 +0200 efl_ui_spin_button: rename circulate to wraparound ref T8097 Reviewed-by: Xavi Artigas Differential Revision: https://phab.enlightenment.org/D9461 --- src/bin/elementary/test_ui_spin_button.c| 2 +- src/lib/elementary/efl_ui_datepicker.c | 6 +++--- src/lib/elementary/efl_ui_spin_button.c | 10 +- src/lib/elementary/efl_ui_spin_button.eo| 2 +- src/lib/elementary/efl_ui_spin_button_private.h | 2 +- src/lib/elementary/efl_ui_timepicker.c | 4 ++-- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/bin/elementary/test_ui_spin_button.c b/src/bin/elementary/test_ui_spin_button.c index 2bfb7b2aa0..e6b31353da 100644 --- a/src/bin/elementary/test_ui_spin_button.c +++ b/src/bin/elementary/test_ui_spin_button.c @@ -41,7 +41,7 @@ test_ui_spin_button(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void * efl_ui_range_limits_set(efl_added, 0, 10), efl_ui_range_value_set(efl_added, 6), efl_ui_range_step_set(efl_added, 2), - efl_ui_spin_button_circulate_set(efl_added, EINA_TRUE), + efl_ui_spin_button_wraparound_set(efl_added, EINA_TRUE), efl_ui_spin_button_editable_set(efl_added, EINA_TRUE), efl_event_callback_add(efl_added, EFL_UI_RANGE_EVENT_STEADY,_spin_delay_changed_cb, NULL), efl_event_callback_add(efl_added, EFL_UI_RANGE_EVENT_CHANGED, _spin_changed_cb, NULL), diff --git a/src/lib/elementary/efl_ui_datepicker.c b/src/lib/elementary/efl_ui_datepicker.c index 1aa472df6e..0a4a39b171 100644 --- a/src/lib/elementary/efl_ui_datepicker.c +++ b/src/lib/elementary/efl_ui_datepicker.c @@ -161,21 +161,21 @@ _fields_init(Eo *obj) //Field create. pd->year = efl_add(EFL_UI_SPIN_BUTTON_CLASS, obj, efl_ui_range_limits_set(efl_added, 1900, 2037), - efl_ui_spin_button_circulate_set(efl_added, EINA_TRUE), + efl_ui_spin_button_wraparound_set(efl_added, EINA_TRUE), efl_ui_spin_button_editable_set(efl_added, EINA_TRUE), efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL), efl_event_callback_add(efl_added, EFL_UI_RANGE_EVENT_CHANGED,_field_changed_cb, obj)); pd->month = efl_add(EFL_UI_SPIN_BUTTON_CLASS, obj, efl_ui_range_limits_set(efl_added, 1, 12), - efl_ui_spin_button_circulate_set(efl_added, EINA_TRUE), + efl_ui_spin_button_wraparound_set(efl_added, EINA_TRUE), efl_ui_spin_button_editable_set(efl_added, EINA_TRUE), efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL), efl_event_callback_add(efl_added, EFL_UI_RANGE_EVENT_CHANGED,_field_changed_cb, obj)); pd->day = efl_add(EFL_UI_SPIN_BUTTON_CLASS, obj, efl_ui_range_limits_set(efl_added, 1, 31), - efl_ui_spin_button_circulate_set(efl_added, EINA_TRUE), + efl_ui_spin_button_wraparound_set(efl_added, EINA_TRUE), efl_ui_spin_button_editable_set(efl_added, EINA_TRUE), efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL), efl_event_callback_add(efl_added, EFL_UI_RANGE_EVENT_CHANGED,_field_changed_cb, obj)); diff --git a/src/lib/elementary/efl_ui_spin_button.c b/src/lib/elementary/efl_ui_spin_button.c index 553c363680..cfd13cfcc4 100644 --- a/src/lib/elementary/efl_ui_spin_button.c +++ b/src/lib/elementary/efl_ui_spin_button.c @@ -137,7 +137,7 @@ _value_set(Evas_Object *obj, Efl_Ui_Spin_Data *pd = efl_data_scope_get(obj, EFL_UI_SPIN_CLASS); Eina_Future *f; - if (sd->circulate) + if (sd->wraparound) { if (new_val < pd->val_min) new_val = pd->val_max; @@ -732,15 +732,15 @@ _efl_ui_spin_button_editable_get(const Eo *obj EINA_UNUSED, Efl_Ui_Spin_Button_D } EOLIAN static void -_efl_ui_spin_button_circulate_set(Eo *obj EINA_UNUSED, Efl_Ui_Spin_Button_Data *sd, Eina_Bool circulate) +_efl_ui_spin_button_wraparound_set(Eo *obj EINA_UNUSED, Efl_Ui_Spin_Button_Data *sd, Eina_Bool wraparound) { - sd->circulate = circulate; + sd->wraparound = wraparound; } EOLIAN static Eina_Bool -_efl_ui_spin_button_circulate_get(const Eo *obj EINA_UNUSED, Efl_Ui_Spin_Button_Data *sd) +_efl_ui_spin_button_wraparound_get(const Eo *obj EINA_UNUSED, Efl_Ui_Spin_Button_Data *sd) { - return sd->circulate; + return sd->wraparound; } EOLIAN static const Efl_Access_Action_Data * diff --git
[EGIT] [core/efl] master 01/01: eolian: attempt to silence coverity overlapping assignment errors
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ede2db5f1b2bd8707c0cbb8a3024cf1a416863bb commit ede2db5f1b2bd8707c0cbb8a3024cf1a416863bb Author: Daniel Kolesa Date: Mon Aug 5 15:32:15 2019 +0200 eolian: attempt to silence coverity overlapping assignment errors While the previous code was I believe correct, coverity still complains about it. Split it into two statements also to declare intent. CID 1402603..1402724 --- src/lib/eolian/database_expr.c | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lib/eolian/database_expr.c b/src/lib/eolian/database_expr.c index 14af0cfb08..c2b6030db1 100644 --- a/src/lib/eolian/database_expr.c +++ b/src/lib/eolian/database_expr.c @@ -120,8 +120,11 @@ static Eina_Bool promote(Eolian_Expression *a, Eolian_Expression *b) { #define CONVERT_CASE(id, dtp, expr, field, fnm) \ - case EOLIAN_EXPR_##id: \ - expr->value.field = (dtp)(expr->value.fnm); break; + case EOLIAN_EXPR_##id: { \ + dtp nv = (dtp)(expr->value.fnm); \ + expr->value.field = nv; \ + break; \ + } #define CONVERT(dtp, expr, field) \ switch (expr->type) \ --
[EGIT] [core/efl] master 03/10: eio/poll: avoid ever dereferencing the backend's parent in a thread
zmike pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=42704eccc782d460d997630e9ab774833704c741 commit 42704eccc782d460d997630e9ab774833704c741 Author: Mike Blumenkrantz Date: Fri Aug 23 13:22:04 2019 -0400 eio/poll: avoid ever dereferencing the backend's parent in a thread Summary: when a monitor is destroyed, it unconditionally and immediately deletes the monitor struct. this means that as soon as the monitor is dead, the backend must never access the parent pointer again if its lifetime exceeds the lifetime of the monitor (such as in threads) the only member of the monitor data used by the fallback monitor is the monitor path, so we can just copy it to the fallback data to avoid ever needing to dereference this pointer fixes reliability issues with efl sentry unit tests @fix Depends on D9708 Reviewers: cedric Reviewed By: cedric Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9709 --- src/lib/eio/eio_monitor_poll.c | 16 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/lib/eio/eio_monitor_poll.c b/src/lib/eio/eio_monitor_poll.c index 55cdff6fbf..2a35b6f07a 100644 --- a/src/lib/eio/eio_monitor_poll.c +++ b/src/lib/eio/eio_monitor_poll.c @@ -39,6 +39,7 @@ struct _Eio_Monitor_Stat struct _Eio_Monitor_Backend { Eio_Monitor *parent; + Eina_Stringshare *path; Eina_Stat self; Eina_Hash *children; @@ -74,17 +75,14 @@ _eio_monitor_fallback_heavy_cb(void *data, Ecore_Thread *thread) else est = alloca(sizeof (Eina_Stat)); - if (!backend->parent) - return; - - if (_eio_stat(backend->parent->path, )) + if (_eio_stat(backend->path, )) { if (backend->initialised && !backend->destroyed) { ecore_thread_main_loop_begin(); deleted = backend->delete_me; if (!deleted) - _eio_monitor_send(backend->parent, backend->parent->path, EIO_MONITOR_SELF_DELETED); + _eio_monitor_send(backend->parent, backend->path, EIO_MONITOR_SELF_DELETED); ecore_thread_main_loop_end(); backend->destroyed = EINA_TRUE; } @@ -137,12 +135,12 @@ _eio_monitor_fallback_heavy_cb(void *data, Ecore_Thread *thread) ecore_thread_main_loop_begin(); deleted = backend->delete_me; if (!deleted) - _eio_monitor_send(backend->parent, backend->parent->path, event); + _eio_monitor_send(backend->parent, backend->path, event); ecore_thread_main_loop_end(); if (deleted) return; } - it = eina_file_direct_ls(backend->parent->path); + it = eina_file_direct_ls(backend->path); EINA_ITERATOR_FOREACH(it, info) { Eio_Monitor_Stat *cmp; @@ -344,6 +342,7 @@ eio_monitor_fallback_add(Eio_Monitor *monitor) backend->children = eina_hash_string_superfast_new(free); backend->parent = monitor; + backend->path = eina_stringshare_ref(monitor->path); monitor->backend = backend; monitor->fallback = EINA_TRUE; @@ -370,6 +369,7 @@ eio_monitor_fallback_del(Eio_Monitor *monitor) if (backend->timer) ecore_timer_del(backend->timer); eina_hash_set(timer_hash, , NULL); backend->timer = NULL; + backend->parent = NULL; if (backend->work) { @@ -377,7 +377,7 @@ eio_monitor_fallback_del(Eio_Monitor *monitor) return; } - backend->parent = NULL; + eina_stringshare_del(backend->path); eina_hash_free(backend->children); free(backend); } --
[EGIT] [core/enlightenment] enlightenment-0.23 02/02: e - fix up resize/move by kbd to work again
raster pushed a commit to branch enlightenment-0.23. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c97ea9f1c03ed57066d2574e9f6d5f177e0575cc commit c97ea9f1c03ed57066d2574e9f6d5f177e0575cc Author: Carsten Haitzler (Rasterman) Date: Wed Sep 4 19:17:12 2019 +0100 e - fix up resize/move by kbd to work again this used to work years ago ... it seems tihave broken. this fixes it all up to work again so you can bind a move/resize of a window tothe kbd and then use arrow keys etc. like you used to @fix --- src/bin/e_actions.c | 41 ++-- src/bin/e_client.c | 124 ++-- src/bin/e_comp_object.c | 16 +-- src/bin/e_utils.c | 34 + src/bin/e_utils.h | 10 5 files changed, 139 insertions(+), 86 deletions(-) diff --git a/src/bin/e_actions.c b/src/bin/e_actions.c index bdf823172..f0b954007 100644 --- a/src/bin/e_actions.c +++ b/src/bin/e_actions.c @@ -103,7 +103,8 @@ ACT_FN_GO(window_move, EINA_UNUSED) ACT_FN_GO_MOUSE(window_move, EINA_UNUSED) { - if (!obj) obj = E_OBJECT(e_client_focused_get()); + if ((!obj) || (obj->type != E_CLIENT_TYPE)) + obj = E_OBJECT(e_client_focused_get()); if (!obj) return EINA_FALSE; if (obj->type != E_CLIENT_TYPE) return EINA_FALSE; e_client_act_move_begin((E_Client *)(void *)obj, ev); @@ -112,7 +113,8 @@ ACT_FN_GO_MOUSE(window_move, EINA_UNUSED) ACT_FN_GO_SIGNAL(window_move, ) { - if (!obj) obj = E_OBJECT(e_client_focused_get()); + if ((!obj) || (obj->type != E_CLIENT_TYPE)) + obj = E_OBJECT(e_client_focused_get()); if (!obj) return; if (obj->type != E_CLIENT_TYPE) return; if (!((E_Client *)(void *)obj)->lock_user_location) @@ -129,7 +131,8 @@ ACT_FN_GO_SIGNAL(window_move, ) ACT_FN_END(window_move, EINA_UNUSED) { - if (!obj) obj = E_OBJECT(e_client_focused_get()); + if ((!obj) || (obj->type != E_CLIENT_TYPE)) + obj = E_OBJECT(e_client_focused_get()); if (!obj) return; if (obj->type != E_CLIENT_TYPE) return; e_client_act_move_end((E_Client *)(void *)obj, NULL); @@ -137,7 +140,8 @@ ACT_FN_END(window_move, EINA_UNUSED) ACT_FN_END_MOUSE(window_move, EINA_UNUSED) { - if (!obj) obj = E_OBJECT(e_client_focused_get()); + if ((!obj) || (obj->type != E_CLIENT_TYPE)) + obj = E_OBJECT(e_client_focused_get()); if (!obj) return EINA_FALSE; if (obj->type != E_CLIENT_TYPE) return EINA_FALSE; e_client_act_move_end((E_Client *)(void *)obj, ev); @@ -146,7 +150,8 @@ ACT_FN_END_MOUSE(window_move, EINA_UNUSED) ACT_FN_GO_KEY(window_move, EINA_UNUSED, EINA_UNUSED) { - if (!obj) obj = E_OBJECT(e_client_focused_get()); + if ((!obj) || (obj->type != E_CLIENT_TYPE)) + obj = E_OBJECT(e_client_focused_get()); if (!obj) return; if (!((E_Client *)(void *)obj)->lock_user_location) e_client_act_move_keyboard((E_Client *)(void *)obj); @@ -164,7 +169,8 @@ ACT_FN_GO(window_resize, EINA_UNUSED) ACT_FN_GO_MOUSE(window_resize, EINA_UNUSED) { - if (!obj) obj = E_OBJECT(e_client_focused_get()); + if ((!obj) || (obj->type != E_CLIENT_TYPE)) + obj = E_OBJECT(e_client_focused_get()); if (!obj) return EINA_FALSE; if (obj->type != E_CLIENT_TYPE) return EINA_FALSE; if (!((E_Client *)(void *)obj)->lock_user_size) @@ -174,7 +180,8 @@ ACT_FN_GO_MOUSE(window_resize, EINA_UNUSED) ACT_FN_GO_SIGNAL(window_resize, ) { - if (!obj) obj = E_OBJECT(e_client_focused_get()); + if ((!obj) || (obj->type != E_CLIENT_TYPE)) + obj = E_OBJECT(e_client_focused_get()); if (!obj) return; if (obj->type != E_CLIENT_TYPE) return; if (!((E_Client *)(void *)obj)->lock_user_size) @@ -194,7 +201,8 @@ ACT_FN_GO_SIGNAL(window_resize, ) ACT_FN_END(window_resize, EINA_UNUSED) { - if (!obj) obj = E_OBJECT(e_client_focused_get()); + if ((!obj) || (obj->type != E_CLIENT_TYPE)) + obj = E_OBJECT(e_client_focused_get()); if (!obj) return; if (obj->type != E_CLIENT_TYPE) return; e_client_act_resize_end((E_Client *)(void *)obj, NULL); @@ -202,7 +210,8 @@ ACT_FN_END(window_resize, EINA_UNUSED) ACT_FN_END_MOUSE(window_resize, EINA_UNUSED) { - if (!obj) obj = E_OBJECT(e_client_focused_get()); + if ((!obj) || (obj->type != E_CLIENT_TYPE)) + obj = E_OBJECT(e_client_focused_get()); if (!obj) return EINA_FALSE; if (obj->type != E_CLIENT_TYPE) return EINA_FALSE; e_client_act_resize_end((E_Client *)(void *)obj, ev); @@ -211,7 +220,8 @@ ACT_FN_END_MOUSE(window_resize, EINA_UNUSED) ACT_FN_GO_KEY(window_resize, EINA_UNUSED, EINA_UNUSED) { - if (!obj) obj = E_OBJECT(e_client_focused_get()); + if ((!obj) || (obj->type != E_CLIENT_TYPE)) + obj = E_OBJECT(e_client_focused_get()); if (!obj) return; if (obj->type != E_CLIENT_TYPE) { @@ -233,7 +243,8 @@ ACT_FN_GO(window_menu, EINA_UNUSED) ACT_FN_GO_MOUSE(window_menu, EINA_UNUSED) { - if (!obj) obj = E_OBJECT(e_client_focused_get()); + if ((!obj)
[EGIT] [core/enlightenment] master 01/01: freeze/that - use a bit more to cut out unwanted events
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=b7d2ac57b00ee8dc84d3e9f8eec80e5bee3c6153 commit b7d2ac57b00ee8dc84d3e9f8eec80e5bee3c6153 Author: Carsten Haitzler (Rasterman) Date: Tue Aug 20 08:42:55 2019 +0100 freeze/that - use a bit more to cut out unwanted events --- src/bin/e_menu.c | 1 + src/modules/clock/e_mod_main.c | 5 - 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/bin/e_menu.c b/src/bin/e_menu.c index 5070d1cc7..130df2f08 100644 --- a/src/bin/e_menu.c +++ b/src/bin/e_menu.c @@ -1680,6 +1680,7 @@ _e_menu_realize(E_Menu *m) evas_event_thaw(m->evas); + evas_event_thaw_eval(m->evas); m->realized = 1; } diff --git a/src/modules/clock/e_mod_main.c b/src/modules/clock/e_mod_main.c index 48a2bd486..5d396c711 100644 --- a/src/modules/clock/e_mod_main.c +++ b/src/modules/clock/e_mod_main.c @@ -309,6 +309,8 @@ _clock_popup_new(Instance *inst) if (inst->popup) return; + evas = e_comp->evas; + evas_event_freeze(evas); _todaystr_eval(inst, todaystr, sizeof(todaystr) - 1); inst->madj = 0; @@ -316,7 +318,6 @@ _clock_popup_new(Instance *inst) _time_eval(inst); inst->popup = e_gadcon_popup_new(inst->gcc, 0); - evas = e_comp->evas; inst->o_table = elm_table_add(e_comp->elm); @@ -377,6 +378,8 @@ _clock_popup_new(Instance *inst) evas_smart_objects_calculate(evas); e_gadcon_popup_content_set(inst->popup, inst->o_table); + evas_event_thaw(evas); + evas_event_thaw_eval(evas); e_gadcon_popup_show(inst->popup); } --
[EGIT] [core/efl] master 01/01: Revert "efl/scroll manager: stop clearing animators on every wheel event"
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a836c73ef61f5557746c5e4d944b01a77bc3a8de commit a836c73ef61f5557746c5e4d944b01a77bc3a8de Author: Hermet Park Date: Wed Jul 24 20:47:20 2019 +0900 Revert "efl/scroll manager: stop clearing animators on every wheel event" This reverts commit e6393393ccafe59d4e434a78c79952601d93956a. This totally break popup control in Tizen, Please consider necessity of this patch, further potential side effects possibilities. --- src/lib/elementary/efl_ui_scroll_manager.c | 9 - 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/lib/elementary/efl_ui_scroll_manager.c b/src/lib/elementary/efl_ui_scroll_manager.c index 63654f3eba..53232883cc 100644 --- a/src/lib/elementary/efl_ui_scroll_manager.c +++ b/src/lib/elementary/efl_ui_scroll_manager.c @@ -1558,11 +1558,10 @@ _scroll_manager_scrollto_y_animator_del(Efl_Ui_Scroll_Manager_Data *sd) static void _scroll_manager_scrollto_animator_add(Efl_Ui_Scroll_Manager_Data *sd, Evas_Coord sx, Evas_Coord sy, Evas_Coord x, Evas_Coord y, double tx, double ty, InterpType interp) { - if (!sd->pan_obj || sd->freeze) - { -_scroll_manager_scrollto_animator_del(sd); -return; - } + _scroll_manager_scrollto_animator_del(sd); + + if (!sd->pan_obj) return; + if (sd->freeze) return; _scroll_manager_scrollto_x_animator_add(sd, sx, x, tx, interp); _scroll_manager_scrollto_y_animator_add(sd, sy, y, ty, interp); } --
[EGIT] [core/efl] master 01/01: efl_ui_tab_*: enhance documentation
xartigas pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a0bd73f2e0c62a198c1e36b9bfe410b22d0d6c85 commit a0bd73f2e0c62a198c1e36b9bfe410b22d0d6c85 Author: Marcel Hollerbach Date: Fri Sep 6 16:25:57 2019 +0200 efl_ui_tab_*: enhance documentation Summary: just a commit bringing more information. Reviewers: segfaultxavi Reviewed By: segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9864 --- src/lib/elementary/efl_ui_tab_bar.eo | 5 - src/lib/elementary/efl_ui_tab_bar_default_item.eo | 5 - src/lib/elementary/efl_ui_tab_page.eo | 6 +- src/lib/elementary/efl_ui_tab_pager.eo| 9 +++-- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/lib/elementary/efl_ui_tab_bar.eo b/src/lib/elementary/efl_ui_tab_bar.eo index b4aabe1197..996a897b98 100644 --- a/src/lib/elementary/efl_ui_tab_bar.eo +++ b/src/lib/elementary/efl_ui_tab_bar.eo @@ -2,7 +2,10 @@ class @beta Efl.Ui.Tab_Bar extends Efl.Ui.Layout_Base implements Efl.Ui.Single_Selectable, Efl.Pack_Linear composite Efl.Pack_Linear, Efl.Pack { - [[Tab Bar class]] + [[A selectable box of items. + + Within one object only one @Efl.Ui.Tab_Bar_Default_Item can be selected at the same time. + ]] methods { } diff --git a/src/lib/elementary/efl_ui_tab_bar_default_item.eo b/src/lib/elementary/efl_ui_tab_bar_default_item.eo index 22034d8957..7feb31d981 100644 --- a/src/lib/elementary/efl_ui_tab_bar_default_item.eo +++ b/src/lib/elementary/efl_ui_tab_bar_default_item.eo @@ -1,6 +1,9 @@ class @beta Efl.Ui.Tab_Bar_Default_Item extends Efl.Ui.Default_Item { - [[ A icon that represents the default parts in the appearance of the tab bar. ]] + [[ A icon that represents the default parts in the appearance of the tab bar. + + Setting the icon again after there was a previous one, will trigger an animation. + ]] methods { @property icon { [[Set the content of the default item as a image. diff --git a/src/lib/elementary/efl_ui_tab_page.eo b/src/lib/elementary/efl_ui_tab_page.eo index d13dde7ac6..4b21dc6241 100644 --- a/src/lib/elementary/efl_ui_tab_page.eo +++ b/src/lib/elementary/efl_ui_tab_page.eo @@ -1,6 +1,10 @@ class @beta Efl.Ui.Tab_Page extends Efl.Ui.Layout_Base implements Efl.Content { - [[Tab Page class]] + [[A holder class for setting up a page in the pager. + + The item assosiated with this page can be used to setup a item which will later be displayed in the @Efl.Ui.Tab_Bar + of the @Efl.Ui.Tab_Pager where this page was added to. + ]] methods { @property tab_bar_item { [[Get this page represented as a @Efl.Ui.Tab_Bar_Default_Item diff --git a/src/lib/elementary/efl_ui_tab_pager.eo b/src/lib/elementary/efl_ui_tab_pager.eo index 9efb40c753..9f4bb42d4f 100644 --- a/src/lib/elementary/efl_ui_tab_pager.eo +++ b/src/lib/elementary/efl_ui_tab_pager.eo @@ -1,13 +1,18 @@ class @beta Efl.Ui.Tab_Pager extends Efl.Ui.Spotlight.Container { - [[Tab Pager class]] + [[Container for @Efl.Ui.Tab_Page + + This container consists out of a Efl.Ui.Tab_Bar and a place to display the content of the pages. + The items that are generated out of the pages will be displayed in the tab bar of this pager. + ]] methods { @property tab_bar { + [[Tab bar where to add items of the @Efl.Ui.Tab_Page into.]] get { } values { -tab_bar: Efl.Canvas.Object; +tab_bar: Efl.Ui.Tab_Bar; [[Tab bar for the items of the @Efl.Ui.Tab_Page]] } } } --
[EGIT] [core/efl] master 05/10: spinner_example: migrate it to efl::ui::spin_button
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=1c916714f0be4a40b6eaa2103912a3d8f7edfeb3 commit 1c916714f0be4a40b6eaa2103912a3d8f7edfeb3 Author: Marcel Hollerbach Date: Thu Aug 1 09:55:05 2019 +0200 spinner_example: migrate it to efl::ui::spin_button we should do that more often, that shows issues. Right now there seems to be an issue with accessors in cxx, something is freeing the accessor twice. So this feature is disabled right now. ref T8100 Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D9471 --- src/examples/elementary/spinner_cxx_example.cc | 91 ++ 1 file changed, 49 insertions(+), 42 deletions(-) diff --git a/src/examples/elementary/spinner_cxx_example.cc b/src/examples/elementary/spinner_cxx_example.cc index 98319c091d..78e1ba381e 100644 --- a/src/examples/elementary/spinner_cxx_example.cc +++ b/src/examples/elementary/spinner_cxx_example.cc @@ -1,19 +1,20 @@ // g++ -g `pkg-config --cflags --libs elementary-cxx efl-cxx eina-cxx eo-cxx ecore-cxx evas-cxx edje-cxx` spinner_cxx_example.cc -o spinner_cxx_example -#define ELM_WIDGET_PROTECTED - +#define EFL_CXXPERIMENTAL +#ifndef EFL_BETA_API_SUPPORT +#define EFL_BETA_API_SUPPORT +#endif #include #include -#warning FIXME: This example requires proper EO API usage (not legacy spinner) - +using namespace std::placeholders; using efl::eo::instantiate; +static efl::ui::Win win; + static void efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED) { -#if 0 - efl::ui::Win win(instantiate); win.text_set("Spinner Example"); win.autohide_set(true); @@ -22,67 +23,73 @@ efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED) efl::ui::Box bx(instantiate, win); win.content_set(bx); - elm::Spinner sp(instantiate, win); + efl::ui::Spin_Button sp(instantiate, win); sp.hint_fill_set(true, false); + sp.range_step_set(1.0); + sp.range_limits_set(0.0, 10.0); + sp.wraparound_set(true); bx.pack_end(sp); - elm::Spinner sp2(instantiate, win); - sp2.label_format_set("Percentage %%%1.2f something"); + efl::ui::Spin_Button sp2(instantiate, win); + sp2.format_string_set("Percentage %%%1.2f something", EFL_UI_FORMAT_STRING_TYPE_SIMPLE); sp2.hint_fill_set(true, false); bx.pack_end(sp2); - elm::Spinner sp3(instantiate, win); - sp3.label_format_set("%1.1f units"); - sp3.step_set(1.5); - sp3.wrap_set(true); - sp3.min_max_set(-50.0, 250.0); + efl::ui::Spin_Button sp3(instantiate, win); + sp3.format_string_set("%1.1f units", EFL_UI_FORMAT_STRING_TYPE_SIMPLE); + sp3.range_step_set(1.5); + sp3.range_limits_set(-50.0, 250.0); sp3.hint_fill_set(true, false); bx.pack_end(sp3); - elm::Spinner sp4(instantiate, win); - sp4.style_set("vertical"); - sp4.interval_set(0.2); + efl::ui::Spin_Button sp4(instantiate, win); + //FIXME setting the style is propetected... + //sp4.style_set("vertical"); + sp4.range_step_set(0.2); sp4.hint_fill_set(true, false); bx.pack_end(sp4); - elm::Spinner sp5(instantiate, win); + efl::ui::Spin_Button sp5(instantiate, win); sp5.editable_set(false); sp5.hint_fill_set(true, false); bx.pack_end(sp5); - elm::Spinner sp6(instantiate, win); + Efl_Ui_Format_Value values[] = { + {1, "January"}, + {2, "February"}, + {3, "March"}, + {4, "April"}, + {5, "May"}, + {6, "June"}, + {7, "July"}, + {8, "August"}, + {9, "September"}, + {10, "October"}, + {11, "November"}, + {12, "December"} + }; + efl::eina::accessor values_acc(EINA_C_ARRAY_ACCESSOR_NEW(values)); + efl::ui::Spin_Button sp6(instantiate, win); sp6.editable_set(false); - sp6.min_max_set(1, 12); - sp6.special_value_add(1, "January"); - sp6.special_value_add(2, "February"); - sp6.special_value_add(3, "March"); - sp6.special_value_add(4, "April"); - sp6.special_value_add(5, "May"); - sp6.special_value_add(6, "June"); - sp6.special_value_add(7, "July"); - sp6.special_value_add(8, "August"); - sp6.special_value_add(9, "September"); - sp6.special_value_add(10, "October"); - sp6.special_value_add(11, "November"); - sp6.special_value_add(12, "December"); + sp6.range_limits_set(1, 12); + //sp6.format_values_set(values_acc); sp6.hint_fill_set(true, false); bx.pack_end(sp6); - elm::Spinner sp7(instantiate, win); + efl::ui::Spin_Button sp7(instantiate, win); sp7.hint_fill_set(true, false); bx.pack_end(sp7); sp7.editable_set(true); - auto changed = std::bind([] (elm::Spinner ) - { std::cout << "Value changed to " << spinner.value_get() << std::endl; }, - std::placeholders::_1); - efl::eolian::event_add(elm::Spinner::changed_event, sp7, changed); + auto changed = std::bind ( [] (efl::ui::Range_Display obj) + { std::cout << "Changed to " << obj.range_value_get() << std::endl; } +
[EGIT] [core/efl] master 01/01: edje: fix warning for returning wrong type.
zmike pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7248812a5155281cfcc3ea9a807734fa5129c63f commit 7248812a5155281cfcc3ea9a807734fa5129c63f Author: Cedric BAIL Date: Fri Aug 9 08:43:18 2019 -0400 edje: fix warning for returning wrong type. Reviewers: zmike Reviewed By: zmike Subscribers: segfaultxavi, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9530 --- src/lib/edje/edje_util.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c index 4e3cdba15d..ec6b841985 100644 --- a/src/lib/edje/edje_util.c +++ b/src/lib/edje/edje_util.c @@ -3612,7 +3612,7 @@ _efl_canvas_layout_efl_layout_calc_calc_force(Eo *obj EINA_UNUSED, Edje *ed) _edje_util_freeze_val = pf2; } -EOLIAN Eina_Rectangle +EOLIAN Eina_Rect _efl_canvas_layout_efl_layout_calc_calc_parts_extends(Eo *obj EINA_UNUSED, Edje *ed) { Evas_Coord xx1 = INT_MAX, yy1 = INT_MAX; @@ -3649,7 +3649,7 @@ _efl_canvas_layout_efl_layout_calc_calc_parts_extends(Eo *obj EINA_UNUSED, Edje if ((xx2 - xx1) > 0) w = xx2 - xx1; if ((yy2 - yy1) > 0) h = yy2 - yy1; - return (Eina_Rectangle) { xx1, yy1, w, h }; + return (Eina_Rect) { (Eina_Rectangle) { xx1, yy1, w, h } }; } EOLIAN Eina_Size2D --
[EGIT] [core/enlightenment] master 18/19: wl input - use eina mkstemp to handle umask right
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c1f73110acc1c13fd8e9117f4d9b965d73d13c09 commit c1f73110acc1c13fd8e9117f4d9b965d73d13c09 Author: Carsten Haitzler (Rasterman) Date: Tue Aug 6 19:58:26 2019 +0100 wl input - use eina mkstemp to handle umask right fix CID 1403927 --- src/bin/e_comp_wl_input.c | 10 -- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/bin/e_comp_wl_input.c b/src/bin/e_comp_wl_input.c index 1f4a9ede9..8f89f6d14 100644 --- a/src/bin/e_comp_wl_input.c +++ b/src/bin/e_comp_wl_input.c @@ -324,6 +324,7 @@ _e_comp_wl_input_keymap_fd_get(void) char tmp[PATH_MAX]; long flags; void *mm; + Eina_Tmpstr *tmpstr = NULL; blen = sizeof(tmp) - 1; @@ -339,28 +340,33 @@ _e_comp_wl_input_keymap_fd_get(void) else return -1; - if ((fd = mkstemp(tmp)) < 0) return -1; + if ((fd = eina_file_mkstemp(tmp, )) < 0) return -1; flags = fcntl(fd, F_GETFD); if (flags < 0) { +eina_tmpstr_del(tmpstr); close(fd); return -1; } if (fcntl(fd, F_SETFD, (flags | FD_CLOEXEC)) == -1) { +eina_tmpstr_del(tmpstr); close(fd); return -1; } if (ftruncate(fd, e_comp_wl->xkb.map_size) < 0) { +eina_tmpstr_del(tmpstr); close(fd); return -1; } - unlink(tmp); + unlink(tmpstr); + eina_tmpstr_del(tmpstr); + mm = mmap(NULL, e_comp_wl->xkb.map_size, (PROT_READ | PROT_WRITE), MAP_SHARED, fd, 0); if (mm == MAP_FAILED) --
[EGIT] [core/efl] master 05/09: tests/elm: add helper function for clicking at specified coords
bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f8dcb7dc2b8dad636989e988d53f81e705a1718c commit f8dcb7dc2b8dad636989e988d53f81e705a1718c Author: Mike Blumenkrantz Date: Mon Aug 5 13:53:03 2019 -0400 tests/elm: add helper function for clicking at specified coords Reviewed-by: Marcel Hollerbach Differential Revision: https://phab.enlightenment.org/D9505 --- src/tests/elementary/suite_helpers.c | 9 + src/tests/elementary/suite_helpers.h | 1 + 2 files changed, 10 insertions(+) diff --git a/src/tests/elementary/suite_helpers.c b/src/tests/elementary/suite_helpers.c index e4d7e1b45f..ff5530a93f 100644 --- a/src/tests/elementary/suite_helpers.c +++ b/src/tests/elementary/suite_helpers.c @@ -465,3 +465,12 @@ event_callback_that_is_called_exactly_one_time_and_sets_a_single_int_data_pointe ck_assert_int_eq(*called, 0); *called = 1; } + +void +click_object_at(Eo *obj, int x, int y) +{ + Evas *e = evas_object_evas_get(obj); + evas_event_feed_mouse_move(e, x, y, 0, NULL); + evas_event_feed_mouse_down(e, 1, 0, 0, NULL); + evas_event_feed_mouse_up(e, 1, 0, 0, NULL); +} diff --git a/src/tests/elementary/suite_helpers.h b/src/tests/elementary/suite_helpers.h index f1e01d70db..0dc3944173 100644 --- a/src/tests/elementary/suite_helpers.h +++ b/src/tests/elementary/suite_helpers.h @@ -13,5 +13,6 @@ void fail_on_errors_setup(void); void get_me_to_those_events(Eo *obj); void click_object(Eo *obj); void click_part(Eo *obj, const char *part); +void click_object_at(Eo *obj, int x, int y); void event_callback_that_is_called_exactly_one_time_and_sets_a_single_int_data_pointer_when_called(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED); #endif --
[EGIT] [core/efl] master 02/06: tests/elm: move efl_config tests to efl_ui_suite
bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b1986363dbe46202cd46216af7e013c2f26ff098 commit b1986363dbe46202cd46216af7e013c2f26ff098 Author: Mike Blumenkrantz Date: Mon Jul 22 13:00:45 2019 -0400 tests/elm: move efl_config tests to efl_ui_suite these invoke non-legacy codepaths which should never be triggered during legacy unit tests Reviewed-by: Marcel Hollerbach Differential Revision: https://phab.enlightenment.org/D9403 --- src/tests/elementary/efl_ui_suite.c| 1 + src/tests/elementary/efl_ui_suite.h| 1 + .../{elm_test_config.c => efl_ui_test_config.c}| 14 +- src/tests/elementary/elm_test_config.c | 207 + src/tests/elementary/meson.build | 1 + 5 files changed, 12 insertions(+), 212 deletions(-) diff --git a/src/tests/elementary/efl_ui_suite.c b/src/tests/elementary/efl_ui_suite.c index 3478095936..707f450939 100644 --- a/src/tests/elementary/efl_ui_suite.c +++ b/src/tests/elementary/efl_ui_suite.c @@ -11,6 +11,7 @@ static const Efl_Test_Case etc[] = { //{ "elm_widget_focus", elm_test_widget_focus}, { "efl_ui_atspi", efl_ui_test_atspi}, { "efl_ui_callback", efl_ui_test_callback}, + { "efl_ui_config", efl_ui_test_config}, { "efl_ui_focus", efl_ui_test_focus}, { "efl_ui_focus_sub", efl_ui_test_focus_sub}, { "efl_ui_box", efl_ui_test_box}, diff --git a/src/tests/elementary/efl_ui_suite.h b/src/tests/elementary/efl_ui_suite.h index 16170efde1..a2ad7945f7 100644 --- a/src/tests/elementary/efl_ui_suite.h +++ b/src/tests/elementary/efl_ui_suite.h @@ -46,6 +46,7 @@ void efl_ui_test_spin_button(TCase *tc); void efl_ui_test_item_container(TCase *tc); void efl_ui_test_list_container(TCase *tc); void efl_ui_test_grid_container(TCase *tc); +void efl_ui_test_config(TCase *tc); void loop_timer_interval_set(Eo *obj, double in); diff --git a/src/tests/elementary/elm_test_config.c b/src/tests/elementary/efl_ui_test_config.c similarity index 96% copy from src/tests/elementary/elm_test_config.c copy to src/tests/elementary/efl_ui_test_config.c index c6745c16a8..40d0415bc9 100644 --- a/src/tests/elementary/elm_test_config.c +++ b/src/tests/elementary/efl_ui_test_config.c @@ -10,7 +10,7 @@ #include typedef unsigned int uint; -EFL_START_TEST(elm_config_eoapi) +EFL_START_TEST(efl_config_eoapi) { Eo *cfg = efl_provider_find(efl_main_loop_get(), EFL_CONFIG_INTERFACE); fail_if(!cfg); @@ -145,7 +145,7 @@ EFL_START_TEST(elm_config_eoapi) } EFL_END_TEST -EFL_START_TEST(elm_config_win) +EFL_START_TEST(efl_config_win) { Eo *cfg = efl_provider_find(efl_main_loop_get(), EFL_CONFIG_INTERFACE); fail_if(!cfg); @@ -174,7 +174,7 @@ _eina_list_string_has(const Eina_List *list, const char *str) return EINA_FALSE; } -EFL_START_TEST(elm_config_profiles) +EFL_START_TEST(efl_config_profiles) { // this only tests some of the profile APIs. we're not going to mess with // the global config during make check :) @@ -222,9 +222,9 @@ EFL_START_TEST(elm_config_profiles) } EFL_END_TEST -void elm_test_config(TCase *tc) +void efl_ui_test_config(TCase *tc) { - tcase_add_test(tc, elm_config_eoapi); - tcase_add_test(tc, elm_config_win); - tcase_add_test(tc, elm_config_profiles); + tcase_add_test(tc, efl_config_eoapi); + tcase_add_test(tc, efl_config_win); + tcase_add_test(tc, efl_config_profiles); } diff --git a/src/tests/elementary/elm_test_config.c b/src/tests/elementary/elm_test_config.c index c6745c16a8..08cd12ed62 100644 --- a/src/tests/elementary/elm_test_config.c +++ b/src/tests/elementary/elm_test_config.c @@ -2,229 +2,26 @@ # include "elementary_config.h" #endif -#define EFL_ACCESS_OBJECT_PROTECTED -#include #include #include "elm_suite.h" -#include -typedef unsigned int uint; - -EFL_START_TEST(elm_config_eoapi) -{ - Eo *cfg = efl_provider_find(efl_main_loop_get(), EFL_CONFIG_INTERFACE); - fail_if(!cfg); - -#define CONFIG_CHK(opt, typ, val) do { \ - typ old = elm_config_ ## opt ## _get(); \ - fail_if(old != efl_config_ ## typ ## _get(cfg, #opt)); \ - fail_if(!efl_config_ ## typ ## _set(cfg, #opt, val)); \ - fail_if(elm_config_ ## opt ## _get() != val); \ - fail_if(efl_config_ ## typ ## _get(cfg, #opt) != val); \ - } while (0) - -#define CONFIG_CHKB(opt, val) CONFIG_CHK(opt, bool, val) -#define CONFIG_CHKI(opt, val) CONFIG_CHK(opt, int, val) -#define CONFIG_CHKD(opt, val) CONFIG_CHK(opt, double, val) - - // note: leaks badly -#define CONFIG_CHKS(opt, val) do { \ - const char *old = elm_config_ ## opt ## _get(); \ - fail_if(!eina_streq(old, efl_config_string_get(cfg, #opt))); \ - fail_if(!efl_config_string_set(cfg, #opt, val)); \ - fail_if(!eina_streq(elm_config_ ## opt ## _get(), val)); \ - fail_if(!eina_streq(efl_config_string_get(cfg, #opt), val)); \ - } while (0) - -#define CONFIG_CHKE(opt, ival, sval) do { \ - elm_config_ ## opt ##
[EGIT] [core/enlightenment] master 10/19: e sys l2ping - report errors on fcntl failure
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=e41d5e11bb85da8372970628e6da588b3d210501 commit e41d5e11bb85da8372970628e6da588b3d210501 Author: Carsten Haitzler (Rasterman) Date: Tue Aug 6 18:55:28 2019 +0100 e sys l2ping - report errors on fcntl failure fix CID 1403933 --- src/bin/e_sys_l2ping.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/bin/e_sys_l2ping.c b/src/bin/e_sys_l2ping.c index d467424ed..4805f8171 100644 --- a/src/bin/e_sys_l2ping.c +++ b/src/bin/e_sys_l2ping.c @@ -49,7 +49,10 @@ e_sys_l2ping(const char *bluetooth_mac, int timeout_ms) return -1; } - fcntl(fd, F_SETFL, O_NONBLOCK); + if (fcntl(fd, F_SETFL, O_NONBLOCK) != 0) + { +perror("Can't set socket to non-blocking... continue"); + } // Connect to remote device memset(, 0, sizeof(addr)); --
[EGIT] [core/efl] master 02/02: pyolian: Update after event and binbuf keywords
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3edffc0c73d4285c9b4d9521b3c882fbc01d1687 commit 3edffc0c73d4285c9b4d9521b3c882fbc01d1687 Author: Lauro Moura Date: Wed Aug 28 10:21:18 2019 +0200 pyolian: Update after event and binbuf keywords Reviewers: q66, DaveMDS Reviewed By: q66 Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9626 --- src/scripts/pyolian/eolian.py | 14 -- 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/scripts/pyolian/eolian.py b/src/scripts/pyolian/eolian.py index 8ec4716a67..22e84e556f 100644 --- a/src/scripts/pyolian/eolian.py +++ b/src/scripts/pyolian/eolian.py @@ -131,14 +131,16 @@ class Eolian_Type_Builtin_Type(IntEnum): ANY_VALUE = 40 ANY_VALUE_PTR = 41 +BINBUF = 42 +EVENT = 43 -MSTRING = 42 -STRING = 43 -STRINGSHARE = 44 -STRBUF = 45 +MSTRING = 44 +STRING = 45 +STRINGSHARE = 46 +STRBUF = 47 -VOID_PTR = 46 -FREE_CB = 47 +VOID_PTR = 48 +FREE_CB = 49 class Eolian_C_Type_Type(IntEnum): DEFAULT = 0 --
[EGIT] [core/efl] master 03/08: elm_test: add option for running all tests on startup
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7f2ce2f99a345d4b3b667755db1d73f7db213f03 commit 7f2ce2f99a345d4b3b667755db1d73f7db213f03 Author: Mike Blumenkrantz Date: Wed Jul 24 16:19:26 2019 -0400 elm_test: add option for running all tests on startup this is useful for doing quick testing when making invasive changes that affect a large number of widgets, such as rewriting all sizing calc code Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D9407 --- src/bin/elementary/test.c | 4 1 file changed, 4 insertions(+) diff --git a/src/bin/elementary/test.c b/src/bin/elementary/test.c index adae27b52c..f4400695e5 100644 --- a/src/bin/elementary/test.c +++ b/src/bin/elementary/test.c @@ -409,6 +409,7 @@ static void *tt; static Eina_List *tests, *cur_test;; static Eina_Bool hide_legacy = EINA_FALSE; static Eina_Bool hide_beta = EINA_FALSE; +static Eina_Bool all_tests = EINA_FALSE; struct elm_test { @@ -580,6 +581,7 @@ _menu_create(const char *option_str) } pcat = t->category; if (t == tt) tt = cfr; +if (all_tests) t->cb(NULL, NULL, NULL); } } @@ -1444,6 +1446,8 @@ efl_main(void *data EINA_UNUSED, { test_win_only = EINA_TRUE; } + else if (eina_streq(arg, "--all") || eina_streq(arg, "-a")) + all_tests = EINA_TRUE; else if ((i == eina_array_count(arge->argv) - 1) && (arg[0] != '-')) autorun = arg; --
[EGIT] [core/enlightenment] master 03/04: every - ensure all structs are zeroed out
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=b88138cacb87a4508aa73c73f834684d171fddce commit b88138cacb87a4508aa73c73f834684d171fddce Author: Carsten Haitzler (Rasterman) Date: Wed Jul 31 11:48:03 2019 +0100 every - ensure all structs are zeroed out valgrind spotted this, so fix. --- src/modules/everything/evry.c | 2 +- src/modules/everything/evry_plug_apps.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/everything/evry.c b/src/modules/everything/evry.c index 80eecdcdd..b1a516a21 100644 --- a/src/modules/everything/evry.c +++ b/src/modules/everything/evry.c @@ -1512,7 +1512,7 @@ _evry_state_new(Evry_Selector *sel, Eina_List *plugins) if (!s) return NULL; - s->inp = malloc(INPUTLEN); + s->inp = calloc(1, INPUTLEN); s->inp[0] = 0; s->input = s->inp; s->plugins = plugins; diff --git a/src/modules/everything/evry_plug_apps.c b/src/modules/everything/evry_plug_apps.c index 0ab6dc2b3..3130a034c 100644 --- a/src/modules/everything/evry_plug_apps.c +++ b/src/modules/everything/evry_plug_apps.c @@ -1548,7 +1548,7 @@ _scan_idler(void *data EINA_UNUSED) EINA_LIST_FREE(exe_files, s) { - ee = malloc(sizeof(E_Exe)); + ee = calloc(1, sizeof(E_Exe)); if (!ee) continue ; ee->path = s; --
[EGIT] [core/efl] master 11/14: eina file - don't double unlock a lock
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=807c8e735761a950774fe70611778bcd97b655e3 commit 807c8e735761a950774fe70611778bcd97b655e3 Author: Carsten Haitzler (Rasterman) Date: Sat Aug 10 23:27:24 2019 +0100 eina file - don't double unlock a lock thanks to coverity - found this double unlock path in case of error. fix CID 1403899 --- src/lib/eina/eina_file.c | 5 + 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/lib/eina/eina_file.c b/src/lib/eina/eina_file.c index e334beaf21..f4d0e7221c 100644 --- a/src/lib/eina/eina_file.c +++ b/src/lib/eina/eina_file.c @@ -846,10 +846,7 @@ eina_file_open(const char *path, Eina_Bool shared) { n = malloc(sizeof(Eina_File)); if (!n) - { - eina_lock_release(&_eina_file_lock_cache); - goto on_error; - } + goto on_error; memset(n, 0, sizeof(Eina_File)); n->filename = filename; --
[EGIT] [core/efl] master 01/02: tests/ecore_wl2: Add test for ecore_wl2_input_keymap_get
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=2c4b26ef4eb1afef114d461361e6ef767286e70e commit 2c4b26ef4eb1afef114d461361e6ef767286e70e Author: Christopher Michael Date: Thu Aug 1 08:59:26 2019 -0400 tests/ecore_wl2: Add test for ecore_wl2_input_keymap_get ref T8016 --- src/tests/ecore_wl2/ecore_wl2_test_input.c | 22 ++ 1 file changed, 22 insertions(+) diff --git a/src/tests/ecore_wl2/ecore_wl2_test_input.c b/src/tests/ecore_wl2/ecore_wl2_test_input.c index 479b1d385c..fd422e09e5 100644 --- a/src/tests/ecore_wl2/ecore_wl2_test_input.c +++ b/src/tests/ecore_wl2/ecore_wl2_test_input.c @@ -88,6 +88,27 @@ EFL_START_TEST(wl2_input_display_get) } EFL_END_TEST +EFL_START_TEST(wl2_input_keymap_get) +{ + Ecore_Wl2_Display *disp; + Ecore_Wl2_Input *input; + Eina_Iterator *itr; + + disp = _display_connect(); + ck_assert(disp != NULL); + + itr = ecore_wl2_display_inputs_get(disp); + ck_assert(itr != NULL); + + EINA_ITERATOR_FOREACH(itr, input) + { +ck_assert(ecore_wl2_input_keymap_get(input) != NULL); + } + + eina_iterator_free(itr); +} +EFL_END_TEST + void ecore_wl2_test_input(TCase *tc) { @@ -96,5 +117,6 @@ ecore_wl2_test_input(TCase *tc) tcase_add_test(tc, wl2_input_seat_get); tcase_add_test(tc, wl2_input_seat_id_get); tcase_add_test(tc, wl2_input_display_get); +tcase_add_test(tc, wl2_input_keymap_get); } } --
[EGIT] [core/efl] master 01/01: elm/config: avoid unnecessary elm cache flush
zmike pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=10b2f65e606594616abc1acf2dd9db1277ed145c commit 10b2f65e606594616abc1acf2dd9db1277ed145c Author: subhransu mohanty Date: Thu Aug 22 08:14:13 2019 -0400 elm/config: avoid unnecessary elm cache flush Summary: in config_apply() we load the deafult theme and then elm_recache() just throws it away. so just move it before config_apply for time being. We need to revisit to check if we really need that elm_recache() in that function or not. Reviewers: Hermet, raster, cedric, zmike Reviewed By: zmike Subscribers: zmike, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9700 --- src/lib/elementary/elm_config.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib/elementary/elm_config.c b/src/lib/elementary/elm_config.c index 5344f6681a..5624f0b125 100644 --- a/src/lib/elementary/elm_config.c +++ b/src/lib/elementary/elm_config.c @@ -2033,6 +2033,7 @@ _config_flush_get(void) _elm_config->is_mirrored = is_mirrored; _elm_config->translate = translate; + _elm_recache(); _config_apply(); _config_sub_apply(); evas_font_reinit(); @@ -2040,7 +2041,6 @@ _config_flush_get(void) _elm_config_color_overlay_apply(); if (pre_scale != _elm_config->scale) _elm_rescale(); - _elm_recache(); _elm_old_clouseau_reload(); _elm_config_key_binding_hash(); _elm_win_access(_elm_config->access_mode); @@ -4218,10 +4218,10 @@ _elm_config_init(void) ELM_SAFE_FREE(_elm_accel_preference, eina_stringshare_del); ELM_SAFE_FREE(_elm_gl_preference, eina_stringshare_del); _translation_init(); + _elm_recache(); _config_apply(); _elm_config_font_overlay_apply(); _elm_config_color_overlay_apply(); - _elm_recache(); _elm_old_clouseau_reload(); _elm_config_key_binding_hash(); } @@ -4402,6 +4402,7 @@ _elm_config_reload(void) _elm_config->is_mirrored = is_mirrored; _elm_config->translate = translate; + _elm_recache(); _config_apply(); _elm_config_font_overlay_apply(); _elm_config_color_overlay_apply(); @@ -4426,7 +4427,6 @@ _elm_config_reload(void) ) _elm_rescale(); #undef CMP - _elm_recache(); _elm_old_clouseau_reload(); _elm_config_key_binding_hash(); ecore_event_add(ELM_EVENT_CONFIG_ALL_CHANGED, NULL, NULL, NULL); @@ -4703,11 +4703,11 @@ _elm_config_profile_set(const char *profile) _elm_config->is_mirrored = is_mirrored; _elm_config->translate = translate; + _elm_recache(); _config_apply(); _elm_config_font_overlay_apply(); _elm_config_color_overlay_apply(); _elm_rescale(); - _elm_recache(); _elm_old_clouseau_reload(); _elm_config_key_binding_hash(); } --
[EGIT] [core/enlightenment] master 13/19: wl drag start - check source ptr consistently
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c9356a3f8c7bbf674cb25f721d2082586b56077a commit c9356a3f8c7bbf674cb25f721d2082586b56077a Author: Carsten Haitzler (Rasterman) Date: Tue Aug 6 19:11:24 2019 +0100 wl drag start - check source ptr consistently fix CID 1403926 --- src/bin/e_comp_wl_data.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/bin/e_comp_wl_data.c b/src/bin/e_comp_wl_data.c index bb430a81e..370d92a88 100644 --- a/src/bin/e_comp_wl_data.c +++ b/src/bin/e_comp_wl_data.c @@ -488,10 +488,11 @@ _e_comp_wl_data_device_selection_set(void *data EINA_UNUSED, E_Comp_Wl_Data_Sour sel_source = (E_Comp_Wl_Data_Source *)e_comp_wl->selection.data_source; if (sel_source && (e_comp_wl->selection.serial - serial < UINT32_MAX / 2)) { -if (!serial) +if ((source) && (!serial)) { /* drm canvas will always have serial 0 */ pid_t pid; + wl_client_get_credentials(wl_resource_get_client(source->resource), , NULL, NULL); if (pid != getpid()) return; } @@ -509,7 +510,8 @@ _e_comp_wl_data_device_selection_set(void *data EINA_UNUSED, E_Comp_Wl_Data_Sour e_comp_wl->selection.data_source = sel_source = source; e_comp_wl->clipboard.xwl_owner = 0; - source->serial = e_comp_wl->selection.serial = serial; + e_comp_wl->selection.serial = serial; + if (source) source->serial = serial; if (e_comp_wl->kbd.enabled) focus = e_comp_wl->kbd.focus; --