[EGIT] [core/enlightenment] master 01/01: ok - make pwople who \have not stared at c macros as long as i have happy
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=cec35867df61caa1c489907b0664bf961cab11f8 commit cec35867df61caa1c489907b0664bf961cab11f8 Author: Carsten Haitzler (Rasterman)Date: Thu Aug 18 14:34:15 2016 +0900 ok - make pwople who \have not stared at c macros as long as i have happy make it just {} instea dof do {} while (0) - as it seems that people dont get confused by macros having this but do get confused when its in code used as and indenter. --- src/bin/e_askpass_main.c | 46 +++--- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/bin/e_askpass_main.c b/src/bin/e_askpass_main.c index 8cf169e..67b7856 100644 --- a/src/bin/e_askpass_main.c +++ b/src/bin/e_askpass_main.c @@ -33,7 +33,7 @@ cb_cancel(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info } EAPI int -elm_main(int argc, char **argv) +elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED) { Evas_Object *win, *bx, *fr, *lab, *en, *sep, *bx2, *bt; @@ -44,34 +44,34 @@ elm_main(int argc, char **argv) elm_app_compile_data_dir_set(PACKAGE_DATA_DIR); elm_app_info_set(elm_main, "enlightenment", "AUTHORS"); - do { + { win = elm_win_util_standard_add("main", TITLE); elm_win_autodel_set(win, EINA_TRUE); - do { + { bx = elm_box_add(win); elm_box_horizontal_set(bx, EINA_FALSE); evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_win_resize_object_add(win, bx); - do { + { fr = elm_frame_add(win); evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_style_set(fr, PAD); elm_box_pack_end(bx, fr); -do { +{ lab = elm_label_add(win); evas_object_size_hint_align_set(lab, EVAS_HINT_FILL, 0.5); elm_object_text_set(lab, TEXT); elm_object_content_set(fr, lab); evas_object_show(lab); -} while (0); +} evas_object_show(fr); - } while (0); - do { + } + { fr = elm_frame_add(win); evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_style_set(fr, PAD); elm_box_pack_end(bx, fr); -do { +{ en = elm_entry_add(win); entry = en; elm_entry_scrollable_set(en, EINA_TRUE); @@ -86,53 +86,53 @@ elm_main(int argc, char **argv) elm_object_content_set(fr, en); evas_object_show(en); elm_object_focus_set(en, EINA_TRUE); -} while (0); +} evas_object_show(fr); - } while (0); - do { + } + { sep = elm_separator_add(win); elm_separator_horizontal_set(sep, EINA_TRUE); evas_object_size_hint_weight_set(sep, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(sep, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_box_pack_end(bx, sep); evas_object_show(sep); - } while (0); - do { + } + { fr = elm_frame_add(win); evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_style_set(fr, PAD); elm_box_pack_end(bx, fr); -do { +{ bx2 = elm_box_add(win); elm_box_horizontal_set(bx2, EINA_TRUE); elm_box_homogeneous_set(bx2, EINA_TRUE); evas_object_size_hint_align_set(bx2, 0.5, 0.5); elm_object_content_set(fr, bx2); - do { + { bt = elm_button_add(win); elm_object_text_set(bt, OK); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_smart_callback_add(bt, "clicked", cb_ok, NULL); elm_box_pack_end(bx2, bt); evas_object_show(bt); - } while (0); - do { + } + { bt = elm_button_add(win); elm_object_text_set(bt, CANCEL); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_smart_callback_add(bt, "clicked", cb_cancel, NULL); elm_box_pack_end(bx2, bt); evas_object_show(bt); - } while (0); + } evas_object_show(bx2); -} while (0); +} evas_object_show(fr); - } while (0); + } evas_object_show(bx); - } while (0); + } elm_win_center(win,
Re: [E-devel] efl-io interfaces WIP
Hi all, Updated my branch with a properly working Efl.Io and an initial Efl.Net covering TCP client and server. https://git.enlightenment.org/core/efl.git/log/?h=devs/barbieri/efl-io-interfaces The TCP is far from complete if you compare with existing ecore_con, not to say the other missing protocols (UDP, Unix Local...), but the idea is there and I'd like you to review at least the .eo to check out the usage, names and so on. There you can see I'm taking the advice to avoid "flags" and "enums", using specific properties for classes that can use them, like Efl.Net.Socket.Tcp is the only providing "no_delay", "cork" and "keep_alive" properties. OTOH all filedescriptors will do "close_exec". "non_block" isn't there yet, likely I'll add these to Efl.Io.Reader.Fd and Efl.Io.Writer.Fd, thus being accessible by Efl.Net.Socket. I'm also thinking about "auto_close" for Efl.Io.Closer, so objects can be told to automatically close if they were deleted. With the current API a "netcat" is trivial, as is an "echo" server. Still not so trivial is to do interactive chats where you send a command, wait for an answer, then send something else. I'll cover these later as in my plan/roadmap is to finish Efl.Network.Url, which I plan to move to these new interfaces... fortunately HTTP is not a chat-like protocol... at least at the high-level when using cURL :-) but it's much more complex and well defined than a simple TCP socket, so it may expose some some needs/failures which will be reviewed. Once the Efl.Network.Url is okay, I'll be back to TCP/UDP/UNIX/SSL and replace most of my code with pieces of ecore_con.c (it was too tied to old design to be used as-is, so needs more effort). This will include an asynchronous name resolution (similar to ecore_con_info) and connect. As a final note, these are using the Eina_Slice/Eina_Rw_Slice and Eina_Error-returns as discussed in other threads, but I'm taking them as temporary/under-review. So far they're working well, but shall the consensus be to change, I'll do that before 1.19 release. On Tue, Aug 16, 2016 at 1:14 AM, Gustavo Sverzut Barbieriwrote: > And finally it works! > > https://git.enlightenment.org/core/efl.git/log/?h=devs/barbieri/efl-io-interfaces > > you can see the example is able to transparently copy from stdin to > stdout/stderr, it can copy to/from files... without any special code > in the example itself. > > That is, when I add Efl.Net, we can copy to/from some socket, be it > TCP, UDP or even an URL created with libcurl as backend. > > Raster, take a look and see that the events you want, such as "data" > (analogous to ECORE_CON_*_DATA events) or "line" are emitted there. > This is particularly interesting for ease of use, debug and support of > legacy APIs. > > > On Mon, Aug 15, 2016 at 2:35 AM, Gustavo Sverzut Barbieri > wrote: >> Hi all, >> >> Updated with more details, Efl.Io.Copier and Efl.Io.File are mostly >> done (although untested -- will focus on these tomorrow). I should add >> some simple subclasses from these Efl.Io to help testing, like Stdin, >> Stdout, Stderr, Null (/dev/null-like) and Zero (/dev/zero-like). >> >> As you can see in Efl.Io.Copier, it's the one doing "data" events like >> Ecore_Con and Ecore_Con_URL did, but in a general way so whatever >> implements the Efl.Io.Reader interface could do those (my plan is to >> use a discard output like Efl.Io.Null to get the same effect). It is >> doing line-buffered output as well, with configurable multibyte binary >> delimiter. >> >> >> >> On Sat, Aug 13, 2016 at 5:05 AM, Gustavo Sverzut Barbieri >> wrote: >>> Hi all, >>> >>> Following the discussions from Eina_Slice and Efl.Io interfaces, I've >>> started to code as you can see at: >>> >>> >>> https://git.enlightenment.org/core/efl.git/log/?h=devs/barbieri/efl-io-interfaces >>> >>> I'll keep following with my preferences of Eina_Slice (instead of >>> Eina_Binbuf) and fine-grained Efl.Io.* interfaces (instead of a single >>> one that does all operations). It's a bit more work, but it's easier >>> to sed & fix compiler errors if we decide to go in the other >>> direction. >>> >>> The code compiles, but I did not test the new objects yet. With the >>> existing code (if it works) it would fulfill memory<->file cases. >>> >>> Then it would be a matter of adding Efl.Net.Socket based on >>> Efl.Io.*.Fd that makes sense (ie: reader, writer, closer). It would be >>> about implementing finalize for Dialers (or an explicit connect() as >>> requested by raster). >>> >>> For Efl.Net.Http.Client (ecore_con_url), it would also expose Efl.Io.* >>> interfaces, but since cURL handles the actual fd, it would not be >>> based on Efl.Io.*.Fd. But to the end user, the expected reader, >>> writer, closer will all work like expected, being able to use >>> Efl.Io.Copier on them to download/upload stuff to/from files or >>> memory. >>> >>> BR, >>> >>> -- >>> Gustavo Sverzut Barbieri >>>
[EGIT] [core/efl] master 02/02: ejde - fix recalc single min n edje for h eval
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4be972c41ce956b08bd367a02dfc638766fc380f commit 4be972c41ce956b08bd367a02dfc638766fc380f Author: Carsten Haitzler (Rasterman)Date: Thu Aug 18 14:19:25 2016 +0900 ejde - fix recalc single min n edje for h eval this fixes a seemingly small typo that would only turn up with fixed point, but not floats as we have by default whwere we had x = 999; instead of x = FROM_INT(999); shouldn't be visibule unless you disable float support and use fixed point in edje. --- src/lib/edje/edje_calc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c index bb717c2..c5e07c1 100644 --- a/src/lib/edje/edje_calc.c +++ b/src/lib/edje/edje_calc.c @@ -1949,7 +1949,7 @@ _edje_part_recalc_single_min(Edje_Part_Description_Common *desc, FLOAT_T h; w = params->eval.w ? params->eval.w : FROM_INT(9); - h = params->eval.h ? params->eval.h : 9; + h = params->eval.h ? params->eval.h : FROM_INT(9); switch (aspect) { --
[EGIT] [core/efl] master 01/02: edje - solve crash issues brought on by optimization of edje mem usage
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6f9f361f3eae85b03d29af734d72bdb87df8ed88 commit 6f9f361f3eae85b03d29af734d72bdb87df8ed88 Author: Carsten Haitzler (Rasterman)Date: Thu Aug 18 14:18:06 2016 +0900 edje - solve crash issues brought on by optimization of edje mem usage this solves a crash brought on by 1d6a58cfc9f3bbe821eb04150e2b1e0ede7b32eb that optimized mem usage but seems to have created issues in empc. fixes T4382 --- src/lib/edje/edje_calc.c | 83 +--- 1 file changed, 22 insertions(+), 61 deletions(-) diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c index 24a9c55..bb717c2 100644 --- a/src/lib/edje/edje_calc.c +++ b/src/lib/edje/edje_calc.c @@ -103,11 +103,13 @@ _edje_calc_params_clear(Edje_Calc_Params *p) // handle cow stuff in one place if (p->ext) { +#ifdef EDJE_CALC_CACHE eina_cow_free(_edje_calc_params_map_cow, (const Eina_Cow_Data **)&(p->ext->map)); p->ext->map = NULL; -#ifdef HAVE_EPHYSICS +# ifdef HAVE_EPHYSICS eina_cow_free(_edje_calc_params_physics_cow, (const Eina_Cow_Data **)&(p->ext->physics)); p->ext->physics = NULL; +# endif #endif free(p->ext); p->ext = NULL; @@ -3891,8 +3893,23 @@ _circular_dependency_find(Edje *ed, Edje_Real_Part *ep, Edje_Real_Part *cep, Ein static void _edje_part_calc_params_memcpy(Edje_Calc_Params *p, Edje_Calc_Params *s, Edje_Part_Type t) { - if (p->type.common) free(p->type.common); + _edje_calc_params_clear(p); memcpy(p, s, sizeof(Edje_Calc_Params)); + if (s->ext) + { +p->ext = NULL; +_edje_calc_params_need_ext(p); +#ifdef EDJE_CALC_CACHE +eina_cow_memcpy(_edje_calc_params_map_cow, +(const Eina_Cow_Data **)&(p->ext->map), +s->ext->map); +# ifdef HAVE_EPHYSICS +eina_cow_memcpy(_edje_calc_params_physics_cow, +(const Eina_Cow_Data **)&(p->ext->physics), +s->ext->physics); +# endif +#endif + } switch (t) { case EDJE_PART_TYPE_IMAGE: @@ -3966,7 +3983,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta Edje_Real_Part *confine_to = NULL; Edje_Real_Part *threshold = NULL; FLOAT_T pos = ZERO, pos2; - Edje_Calc_Params lp3; + Edje_Calc_Params lp3 = { 0 }; Evas_Coord mmw = 0, mmh = 0; Eina_Bool map_colors_free = EINA_FALSE; @@ -4325,36 +4342,8 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta if (ep->current) { - Eina_Bool needext = EINA_FALSE; - const Edje_Calc_Params_Map *map; -#ifdef HAVE_EPHYSICS - const Edje_Calc_Params_Physics *physics; -#endif - - if (p1->ext) - { - needext = EINA_TRUE; - map = p1->ext->map; -#ifdef HAVE_EPHYSICS - physics = p1->ext->physics; -#endif - } - + _edje_calc_params_clear(p1); _edje_part_calc_params_memcpy(p1, ep->current, ep->part->type); - - if (needext) - { - p1->ext = NULL; - _edje_calc_params_need_ext(p1); - p1->ext->map = map; -#ifdef HAVE_EPHYSICS - p1->ext->physics = physics; -#endif - eina_cow_memcpy(_edje_calc_params_map_cow, (const Eina_Cow_Data **)>ext->map, ep->current->ext->map); -#ifdef HAVE_EPHYSICS - eina_cow_memcpy(_edje_calc_params_physics_cow, (const Eina_Cow_Data **)>ext->physics, ep->current->ext->physics); -#endif - } } p3 = @@ -4757,36 +4746,8 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta if (state) { -Eina_Bool needext = EINA_FALSE; -const Edje_Calc_Params_Map *map; -#ifdef HAVE_EPHYSICS -const Edje_Calc_Params_Physics *physics; -#endif - -if (state->ext) - { - needext = EINA_TRUE; - map = state->ext->map; -#ifdef HAVE_EPHYSICS - physics = state->ext->physics; -#endif - } - +_edje_calc_params_clear(state); _edje_part_calc_params_memcpy(state, pf, ep->part->type); - -if (needext) - { - state->ext = NULL; - _edje_calc_params_need_ext(state); - state->ext->map = map; -#ifdef HAVE_EPHYSICS - state->ext->physics = physics; -#endif - eina_cow_memcpy(_edje_calc_params_map_cow, (const Eina_Cow_Data **)>ext->map, pf->ext->map); -#ifdef HAVE_EPHYSICS - eina_cow_memcpy(_edje_calc_params_physics_cow, (const Eina_Cow_Data **)>ext->physics, pf->ext->physics); -#endif - } } ep->req = pf->req; --
[EGIT] [core/efl] master 02/02: efl_loop_user: error if parent is not a loop provider.
barbieri pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c88b027dc1ac0ffa17022ebebdad1f10687622a3 commit c88b027dc1ac0ffa17022ebebdad1f10687622a3 Author: Gustavo Sverzut BarbieriDate: Thu Aug 18 01:01:25 2016 -0300 efl_loop_user: error if parent is not a loop provider. it was silently ignoring the parent, which led me to hours trying to investigate why my code wasn't working just to realize my parent wasn't being assigned and refcounts were screwed. --- src/lib/ecore/efl_loop_user.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/ecore/efl_loop_user.c b/src/lib/ecore/efl_loop_user.c index 78ac3a8..530772f 100644 --- a/src/lib/ecore/efl_loop_user.c +++ b/src/lib/ecore/efl_loop_user.c @@ -21,7 +21,10 @@ static void _efl_loop_user_efl_object_parent_set(Eo *obj, Efl_Loop_User_Data *pd EINA_UNUSED, Efl_Object *parent) { if (parent != NULL && efl_provider_find(parent, EFL_LOOP_CLASS) == NULL) - return ; + { +ERR("parent=%p is not a provider of EFL_LOOP_CLASS!", parent); +return; + } efl_parent_set(efl_super(obj, EFL_LOOP_USER_CLASS), parent); } --
[EGIT] [core/efl] master 01/02: eolian: gracefully handle incorrect case of inherit.
barbieri pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e3e0a6bd65e7168bf2ca53b305708c52d9951b1b commit e3e0a6bd65e7168bf2ca53b305708c52d9951b1b Author: Gustavo Sverzut BarbieriDate: Tue Aug 16 21:41:26 2016 -0300 eolian: gracefully handle incorrect case of inherit. If you use "EFl" instead of "Efl", it will find the proper file, but won't find the type... crashing. Handle that case and hint the user about it. --- src/lib/eolian/eo_parser.c | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c index ead4183..d81b8d7 100644 --- a/src/lib/eolian/eo_parser.c +++ b/src/lib/eolian/eo_parser.c @@ -1924,7 +1924,14 @@ _inherit_dep(Eo_Lexer *ls, Eina_Strbuf *buf, Eina_Bool check_inherit, } _parse_dep(ls, fname, iname); const Eolian_Class *dep = eolian_class_get_by_name(iname); - assert(dep != NULL); + if (!dep) + { +char ebuf[PATH_MAX]; +eo_lexer_context_restore(ls); +snprintf(ebuf, sizeof(ebuf), "unknown inherit '%s'. Incorrect case?", iname); +eo_lexer_syntax_error(ls, ebuf); +return; + } if (check_inherit) switch (type) { case EOLIAN_CLASS_REGULAR: --
[EGIT] [core/efl] master 01/01: edje_entry: Make a result of retrieve_surrounding_cb secure
jihoon pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0e35f8454eb993da74bd4fb5d0c089e068b87cbf commit 0e35f8454eb993da74bd4fb5d0c089e068b87cbf Author: Jihoon KimDate: Thu Aug 18 10:40:24 2016 +0900 edje_entry: Make a result of retrieve_surrounding_cb secure Summary: Regardless of the password mode of Entry, _edje_entry_imf_retrieve_surrounding_cb alwalys passes plain_text to any callers who register that callback. This commit replace plain text with '*' because current behavior could be a security hole in some case. Reviewers: woohyun, id213sin, jihoon Reviewed By: jihoon Subscribers: cedric, jsuya, z-wony, jpeg Differential Revision: https://phab.enlightenment.org/D4238 --- src/lib/edje/edje_entry.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c index fca05a0..dae0192 100644 --- a/src/lib/edje/edje_entry.c +++ b/src/lib/edje/edje_entry.c @@ -4411,6 +4411,13 @@ _edje_entry_imf_retrieve_surrounding_cb(void *data, Ecore_IMF_Context *ctx EINA_ if (plain_text) { + if (ecore_imf_context_input_hint_get(ctx) & ECORE_IMF_INPUT_HINT_SENSITIVE_DATA) +{ + char *itr = NULL; + for (itr = plain_text; itr && *itr; ++itr) + *itr = '*'; +} + *text = strdup(plain_text); free(plain_text); --
[EGIT] [core/efl] master 01/01: eolian_cxx: Fix behavior with explicit void return
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=16986ffc7aded1e8baf1eb36227d425cc30d8f03 commit 16986ffc7aded1e8baf1eb36227d425cc30d8f03 Author: Lauro MouraDate: Wed Aug 17 20:53:56 2016 -0300 eolian_cxx: Fix behavior with explicit void return Only perform the single value/return type substitution on properties if the void return type is implicit (i.e. NULL return from function_return_type_get), following the eolian-C implementation as we use the generated headers. Also update example after Eo-Efl changes. --- src/examples/eolian_cxx/colourable_cxx.cc | 4 ++-- src/lib/eolian_cxx/grammar/klass_def.hpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/examples/eolian_cxx/colourable_cxx.cc b/src/examples/eolian_cxx/colourable_cxx.cc index 30f1bb3..66c0d89 100644 --- a/src/examples/eolian_cxx/colourable_cxx.cc +++ b/src/examples/eolian_cxx/colourable_cxx.cc @@ -24,14 +24,14 @@ _colourable_eo_base_constructor(Eo *obj, Colourable_Data *self) { EINA_CXX_DOM_LOG_DBG(domain) << __func__ << std::endl; self->r = self->g = self->b = 0; - return eo_constructor(eo_super(obj, MY_CLASS)); + return efl_constructor(efl_super(obj, MY_CLASS)); } void _colourable_eo_base_destructor(Eo *obj, Colourable_Data *self EINA_UNUSED) { EINA_CXX_DOM_LOG_DBG(domain) << __func__ << std::endl; - eo_destructor(eo_super(obj, MY_CLASS)); + efl_destructor(efl_super(obj, MY_CLASS)); } void diff --git a/src/lib/eolian_cxx/grammar/klass_def.hpp b/src/lib/eolian_cxx/grammar/klass_def.hpp index 0c5d820..cafb56d 100644 --- a/src/lib/eolian_cxx/grammar/klass_def.hpp +++ b/src/lib/eolian_cxx/grammar/klass_def.hpp @@ -424,7 +424,7 @@ struct function_def values.push_back(&*param_iterator); } - if(type == EOLIAN_PROP_GET && values.size() == 1 && return_type == void_) + if(!r_type && type == EOLIAN_PROP_GET && values.size() == 1) { return_type = values[0].type; } --
[EGIT] [core/efl] master 01/02: wayland_egl: Remove swap_mode from engine info
derekf pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6ce113791e9681e940c3c8aa1a57d4781dfd6c9e commit 6ce113791e9681e940c3c8aa1a57d4781dfd6c9e Author: Derek ForemanDate: Wed Aug 17 16:21:29 2016 -0500 wayland_egl: Remove swap_mode from engine info This was never set anywhere and always defaulted to 0, or AUTO --- .../engines/wayland_egl/Evas_Engine_Wayland_Egl.h | 1 - src/modules/evas/engines/wayland_egl/evas_engine.c | 37 +- 2 files changed, 1 insertion(+), 37 deletions(-) diff --git a/src/modules/evas/engines/wayland_egl/Evas_Engine_Wayland_Egl.h b/src/modules/evas/engines/wayland_egl/Evas_Engine_Wayland_Egl.h index 54dee26..204e286 100644 --- a/src/modules/evas/engines/wayland_egl/Evas_Engine_Wayland_Egl.h +++ b/src/modules/evas/engines/wayland_egl/Evas_Engine_Wayland_Egl.h @@ -43,7 +43,6 @@ struct _Evas_Engine_Info_Wayland_Egl Eina_Bool vsync : 1; Eina_Bool indirect : 1; - unsigned char swap_mode : 4; Eina_Bool wobbling : 1; Eina_Bool www_avail : 1; diff --git a/src/modules/evas/engines/wayland_egl/evas_engine.c b/src/modules/evas/engines/wayland_egl/evas_engine.c index c79bcf6..8ccc4e1 100644 --- a/src/modules/evas/engines/wayland_egl/evas_engine.c +++ b/src/modules/evas/engines/wayland_egl/evas_engine.c @@ -558,42 +558,7 @@ eng_setup(Evas *evas, void *info) (!strcasecmp(s, "4"))) swap_mode = MODE_QUADRUPLE; } - else - { -// in most gl implementations - egl and glx here that we care about the TEND -// to either swap or copy backbuffer and front buffer, but strictly that is -// not true. technically backbuffer content is totally undefined after a swap -// and thus you MUST re-render all of it, thus MODE_FULL -swap_mode = MODE_FULL; -// BUT... reality is that lmost every implementation copies or swaps so -// triple buffer mode can be used as it is a superset of double buffer and -// copy (though using those explicitly is more efficient). so let's play with -// triple buffer mdoe as a default and see. -//re->mode = MODE_TRIPLE; -// XXX: note - the above seems to break on some older intel chipsets and -// drivers. it seems we CANT depend on backbuffer staying around. bugger! -switch (inf->swap_mode) - { - case EVAS_ENGINE_WAYLAND_EGL_SWAP_MODE_FULL: - swap_mode = MODE_FULL; - break; - case EVAS_ENGINE_WAYLAND_EGL_SWAP_MODE_COPY: - swap_mode = MODE_COPY; - break; - case EVAS_ENGINE_WAYLAND_EGL_SWAP_MODE_DOUBLE: - swap_mode = MODE_DOUBLE; - break; - case EVAS_ENGINE_WAYLAND_EGL_SWAP_MODE_TRIPLE: - swap_mode = MODE_TRIPLE; - break; - case EVAS_ENGINE_WAYLAND_EGL_SWAP_MODE_QUADRUPLE: - swap_mode = MODE_QUADRUPLE; - break; - default: - swap_mode = MODE_AUTO; - break; - } - } + else swap_mode = MODE_AUTO; if (!(re = epd->engine.data.output)) { --
[EGIT] [core/efl] master 02/02: wayland_egl: Fix rendering on systems without buffer age
derekf pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7828d0e0720cee1fb3098bba50f718796de64989 commit 7828d0e0720cee1fb3098bba50f718796de64989 Author: Derek ForemanDate: Wed Aug 17 16:22:54 2016 -0500 wayland_egl: Fix rendering on systems without buffer age If buffer age isn't present we really want to return MODE_FULL, but we were previously returning MODE_AUTO. On recent mali drivers this resulted in accidental partial updates leading to incorrect rendering. --- src/modules/evas/engines/wayland_egl/evas_wl_main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/evas/engines/wayland_egl/evas_wl_main.c b/src/modules/evas/engines/wayland_egl/evas_wl_main.c index a0ac4fa..710202f 100644 --- a/src/modules/evas/engines/wayland_egl/evas_wl_main.c +++ b/src/modules/evas/engines/wayland_egl/evas_wl_main.c @@ -388,6 +388,7 @@ eng_outbuf_swap_mode_get(Outbuf *ob) return swap_mode; } + if (ob->swap_mode == MODE_AUTO) return MODE_FULL; return ob->swap_mode; } --
Re: [E-devel] Can't build doc for EFL
Installing doxygen from git solved problem, for both git and 1.17.2. В Wed, 17 Aug 2016 15:00:17 +0500 Nikita Zlobinпишет: > Yeah, i will try with doxygen live version, as well as manual building > without options. > > Some of them are defaults for ebuild (glib and physics flags, last - > enabling dependence on bullet lib). I did not analyze flags, simply > copied configure line with all options from emerge log. I think, they > could eventually add some warnings into ebuild about extra > functionality loss without some use flags. > > В Wed, 17 Aug 2016 11:40:19 +0200 > Stefan Schmidt пишет: > > > Hello. > > > > On 17/08/16 10:40, Stefan Schmidt wrote: > > > Hello. > > > > > > On 17/08/16 01:14, Carsten Haitzler (The Rasterman) wrote: > > >> On Wed, 17 Aug 2016 00:14:40 +0500 Nikita Zlobin > > >> said: > > >>> Hit, it is gentoo S). And this is not first case. > > >>> But in turn, i remember case - when i took part in ladish > > >>> development, i used ubuntu... and my code, being ok on my > > >>> system, segfailed on gentoo system of project leader, revealing > > >>> one hard to detect bug. > > >>> > > >>> doxygen 1.8.11, gcc 4.9.3 (though how it relates to doc gen...) > > >>> > > >>> As for configuration, i took them from ebuild log: > > >>> $ ./configure --enable-cserve --enable-image-loader-generic > > >>> --enable-image-loader-jpeg --disable-tizen --disable-gesture > > >>> --disable-gstreamer --enable-xinput2 --disable-xinput22 > > >>> --disable-multisense --enable-libmount --with-opengl-full > > >>> --disable-physics --with-glib=no --enable-image-loader-jp2k > > >>> --enable-gnutls > > >>> --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-abb > > >>> --prefix=/usr > > >>> > > >>> As for bugs - you can see there one veeery lonnng option, so > > >>> decided to consult. Can't beleive, that these options might > > >>> cause doc making to fail. > > >> > > >> --enable-cserve <- you know this is enabled by default? why > > >> enable? --enable-image-loader-generic <- enabled by default too > > >> --enable---disable-image-loader-jpeg <- enabled by default too > > >> --disable-tizen <- disabled by defaault... > > >> --disable-gesture <- disabled by default... > > >> --disable-gstreamer <- you know this is disabled by default... > > >> --disable-multisense <- you do know this breaks theme > > >> functionality right? --enable-libmount <- you know itss enabled > > >> by default? --with-opengl-full <- you know this is a typo? it > > >> should be: --with-opengl=full ... and this is the default > > >> anyway... --disable-physics <- you know this can break theme > > >> functionality right? --with-glib=no <- you know this can create > > >> problems with things like the ibus imf modules which require it > > >> (because libibus need glib mainloop stuff), though you don't > > >> enable the ibus imf module here...? --enable-gnutls <- why > > >> gnutls not openssl. you know we test openssl as it's the > > >> default. gnutls gets little to no testing. also optimization - > > >> little to none with it. > > >> > > >> almost all your options are redundant and several i would think > > >> are dubious to alter... though none of these SHOULD affect > > >> document generation - maybe unless there is more glib main loop > > >> integration that is needed that we've missed (scim? something > > >> else?) and since it's on by default ... we haven't seen the > > >> brokenness with it off. there is a reason we make you put in that > > >> insanely long option accepting your fate if you stray from tested > > >> defaults that might have an effect. > > > > > > We can easily tell if it works with the default configure options > > > on his system. Nikita, can you run a configure without these > > > options (any options at all) followed by a make and a make doc? > > > > > > This is not going to install anything so it will not touch your > > > system. > > > > > > If that still breaks the same way as before it is more likely a > > > problem with your doxygen version. It works for me here with > > > 1.8.9.1 and yours is 1.8.11. So if it still fails the next try > > > might be to downgrade your doxygen version and see if that > > > helps. > > > > I did the inverted test and tried with doxygen 1.8.11 (which is the > > latest release, December 2015) and can verify that it breaks our > > doc build the way you reported. > > > > Latest doxygen from their git repo works though. So it is really a > > problem in 1.8.11 (maybe also 1.8.10) and is fixed already. We can > > only hope for a new release or go back to an older version. > > > > regards > > Stefan Schmidt > > > > -- > > ___ > > enlightenment-devel mailing list > >
Re: [E-devel] Can't build doc for EFL
Hello. On 17/08/16 11:58, Carsten Haitzler (The Rasterman) wrote: > On Wed, 17 Aug 2016 10:40:46 +0200 Stefan Schmidt> said: > >> Hello. >> >> On 17/08/16 01:14, Carsten Haitzler (The Rasterman) wrote: >>> On Wed, 17 Aug 2016 00:14:40 +0500 Nikita Zlobin >>> said: >>> Hit, it is gentoo S). And this is not first case. But in turn, i remember case - when i took part in ladish development, i used ubuntu... and my code, being ok on my system, segfailed on gentoo system of project leader, revealing one hard to detect bug. doxygen 1.8.11, gcc 4.9.3 (though how it relates to doc gen...) As for configuration, i took them from ebuild log: $ ./configure --enable-cserve --enable-image-loader-generic --enable-image-loader-jpeg --disable-tizen --disable-gesture --disable-gstreamer --enable-xinput2 --disable-xinput22 --disable-multisense --enable-libmount --with-opengl-full --disable-physics --with-glib=no --enable-image-loader-jp2k --enable-gnutls --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-abb --prefix=/usr As for bugs - you can see there one veeery lonnng option, so decided to consult. Can't beleive, that these options might cause doc making to fail. >>> >>> --enable-cserve <- you know this is enabled by default? why enable? >>> --enable-image-loader-generic <- enabled by default too >>> --enable---disable-image-loader-jpeg <- enabled by default too >>> --disable-tizen <- disabled by defaault... >>> --disable-gesture <- disabled by default... >>> --disable-gstreamer <- you know this is disabled by default... >>> --disable-multisense <- you do know this breaks theme functionality right? >>> --enable-libmount <- you know itss enabled by default? >>> --with-opengl-full <- you know this is a typo? it should be: >>> --with-opengl=full ... and this is the default anyway... >>> --disable-physics <- you know this can break theme functionality right? >>> --with-glib=no <- you know this can create problems with things like the >>> ibus imf modules which require it (because libibus need glib mainloop >>> stuff), though you don't enable the ibus imf module here...? >>> --enable-gnutls <- why gnutls not openssl. you know we test openssl as it's >>> the default. gnutls gets little to no testing. also optimization - little >>> to none with it. >>> >>> almost all your options are redundant and several i would think are dubious >>> to alter... though none of these SHOULD affect document generation - maybe >>> unless there is more glib main loop integration that is needed that we've >>> missed (scim? something else?) and since it's on by default ... we haven't >>> seen the brokenness with it off. there is a reason we make you put in that >>> insanely long option accepting your fate if you stray from tested defaults >>> that might have an effect. >> >> We can easily tell if it works with the default configure options on his >> system. Nikita, can you run a configure without these options (any >> options at all) followed by a make and a make doc? >> >> This is not going to install anything so it will not touch your system. >> >> If that still breaks the same way as before it is more likely a problem >> with your doxygen version. It works for me here with 1.8.9.1 and yours >> is 1.8.11. So if it still fails the next try might be to downgrade your >> doxygen version and see if that helps. > > i think actually files are missing from the makefile'am's extra dist - try and > make doc FROM the tarball not from git... :) A different problem from the doxygen one but still valid. I fixed it in master and backported it to the efl-1.18 branch to make sure it is part of 1.18.1 regards Stefan Schmidt -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [tools/eflete] master 01/01: Project manager: fix management file handler for *.pro files.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=d574cb96068cfa4c91f86ac5a62a4c7fba7e32b3 commit d574cb96068cfa4c91f86ac5a62a4c7fba7e32b3 Author: Mykyta BiliavskyiDate: Wed Aug 17 16:37:27 2016 +0300 Project manager: fix management file handler for *.pro files. --- src/bin/project_manager/project_manager.c | 41 ++ src/bin/project_manager/project_manager.h | 6 .../project_manager/project_manager_import_edj.c | 3 +- src/bin/project_manager/project_manager_open.c | 9 +++-- src/bin/project_manager/project_manager_private.h | 3 +- 5 files changed, 51 insertions(+), 11 deletions(-) diff --git a/src/bin/project_manager/project_manager.c b/src/bin/project_manager/project_manager.c index a474d17..c50e069 100644 --- a/src/bin/project_manager/project_manager.c +++ b/src/bin/project_manager/project_manager.c @@ -45,10 +45,10 @@ _project_dev_file_create(Project *pro) } +#ifndef _WIN32 Eina_Bool -_lock_try(const char *path, Eina_Bool check) +_lock_try(const char *path, Eina_Bool check, int *pro_fd) { -#ifndef _WIN32 struct flock lock, savelock; int fd = open(path, O_RDWR); @@ -64,13 +64,28 @@ _lock_try(const char *path, Eina_Bool check) ERR("Process %d has a write lock already!", lock.l_pid); return false; } - /* if flag check is false not need to lock the file */ - if (check) + + /* if flag check is false not need to lock the file, just close handler */ + if (!check) + { +close(fd); +return true; + } + + if (pro_fd) { savelock.l_pid = getpid(); fcntl(fd, F_SETLK, ); +*pro_fd = fd; +return true; } + close(fd); + return false; +} #else +Eina_Bool +_lock_try(const char *path, Eina_Bool check, HFILE *pro_fd) +{ LPOFSTRUCT lpReOpenBuff; HFILE fd = OpenFile(path, lpReOpenBuff, OF_READWRITE); if (fd == HFILE_ERROR) @@ -78,13 +93,23 @@ _lock_try(const char *path, Eina_Bool check) ERR("The file '%s' cannot be opened in mode read-write!", path); return false; } + if (!check) { CloseHandle(fd); + return false; } -#endif - return true; + + if (pro_fd) + { +*pro_fd = fd; +return true; + } + + CloseHandle(fd); + return false; } +#endif void _project_descriptor_init(Project_Thread *ptd) @@ -628,6 +653,8 @@ pm_project_close(Project *project) #endif /* HAVE_ENVENTOR */ eet_close(project->ef); + if (project->pro_fd != -1) + close(project->pro_fd); free(project); evas_object_smart_callback_call(ap.win, SIGNAL_PROJECT_CLOSED, NULL); @@ -1005,7 +1032,7 @@ pm_project_enventor_save(Project *project, Eina_Bool pm_lock_check(const char *path) { - return _lock_try(path, false); + return _lock_try(path, false, NULL); } Eina_Bool diff --git a/src/bin/project_manager/project_manager.h b/src/bin/project_manager/project_manager.h index 7dc9ba7..ceb07d1 100644 --- a/src/bin/project_manager/project_manager.h +++ b/src/bin/project_manager/project_manager.h @@ -56,6 +56,12 @@ struct _Project { /* version of project file */ int version; + /** File descriptor of open "*.pro" file. Needed for keep that file locked*/ +#ifdef _WIN32 + HFILE pro_fd; +#else + int pro_fd; +#endif /** The project name */ Eina_Stringshare *name; /** project path */ diff --git a/src/bin/project_manager/project_manager_import_edj.c b/src/bin/project_manager/project_manager_import_edj.c index 4aa35e0..439a298 100644 --- a/src/bin/project_manager/project_manager_import_edj.c +++ b/src/bin/project_manager/project_manager_import_edj.c @@ -59,6 +59,7 @@ _project_files_create(Project_Thread *ptd) pro_path = eina_stringshare_printf("%s/%s.pro", folder_path, ptd->name); pro->ef = eet_open(pro_path, EET_FILE_MODE_READ_WRITE); + pro->pro_fd = -1; ecore_file_mkdir(pro->develop_path); MKDIR(images); MKDIR(sounds); @@ -164,7 +165,7 @@ _project_import_edj(void *data) TODO("Add correct error handling here (if project == NULL). Probably we should add negative TC where directory already exist"); ptd->project->pro_path = eina_stringshare_printf("%s/%s/%s.pro", ptd->path, ptd->name, ptd->name); - if (!_lock_try(ptd->project->pro_path, true)) + if (!_lock_try(ptd->project->pro_path, true, >project->pro_fd)) { /* really this case is unlickly, but we need handle it */ ptd->result = PM_PROJECT_LOCKED; diff --git a/src/bin/project_manager/project_manager_open.c b/src/bin/project_manager/project_manager_open.c index de45de9..7227761 100644 --- a/src/bin/project_manager/project_manager_open.c +++ b/src/bin/project_manager/project_manager_open.c @@ -68,12 +68,16 @@ _project_open_feedback_job(void *data, Ecore_Thread *th) char *tmp; int tmp_len; Eina_Stringshare *message = NULL; - +#ifdef _WIN32 +
[EGIT] [tools/enventor] master 01/01: edj_viewer: don't update views if they were deactivated.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=b5b39617f22010ff024d05f86c8a8b4840655a34 commit b5b39617f22010ff024d05f86c8a8b4840655a34 Author: Hermet ParkDate: Thu Aug 18 00:27:56 2016 +0900 edj_viewer: don't update views if they were deactivated. This fixes the wireframe issue that deactivated views' wireframes are appeared when the file is updated. This is only happened if edc collections is consisted with multiple edc files. If edj file is updated, all generated views will be updated. and wireframes will be also updated and appeared. but we don't need to update the deactivated views even if the edj is updated. we could this with an activated boolean and this will be much optimized way for many generated views. --- src/lib/edj_mgr.c | 3 +++ src/lib/edj_viewer.c | 42 ++ src/lib/enventor_private.h | 1 + 3 files changed, 42 insertions(+), 4 deletions(-) diff --git a/src/lib/edj_mgr.c b/src/lib/edj_mgr.c index 2831d22..18ce8b5 100644 --- a/src/lib/edj_mgr.c +++ b/src/lib/edj_mgr.c @@ -197,8 +197,11 @@ edj_mgr_view_switch_to(view_data *vd) ecore_timer_del(prev_edj->timer); prev_edj->timer = ecore_timer_add(VIEW_CACHING_TIME, view_del_timer_cb, prev_edj->vd); +view_activated_set(prev_edj->vd, EINA_FALSE); } em->edj = view_data_get(vd); + + view_activated_set(vd, EINA_TRUE); } Evas_Object * diff --git a/src/lib/edj_viewer.c b/src/lib/edj_viewer.c index 65caa47..dce1c27 100644 --- a/src/lib/edj_viewer.c +++ b/src/lib/edj_viewer.c @@ -52,6 +52,8 @@ struct viewer_s Eina_Bool edj_reload_need : 1; Eina_Bool file_set_finished : 1; + Eina_Bool activated: 1; + Eina_Bool view_update_call_request : 1; }; const char *PART_NAME = "part_name"; @@ -374,7 +376,7 @@ view_obj_parts_callbacks_set(view_data *vd) } static void -update_edj_file_internal(view_data *vd) +update_view(view_data *vd) { view_images_monitor_set(vd); view_obj_min_update(vd); @@ -382,6 +384,7 @@ update_edj_file_internal(view_data *vd) dummy_obj_update(vd->layout); wireframes_obj_update(vd->layout); view_mirror_mode_update(vd); + if (vd->changed_part.part) edje_edit_part_selected_state_set(vd->layout, vd->changed_part.part, vd->changed_part.desc, @@ -389,10 +392,25 @@ update_edj_file_internal(view_data *vd) view_obj_parts_callbacks_set(vd); wireframes_obj_callbacks_set(vd->layout); + + if (vd->view_update_call_request) + { +evas_object_smart_callback_call(vd->enventor, +SIG_LIVE_VIEW_UPDATED, vd->it); +vd->view_update_call_request = EINA_FALSE; + } +} + +static void +update_edj_file_internal(view_data *vd) +{ + vd->view_update_call_request = EINA_TRUE; vd->edj_reload_need = EINA_FALSE; vd->file_set_finished = EINA_TRUE; - evas_object_smart_callback_call(vd->enventor, SIG_LIVE_VIEW_UPDATED, vd->it); + if (!vd->activated) return; + + update_view(vd); } static Eina_Bool @@ -431,8 +449,11 @@ exe_del_event_cb(void *data, int type EINA_UNUSED, void *event EINA_UNUSED) //Failed to load edj? I have no idea. Try again. if (!edje_object_file_set(vd->layout, build_edj_path_get(), vd->group_name)) { -dummy_obj_update(vd->layout); -wireframes_obj_update(vd->layout); +if (vd->activated) + { + dummy_obj_update(vd->layout); + wireframes_obj_update(vd->layout); + } ecore_timer_del(vd->update_edj_timer); vd->file_set_finished = EINA_FALSE; vd->update_edj_timer = ecore_timer_add(0.25, update_edj_file, vd); @@ -949,3 +970,16 @@ view_item_get(view_data *vd) if (!vd) return NULL; return vd->it; } + +void +view_activated_set(view_data *vd, Eina_Bool activated) +{ + if (!vd) return; + activated = !!activated; + if (activated == vd->activated) return; + vd->activated = activated; + if (!activated) return; + + update_view(vd); +} + diff --git a/src/lib/enventor_private.h b/src/lib/enventor_private.h index 59c81db..c0b8248 100644 --- a/src/lib/enventor_private.h +++ b/src/lib/enventor_private.h @@ -220,6 +220,7 @@ void view_part_state_set(view_data *vd, const char *part, const char *descriptio void view_obj_need_reload_set(view_data *vd); Edje_Part_Type view_part_type_get(view_data *vd, const char *part); Enventor_Item *view_item_get(view_data *vd); +void view_activated_set(view_data *vd, Eina_Bool activated); /* template */ Eina_Bool template_part_insert(edit_data *ed, Edje_Part_Type part_type, Enventor_Template_Insert_Type insert_type, Eina_Bool fixed_w, Eina_Bool fixed_h, char *rel1_x_to, char *rel1_y_to, char *rel2_x_to, char *rel2_y_to, float align_x, float align_y, int min_w, int
[EGIT] [tools/enventor] master 01/01: edj_mgr: reduce the edj view caching time to 5 min.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=fa929055a2902ad205028a294a624e1fffbec58a commit fa929055a2902ad205028a294a624e1fffbec58a Author: Hermet ParkDate: Wed Aug 17 23:44:58 2016 +0900 edj_mgr: reduce the edj view caching time to 5 min. --- src/lib/edj_mgr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/edj_mgr.c b/src/lib/edj_mgr.c index fd560cd..2831d22 100644 --- a/src/lib/edj_mgr.c +++ b/src/lib/edj_mgr.c @@ -5,7 +5,7 @@ #include #include "enventor_private.h" -const double VIEW_CACHING_TIME = 60 * 30; +const double VIEW_CACHING_TIME = 60 * 5; typedef struct edj_data_s { --
[EGIT] [core/efl] efl-1.18 02/02: examples: evas: ensure filter example lua files land in tarball
stefan pushed a commit to branch efl-1.18. http://git.enlightenment.org/core/efl.git/commit/?id=641e3a25fc1e00487863e7c611508c4359110748 commit 641e3a25fc1e00487863e7c611508c4359110748 Author: Stefan SchmidtDate: Wed Aug 17 14:37:56 2016 +0200 examples: evas: ensure filter example lua files land in tarball These are needed for a make doc run and have been missing the tarball before. @fix --- src/examples/evas/Makefile.am | 9 + 1 file changed, 9 insertions(+) diff --git a/src/examples/evas/Makefile.am b/src/examples/evas/Makefile.am index 05ef128..7f660f7 100644 --- a/src/examples/evas/Makefile.am +++ b/src/examples/evas/Makefile.am @@ -450,6 +450,15 @@ shooter/assets/models/snake.md2 \ shooter/assets/models/soldier_jump.md2 \ shooter/assets/models/soldier.md2 \ shooter/assets/models/tommy.ply \ +filters/filter_blend.lua \ +filters/filter_blur.lua \ +filters/filter_bump.lua \ +filters/filter_curve.lua \ +filters/filter_example_1.lua \ +filters/filter_grow.lua \ +filters/filter_mask.lua \ +filters/filter_padding.lua \ +filters/filter_transform.lua \ Makefile.examples \ evas-common.h --
[EGIT] [core/efl] master 01/02: doc: put shot.sh into dist to allow make doc run from tarball
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=dbf9d1d4a9e5d336c52fae93c6b4a3e0a4de8ce8 commit dbf9d1d4a9e5d336c52fae93c6b4a3e0a4de8ce8 Author: Stefan SchmidtDate: Wed Aug 17 14:35:15 2016 +0200 doc: put shot.sh into dist to allow make doc run from tarball This was missing in the release tarballs before breaking a make doc run from them. @fix --- doc/Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/Makefile.am b/doc/Makefile.am index 26b7df9..17adf52 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -245,7 +245,8 @@ eo_tutorial.dox \ ephysics_examples.dox \ evas_examples.dox \ main.dox \ -pkgconfig.dox +pkgconfig.dox \ +shot.sh include images.mk --
[EGIT] [core/efl] efl-1.18 01/02: doc: put shot.sh into dist to allow make doc run from tarball
stefan pushed a commit to branch efl-1.18. http://git.enlightenment.org/core/efl.git/commit/?id=86f1cb9b4e43658c0244291c46db4adba670527e commit 86f1cb9b4e43658c0244291c46db4adba670527e Author: Stefan SchmidtDate: Wed Aug 17 14:35:15 2016 +0200 doc: put shot.sh into dist to allow make doc run from tarball This was missing in the release tarballs before breaking a make doc run from them. @fix --- doc/Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/Makefile.am b/doc/Makefile.am index 26b7df9..17adf52 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -245,7 +245,8 @@ eo_tutorial.dox \ ephysics_examples.dox \ evas_examples.dox \ main.dox \ -pkgconfig.dox +pkgconfig.dox \ +shot.sh include images.mk --
[EGIT] [core/efl] master 02/02: examples: evas: ensure filter example lua files land in tarball
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=53b6ac1d3ab97a0ec93dafe65c1e557573d3d932 commit 53b6ac1d3ab97a0ec93dafe65c1e557573d3d932 Author: Stefan SchmidtDate: Wed Aug 17 14:37:56 2016 +0200 examples: evas: ensure filter example lua files land in tarball These are needed for a make doc run and have been missing the tarball before. @fix --- src/examples/evas/Makefile.am | 9 + 1 file changed, 9 insertions(+) diff --git a/src/examples/evas/Makefile.am b/src/examples/evas/Makefile.am index 05ef128..7f660f7 100644 --- a/src/examples/evas/Makefile.am +++ b/src/examples/evas/Makefile.am @@ -450,6 +450,15 @@ shooter/assets/models/snake.md2 \ shooter/assets/models/soldier_jump.md2 \ shooter/assets/models/soldier.md2 \ shooter/assets/models/tommy.ply \ +filters/filter_blend.lua \ +filters/filter_blur.lua \ +filters/filter_bump.lua \ +filters/filter_curve.lua \ +filters/filter_example_1.lua \ +filters/filter_grow.lua \ +filters/filter_mask.lua \ +filters/filter_padding.lua \ +filters/filter_transform.lua \ Makefile.examples \ evas-common.h --
[EGIT] [tools/enventor] master 01/01: theme: just modify the file permission.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=3d610f189895e5f6515b1fa9378bd1c493f2526e commit 3d610f189895e5f6515b1fa9378bd1c493f2526e Author: Hermet ParkDate: Wed Aug 17 23:30:17 2016 +0900 theme: just modify the file permission. keep the file permission consistency. --- data/themes/default/images/help_bg.png | Bin 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/data/themes/default/images/help_bg.png b/data/themes/default/images/help_bg.png old mode 100755 new mode 100644 --
[EGIT] [core/enlightenment] master 01/01: e_comp_wl: break from meaningless loop
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=dca5cc2fa05d713621c673e0f7f6766b2c5de7a0 commit dca5cc2fa05d713621c673e0f7f6766b2c5de7a0 Author: JengHyun KangDate: Wed Aug 17 10:22:37 2016 -0400 e_comp_wl: break from meaningless loop Summary: kbd.keys are only added from e_comp_wl_key_down(). And in that function, duplicated keys are not add in the list. So only one key is going to be in the list. Test Plan: Watch kbd.keys list during key press / release. Reviewers: raster, devilhorns, zmike!, ManMower Reviewed By: ManMower Subscribers: duna.oh, input.hacker, cedric Differential Revision: https://phab.enlightenment.org/D4230 --- src/bin/e_comp_wl.c | 8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 4507759..79689d2 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -3235,7 +3235,13 @@ e_comp_wl_key_up(Ecore_Event_Key *ev) end = (uint32_t *)e_comp_wl->kbd.keys.data + (e_comp_wl->kbd.keys.size / sizeof(*k)); for (k = e_comp_wl->kbd.keys.data; k < end; k++) - if (*k == keycode) *k = *--end; + { +if (*k == keycode) + { + *k = *--end; + break; + } + } e_comp_wl->kbd.keys.size = (const char *)end - (const char *)e_comp_wl->kbd.keys.data; --
[EGIT] [core/enlightenment] enlightenment-0.21 01/01: e_comp_wl: break from meaningless loop
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=dce955a1235bae1c63e91e74f2f56a41bca33db5 commit dce955a1235bae1c63e91e74f2f56a41bca33db5 Author: JengHyun KangDate: Wed Aug 17 10:22:37 2016 -0400 e_comp_wl: break from meaningless loop Summary: kbd.keys are only added from e_comp_wl_key_down(). And in that function, duplicated keys are not add in the list. So only one key is going to be in the list. Test Plan: Watch kbd.keys list during key press / release. Reviewers: raster, devilhorns, zmike!, ManMower Reviewed By: ManMower Subscribers: duna.oh, input.hacker, cedric Differential Revision: https://phab.enlightenment.org/D4230 --- src/bin/e_comp_wl.c | 8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 718c4a8..ffe0314 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -3235,7 +3235,13 @@ e_comp_wl_key_up(Ecore_Event_Key *ev) end = (uint32_t *)e_comp_wl->kbd.keys.data + (e_comp_wl->kbd.keys.size / sizeof(*k)); for (k = e_comp_wl->kbd.keys.data; k < end; k++) - if (*k == keycode) *k = *--end; + { +if (*k == keycode) + { + *k = *--end; + break; + } + } e_comp_wl->kbd.keys.size = (const char *)end - (const char *)e_comp_wl->kbd.keys.data; --
[EGIT] [tools/enventor] master 01/01: enable file browser, file tab in default. set initalize base window size.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=026728b042b65b8b654581689f7de9dac1ccf774 commit 026728b042b65b8b654581689f7de9dac1ccf774 Author: Hermet ParkDate: Wed Aug 17 22:53:14 2016 +0900 enable file browser, file tab in default. set initalize base window size. --- data/themes/default/layout_common.edc | 2 +- src/bin/base_gui.c| 1 + src/bin/config_data.c | 4 ++-- src/include/common.h | 4 +++- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/data/themes/default/layout_common.edc b/data/themes/default/layout_common.edc index b1d103e..8b03739 100644 --- a/data/themes/default/layout_common.edc +++ b/data/themes/default/layout_common.edc @@ -35,7 +35,7 @@ group { "fileselector_layout"; clip_to: "clipper"; desc { min: 650 435; -max: 600 435; +max: 650 435; fixed: 1 1; image.normal: "frame_bg.png"; image.border: 10 10 10 10; diff --git a/src/bin/base_gui.c b/src/bin/base_gui.c index 9c49e08..4f69433 100644 --- a/src/bin/base_gui.c +++ b/src/bin/base_gui.c @@ -382,6 +382,7 @@ base_gui_show(void) base_data *bd = g_bd; EINA_SAFETY_ON_NULL_RETURN(bd); + evas_object_resize(bd->win, INIT_WIN_W, INIT_WIN_H); evas_object_show(bd->win); } diff --git a/src/bin/config_data.c b/src/bin/config_data.c index 4ac403c..658ef28 100644 --- a/src/bin/config_data.c +++ b/src/bin/config_data.c @@ -196,10 +196,10 @@ config_load(void) cd->auto_complete = EINA_TRUE; cd->version = ENVENTOR_CONFIG_VERSION; cd->smart_undo_redo = EINA_FALSE; -cd->file_browser = EINA_FALSE; +cd->file_browser = EINA_TRUE; cd->edc_navigator = EINA_TRUE; cd->red_alert = EINA_TRUE; -cd->file_tab = EINA_FALSE; +cd->file_tab = EINA_TRUE; } g_cd = cd; diff --git a/src/include/common.h b/src/include/common.h index 50e16f9..613f8f3 100644 --- a/src/include/common.h +++ b/src/include/common.h @@ -54,10 +54,12 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" #define REL1_Y 0.25f #define REL2_X 0.75f #define REL2_Y 0.75f +#define INIT_WIN_W 1100 +#define INIT_WIN_H 600 #define ROUNDING(x, dig) (floor((x) * pow(10, dig) + 0.5) / pow(10, dig)) -#define ENVENTOR_CONFIG_VERSION 12 +#define ENVENTOR_CONFIG_VERSION 13 #define EVENT_KEY_MODIFIER_CHECK(NAME, MASK) \ ((MASK & ECORE_EVENT_MODIFIER_##NAME) && \ --
[EGIT] [tools/enventor] master 01/01: statusbar: disable focus for resize slider bar
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=6dbe2bc4e65cecb8e89df6b6db4b387878939ec2 commit 6dbe2bc4e65cecb8e89df6b6db4b387878939ec2 Author: Taehyub KimDate: Wed Aug 17 22:30:39 2016 +0900 statusbar: disable focus for resize slider bar Summary: disable focus for resize slider bar Test Plan: 1. launch enventor 2. show resize ctxpopup using status bar 3. check the focus is disable Reviewers: Hermet, Jaehyun_Cho, NikaWhite, bowonryu Differential Revision: https://phab.enlightenment.org/D4232 --- src/bin/statusbar.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/statusbar.c b/src/bin/statusbar.c index 08fb1f2..913b6e9 100644 --- a/src/bin/statusbar.c +++ b/src/bin/statusbar.c @@ -144,6 +144,7 @@ view_resize_slider_layout_create(Evas_Object *parent, const char *type, //Slider Evas_Object *slider = elm_slider_add(layout); + elm_object_focus_allow_set(slider, EINA_FALSE); elm_slider_span_size_set(slider, 120); elm_slider_indicator_show_set(slider, EINA_FALSE); double step = 1 / (double) (3840 - 1); --
[EGIT] [tools/enventor] master 01/01: edc_editor: add NULL checking in edit_cursor_double_clicked_cb
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=7e1a4c00a7b5a846f17c02b44267a71f241a26c9 commit 7e1a4c00a7b5a846f17c02b44267a71f241a26c9 Author: Taehyub KimDate: Wed Aug 17 22:29:31 2016 +0900 edc_editor: add NULL checking in edit_cursor_double_clicked_cb Summary: add NULL checking in edit_cursor_double_clicked_cb @fix Reviewers: Jaehyun_Cho, NikaWhite, bowonryu, Hermet Reviewed By: Hermet Differential Revision: https://phab.enlightenment.org/D4234 --- src/lib/edc_editor.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c index 5925bf8..ecb63ad 100644 --- a/src/lib/edc_editor.c +++ b/src/lib/edc_editor.c @@ -729,6 +729,8 @@ edit_cursor_double_clicked_cb(void *data, Evas_Object *obj, if (!selected) return; selected = elm_entry_markup_to_utf8(selected); + if (!selected) return; + if (selected[0] == '\"') { free(selected); --
[EGIT] [tools/enventor] master 01/01: auto_comp: apply strncpy in context_lexem_thread_cb
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=950734d000d68066d6717db8bafb0b2ace5fc398 commit 950734d000d68066d6717db8bafb0b2ace5fc398 Author: Taehyub KimDate: Wed Aug 17 22:28:16 2016 +0900 auto_comp: apply strncpy in context_lexem_thread_cb Summary: apply strncpy in context_lexem_thread_cb @fix Reviewers: Jaehyun_Cho, NikaWhite, bowonryu, Hermet Reviewed By: Hermet Differential Revision: https://phab.enlightenment.org/D4236 --- src/lib/auto_comp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c index c7a030c..f99277b 100644 --- a/src/lib/auto_comp.c +++ b/src/lib/auto_comp.c @@ -166,7 +166,7 @@ context_lexem_thread_cb(void *data, Ecore_Thread *thread) if (!edit_is_main_file(td->ed)) { -strcpy(stack[depth], "collections"); +strncpy(stack[depth], "collections", MAX_KEYWORD_LENGTH); depth++; } --
[EGIT] [tools/enventor] master 01/01: syntax_color: add NULL checking in macro_key_push function
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=a47b12bd53606cbd155e79c447a363b6820b5433 commit a47b12bd53606cbd155e79c447a363b6820b5433 Author: Taehyub KimDate: Wed Aug 17 22:22:53 2016 +0900 syntax_color: add NULL checking in macro_key_push function Summary: add NULL checking in macro_key_push function Reviewers: Jaehyun_Cho, bowonryu, NikaWhite, Hermet Reviewed By: NikaWhite, Hermet Differential Revision: https://phab.enlightenment.org/D4235 --- src/lib/syntax_color.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib/syntax_color.c b/src/lib/syntax_color.c index d56bacd..7d02787 100644 --- a/src/lib/syntax_color.c +++ b/src/lib/syntax_color.c @@ -191,7 +191,11 @@ macro_key_push(color_data *cd, char *str) //cutoff "()" from the macro name char *cut = strchr(key, '('); - if (cut) key = strndup(str, cut - str); + if (cut) + { +key = strndup(str, cut - str); +if (!key) return; + } char tmp[2]; tmp[0] = key[0]; --
[EGIT] [tools/enventor] master 01/01: enventor_smart: add NULL checking
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=1665ac9ba6e8b534c13f9a179c19e2eeb61abdc2 commit 1665ac9ba6e8b534c13f9a179c19e2eeb61abdc2 Author: Taehyub KimDate: Wed Aug 17 22:21:16 2016 +0900 enventor_smart: add NULL checking Summary: add NULL checking in syntax_color_set and syntax_color_get API @fix Reviewers: Jaehyun_Cho, NikaWhite, bowonryu, Hermet Reviewed By: Hermet Differential Revision: https://phab.enlightenment.org/D4233 --- src/lib/enventor_smart.c | 10 -- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c index 9981a60..38366bf 100644 --- a/src/lib/enventor_smart.c +++ b/src/lib/enventor_smart.c @@ -743,7 +743,10 @@ _enventor_object_syntax_color_set(Eo *obj EINA_UNUSED, if ((color_type < ENVENTOR_SYNTAX_COLOR_STRING) || (color_type >= ENVENTOR_SYNTAX_COLOR_LAST)) - EINA_LOG_ERR("Invalid color_type(%d)", color_type); + { +EINA_LOG_ERR("Invalid color_type(%d)", color_type); +return; + } eina_stringshare_del(pd->text_color_val[color_type]); pd->text_color_val[color_type] = eina_stringshare_add(val); @@ -766,7 +769,10 @@ _enventor_object_syntax_color_get(Eo *obj EINA_UNUSED, { if ((color_type < ENVENTOR_SYNTAX_COLOR_STRING) || (color_type >= ENVENTOR_SYNTAX_COLOR_LAST)) - EINA_LOG_ERR("Invalid color_type(%d)", color_type); + { +EINA_LOG_ERR("Invalid color_type(%d)", color_type); +return NULL; + } //Return overriden color values or defaults. if (pd->text_color_val[color_type]) --
Re: [E-devel] [EGIT] [core/enlightenment] master 01/01: e sudo gui support - add askpass util for sudo askpass support
2016-08-17 1:42 GMT+02:00 Carsten Haitzler: > On Tue, 16 Aug 2016 20:16:04 -0300 Iván Briano > said: > > > On Tue, 16 Aug 2016 21:22:32 +0900, Carsten Haitzler wrote: > > > On Tue, 16 Aug 2016 11:44:03 + Mike Blumenkrantz > > > said: > > > > > > no worries. it's the same for SSH_ASKPASS too - you still get the > normal tty > > > password req is there is a tty. if there is not both sudo and ssh can > fail > > > (unless you have a no-password ssh key or sudo is configured for > nopasswd > > > for your user). so these work as normal in the no password cases. in > the > > > cases you do need a password both will fail completely. this adds this > > > little utility so these don't hail anymore if they are in .desktop > file or > > > other command/app/script you launch from within e... :) overall this > makes > > > e more functional... thus i don't see a problem in ALWAYS setting the > env > > > var. if someone dislikes this they can override the env vars or unset > them > > > in scripts. and even in e's environment var settings since e_env_init > is > > > called after these env vars are set... :) but for the vast majority of > > > people .. they don't need this or likely want it.. and things went > from not > > > working to working out of the box with no effort on their part. :) > > > > > > some small things to improve in e here. i'll poke around some other > small > > > things here and there as i get the time. :) > > > > Now explain the do { } while(0). If all you wanted to do was indent the > > blocks hierarchically, why not just { }? I had to pay to download all > > those extra characters. > > technically {} is not legal. it works. thats why so many macros in our > public > headers have do { } while (0); because a { } may not work. > > http://stackoverflow.com/questions/257418/do-while-0-what-is-it-good-for > > it's a habit i've grown from making sure macros work. yes - using it to > indent > the code so you can clearly see child/parent relationships in widgets. i'm > trying this out as a way to make things look more readable when going over > gui layout code. > I really found that code not readable at all. While reading the code, at each "do" I need to search the matching "while" to see if you really want to repeat that code block or not :/ > > > > > > > > Oh okay, thanks for clearing that up! > > > > > > > > On Mon, Aug 15, 2016 at 7:16 PM Carsten Haitzler < > ras...@rasterman.com> > > > > wrote: > > > > > > > > > On Mon, 15 Aug 2016 15:08:53 + Mike Blumenkrantz > > > > > said: > > > > > > > > > > > On Sat, Aug 13, 2016 at 4:39 AM Carsten Haitzler > > > > > > wrote: > > > > > > > > > > > > > raster pushed a commit to branch master. > > > > > > > > > > > > > > > > > > > > > > > > > > http://git.enlightenment.org/core/enlightenment.git/commit/?id= > 8d780c7fb5ccb04c49c98370c9e4ec7a2440bbb1 > > > > > > > > > > > > > > commit 8d780c7fb5ccb04c49c98370c9e4ec7a2440bbb1 > > > > > > > Author: Carsten Haitzler (Rasterman) > > > > > > > Date: Sat Aug 13 17:39:17 2016 +0900 > > > > > > > > > > > > > > e sudo gui support - add askpass util for sudo askpass > support > > > > > > > > > > > > > > this gives e by default sudo gui support with an askpass > util > > > > > > > that sudo can use as well as setting the env var correctly so > it > > > > > > > will be used by sudo. > > > > > > > > > > > > > > @feature > > > > > > > --- > > > > > > > configure.ac | 4 + > > > > > > > data/desktop/Makefile.mk | 3 +- > > > > > > > data/desktop/enlightenment_askpass.desktop | 12 +++ > > > > > > > data/icons/Makefile.mk | 6 ++ > > > > > > > data/icons/enlightenment-askpass.png | Bin 0 -> 696 > bytes > > > > > > > src/bin/.gitignore | 1 + > > > > > > > src/bin/Makefile.mk| 9 +- > > > > > > > src/bin/e_askpass_main.c | 142 > > > > > > > + > > > > > > > src/bin/e_main.c | 2 + > > > > > > > 9 files changed, 177 insertions(+), 2 deletions(-) > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > diff --git a/src/bin/e_main.c b/src/bin/e_main.c > > > > > > > index 28ed4bc..4c705fc 100644 > > > > > > > --- a/src/bin/e_main.c > > > > > > > +++ b/src/bin/e_main.c > > > > > > > @@ -325,6 +325,8 @@ main(int argc, char **argv) > > > > > > > e_util_env_set("E_RESTART_OK", NULL); > > > > > > > e_util_env_set("PANTS", "ON"); > > > > > > > e_util_env_set("DESKTOP", "Enlightenment"); > > > > > > > + snprintf(buff, sizeof(buff), "%s/enlightenment_askpass", > > > > > > > e_prefix_bin_get()); > > > > > > > + e_util_env_set("SUDO_ASKPASS", buff); > > > > > > > TS("Environment Variables Done"); > > > > > > > > > > > > > > /*
[EGIT] [core/efl] master 01/01: docs: move all of serializers to doctree
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=2bee9169d9e143a2e13b19488534b52bc0e8c3b9 commit 2bee9169d9e143a2e13b19488534b52bc0e8c3b9 Author: Daniel KolesaDate: Wed Aug 17 13:50:01 2016 +0100 docs: move all of serializers to doctree --- src/Makefile_Elua.am | 1 - src/scripts/elua/apps/docgen/doctree.lua | 151 ++ src/scripts/elua/apps/docgen/keyref.lua | 4 +- src/scripts/elua/apps/docgen/serializers.lua | 153 --- src/scripts/elua/apps/gendoc.lua | 5 +- 5 files changed, 154 insertions(+), 160 deletions(-) diff --git a/src/Makefile_Elua.am b/src/Makefile_Elua.am index ace5d6f..d743e6c 100644 --- a/src/Makefile_Elua.am +++ b/src/Makefile_Elua.am @@ -68,7 +68,6 @@ eluadocgendir = $(datadir)/elua/apps/docgen eluadocgen_DATA = \ scripts/elua/apps/docgen/doctree.lua \ scripts/elua/apps/docgen/keyref.lua \ - scripts/elua/apps/docgen/serializers.lua \ scripts/elua/apps/docgen/stats.lua \ scripts/elua/apps/docgen/util.lua \ scripts/elua/apps/docgen/writer.lua diff --git a/src/scripts/elua/apps/docgen/doctree.lua b/src/scripts/elua/apps/docgen/doctree.lua index 1531d98..f10a819 100644 --- a/src/scripts/elua/apps/docgen/doctree.lua +++ b/src/scripts/elua/apps/docgen/doctree.lua @@ -2,6 +2,7 @@ local util = require("util") local eolian = require("eolian") +local keyref = require("docgen.keyref") local dutil = require("docgen.util") -- writer has to be loaded late to prevent cycles @@ -739,6 +740,18 @@ M.type_cstr_get = function(tp, suffix) end end +local add_typedecl_attrs = function(tp, buf) +if tp:is_extern() then +buf[#buf + 1] = "@extern " +end +local ffunc = tp:free_func_get() +if ffunc then +buf[#buf + 1] = "@free(" +buf[#buf + 1] = ffunc +buf[#buf + 1] = ") " +end +end + M.Typedecl = Node:clone { UNKNOWN = eolian.typedecl_type.UNKNOWN, STRUCT = eolian.typedecl_type.STRUCT, @@ -925,6 +938,144 @@ M.Typedecl = Node:clone { return nil end return M.Typedecl(v) +end, + +-- utils + +serialize = function(self) +local tpt = self:type_get() +if tpt == self.UNKNOWN then +error("unknown typedecl: " .. self:full_name_get()) +elseif tpt == self.STRUCT or + tpt == self.STRUCT_OPAQUE then +local buf = { "struct " } +add_typedecl_attrs(self, buf) +buf[#buf + 1] = self:full_name_get() +if tpt == self.STRUCT_OPAQUE then +buf[#buf + 1] = ";" +return table.concat(buf) +end +local fields = self:struct_fields_get() +if #fields == 0 then +buf[#buf + 1] = " {}" +return table.concat(buf) +end +buf[#buf + 1] = " {\n" +for i, fld in ipairs(fields) do +buf[#buf + 1] = "" +buf[#buf + 1] = fld:name_get() +buf[#buf + 1] = ": " +buf[#buf + 1] = fld:type_get():serialize() +buf[#buf + 1] = ";\n" +end +buf[#buf + 1] = "}" +return table.concat(buf) +elseif tpt == self.ENUM then +local buf = { "enum " } +add_typedecl_attrs(self, buf) +buf[#buf + 1] = self:full_name_get() +local fields = self:enum_fields_get() +if #fields == 0 then +buf[#buf + 1] = " {}" +return table.concat(buf) +end +buf[#buf + 1] = " {\n" +for i, fld in ipairs(fields) do +buf[#buf + 1] = "" +buf[#buf + 1] = fld:name_get() +local val = fld:value_get() +if val then +buf[#buf + 1] = ": " +buf[#buf + 1] = val:serialize() +end +if i == #fields then +buf[#buf + 1] = "\n" +else +buf[#buf + 1] = ",\n" +end +end +buf[#buf + 1] = "}" +return table.concat(buf) +elseif tpt == self.ALIAS then +local buf = { "type " } +add_typedecl_attrs(self, buf) +buf[#buf + 1] = self:full_name_get() +buf[#buf + 1] = ": " +buf[#buf + 1] = self:base_type_get():serialize() +buf[#buf + 1] = ";" +return table.concat(buf) +end +error("unhandled typedecl type: " .. tpt) +end, + +serialize_c = function(self) +local tpt = self:type_get() +if tpt == self.UNKNOWN then +error("unknown typedecl: " .. self:full_name_get()) +elseif tpt == self.STRUCT or + tpt == self.STRUCT_OPAQUE
[EGIT] [core/efl] master 01/01: docs: move type serializer into doctree
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d11cc5ddb578f763e73e3a04f7f3610d213d4a5c commit d11cc5ddb578f763e73e3a04f7f3610d213d4a5c Author: Daniel KolesaDate: Wed Aug 17 13:42:29 2016 +0100 docs: move type serializer into doctree --- src/scripts/elua/apps/docgen/doctree.lua | 56 +++ src/scripts/elua/apps/docgen/serializers.lua | 58 +--- src/scripts/elua/apps/gendoc.lua | 6 +-- 3 files changed, 61 insertions(+), 59 deletions(-) diff --git a/src/scripts/elua/apps/docgen/doctree.lua b/src/scripts/elua/apps/docgen/doctree.lua index ef412fa..1531d98 100644 --- a/src/scripts/elua/apps/docgen/doctree.lua +++ b/src/scripts/elua/apps/docgen/doctree.lua @@ -573,6 +573,23 @@ M.EnumField = Node:clone { end } +local wrap_type_attrs = function(tp, str) +if tp:is_const() then +str = "const(" .. str .. ")" +end +if tp:is_own() then +str = "own(" .. str .. ")" +end +local ffunc = tp:free_func_get() +if ffunc then +str = "free(" .. str .. ", " .. ffunc .. ")" +end +if tp:is_ref() then +str = "ref(" .. str .. ")" +end +return str +end + M.Type = Node:clone { UNKNOWN = eolian.type_type.UNKNOWN, VOID = eolian.type_type.VOID, @@ -667,6 +684,45 @@ M.Type = Node:clone { free_func_get = function(self) return self.type:free_func_get() +end, + +-- utils + +serialize = function(self) +local tpt = self:type_get() +if tpt == self.UNKNOWN then +error("unknown type: " .. self:full_name_get()) +elseif tpt == self.VOID then +return wrap_type_attrs(self, "void") +elseif tpt == self.UNDEFINED then +return wrap_type_attrs(self, "__undefined_type") +elseif tpt == self.REGULAR or tpt == self.CLASS then +return wrap_type_attrs(self, self:full_name_get()) +elseif tpt == self.COMPLEX then +local stypes = {} +local stp = self:base_type_get() +while stp do +stypes[#stypes + 1] = stp:serialize() +stp = stp:next_type_get() +end +return wrap_type_attrs(self, self:full_name_get() .. "<" +.. table.concat(stypes, ", ") .. ">") +elseif tpt == self.POINTER then +local btp = self:base_type_get() +local suffix = " *" +if btp:type_get() == self.POINTER then +suffix = "*" +end +return wrap_type_attrs(self, btp:serialize() .. suffix) +elseif tpt == self.STATIC_ARRAY then +return wrap_type_attrs(self, "static_array<" +.. self:base_type_get():serialize() .. ", " +.. self:array_size_get() .. ">") +elseif tpt == self.TERMINATED_ARRAY then +return wrap_type_attrs(self, "terminated_array<" +.. self:base_type_get():serialize() .. ">") +end +error("unhandled type type: " .. tpt) end } diff --git a/src/scripts/elua/apps/docgen/serializers.lua b/src/scripts/elua/apps/docgen/serializers.lua index c82de93..bc2b78c 100644 --- a/src/scripts/elua/apps/docgen/serializers.lua +++ b/src/scripts/elua/apps/docgen/serializers.lua @@ -3,60 +3,6 @@ local dtree = require("docgen.doctree") local M = {} -local wrap_type_attrs = function(tp, str) -if tp:is_const() then -str = "const(" .. str .. ")" -end -if tp:is_own() then -str = "own(" .. str .. ")" -end -local ffunc = tp:free_func_get() -if ffunc then -str = "free(" .. str .. ", " .. ffunc .. ")" -end -if tp:is_ref() then -str = "ref(" .. str .. ")" -end -return str -end - -M.get_type_str = function(tp) -local tpt = tp:type_get() -if tpt == tp.UNKNOWN then -error("unknown type: " .. tp:full_name_get()) -elseif tpt == tp.VOID then -return wrap_type_attrs(tp, "void") -elseif tpt == tp.UNDEFINED then -return wrap_type_attrs(tp, "__undefined_type") -elseif tpt == tp.REGULAR or tpt == tp.CLASS then -return wrap_type_attrs(tp, tp:full_name_get()) -elseif tpt == tp.COMPLEX then -local stypes = {} -local stp = tp:base_type_get() -while stp do -stypes[#stypes + 1] = M.get_type_str(stp) -stp = stp:next_type_get() -end -return wrap_type_attrs(tp, tp:full_name_get() .. "<" -.. table.concat(stypes, ", ") .. ">") -elseif tpt == tp.POINTER then -local btp = tp:base_type_get() -local suffix = " *" -if btp:type_get() == tp.POINTER then -suffix = "*" -end -return wrap_type_attrs(tp, M.get_type_str(btp) .. suffix) -elseif tpt == tp.STATIC_ARRAY then -return wrap_type_attrs(tp, "static_array<" -..
[EGIT] [core/efl] master 01/01: docs: move type cstr retrieval to doctree
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=066a2f9fd7e886ce25f36857217c8bccb1f93aff commit 066a2f9fd7e886ce25f36857217c8bccb1f93aff Author: Daniel KolesaDate: Wed Aug 17 13:34:20 2016 +0100 docs: move type cstr retrieval to doctree --- src/scripts/elua/apps/docgen/doctree.lua | 13 + src/scripts/elua/apps/docgen/serializers.lua | 17 ++--- src/scripts/elua/apps/gendoc.lua | 8 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/scripts/elua/apps/docgen/doctree.lua b/src/scripts/elua/apps/docgen/doctree.lua index 5a7077a..ef412fa 100644 --- a/src/scripts/elua/apps/docgen/doctree.lua +++ b/src/scripts/elua/apps/docgen/doctree.lua @@ -670,6 +670,19 @@ M.Type = Node:clone { end } +M.type_cstr_get = function(tp, suffix) +tp = tp or "void" +local ct = (type(tp) == "string") and tp or tp:c_type_get() +if not suffix then +return ct +end +if ct:sub(#ct) == "*" then +return ct .. suffix +else +return ct .. " " .. suffix +end +end + M.Typedecl = Node:clone { UNKNOWN = eolian.typedecl_type.UNKNOWN, STRUCT = eolian.typedecl_type.STRUCT, diff --git a/src/scripts/elua/apps/docgen/serializers.lua b/src/scripts/elua/apps/docgen/serializers.lua index b480a50..c82de93 100644 --- a/src/scripts/elua/apps/docgen/serializers.lua +++ b/src/scripts/elua/apps/docgen/serializers.lua @@ -3,19 +3,6 @@ local dtree = require("docgen.doctree") local M = {} -M.get_ctype_str = function(tp, suffix) -tp = tp or "void" -local ct = (type(tp) == "string") and tp or tp:c_type_get() -if not suffix then -return ct -end -if ct:sub(#ct) == "*" then -return ct .. suffix -else -return ct .. " " .. suffix -end -end - local wrap_type_attrs = function(tp, str) if tp:is_const() then str = "const(" .. str .. ")" @@ -170,7 +157,7 @@ M.get_typedecl_cstr = function(tp) buf[#buf + 1] = " {\n" for i, fld in ipairs(fields) do buf[#buf + 1] = "" -buf[#buf + 1] = M.get_ctype_str(fld:type_get(), fld:name_get()) +buf[#buf + 1] = dtree.type_cstr_get(fld:type_get(), fld:name_get()) buf[#buf + 1] = ";\n" end buf[#buf + 1] = "} " .. fulln .. ";" @@ -212,7 +199,7 @@ M.get_typedecl_cstr = function(tp) elseif tpt == dtree.Typedecl.ALIAS then local fulln = tp:full_name_get():gsub("%.", "_"); keyref.add(fulln, "c") -return "typedef " .. M.get_ctype_str(tp:base_type_get(), fulln) .. ";" +return "typedef " .. dtree.type_cstr_get(tp:base_type_get(), fulln) .. ";" end error("unhandled typedecl type: " .. tpt) end diff --git a/src/scripts/elua/apps/gendoc.lua b/src/scripts/elua/apps/gendoc.lua index 9b619e4..9755e71 100644 --- a/src/scripts/elua/apps/gendoc.lua +++ b/src/scripts/elua/apps/gendoc.lua @@ -20,16 +20,16 @@ local gen_cparam = function(par, out) out = out or (par:direction_get() == par.OUT) local tstr = part:c_type_get() if out then -tstr = ser.get_ctype_str(tstr, "*") +tstr = dtree.type_cstr_get(tstr, "*") end -return ser.get_ctype_str(tstr, par:name_get()) +return dtree.type_cstr_get(tstr, par:name_get()) end local get_func_csig_part = function(cn, tp) if not tp then return "void " .. cn end -return ser.get_ctype_str(tp, cn) +return dtree.type_cstr_get(tp, cn) end local gen_func_csig = function(f, ftype) @@ -1035,7 +1035,7 @@ build_event = function(ev, cl) f:write_h("C signature", 3) local cn = ev:c_name_get() keyref.add(cn, "c") -f:write_code(ser.get_ctype_str(etp, cn) .. ";", "c") +f:write_code(dtree.type_cstr_get(etp, cn) .. ";", "c") f:write_nl() f:write_h("Description", 3) --
[EGIT] [tools/eflete] master 01/01: Add ___eflete_dummy_sample___ use in programs.
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=22cd5868ca462485c5317a3fc7c8f58ab37d9281 commit 22cd5868ca462485c5317a3fc7c8f58ab37d9281 Author: Mykyta BiliavskyiDate: Wed Aug 17 14:38:59 2016 +0300 Add ___eflete_dummy_sample___ use in programs. Implemented the same behaviour as for dummy image. This will avoid segmentation fault on generation edc. And avoid situations when exported edc file is failed to build. @fix T4331 --- data/Makefile.am | 6 - data/sounds/___eflete_dummy_sample___.wav | Bin 0 -> 8126 bytes src/bin/editor/default.c | 6 - src/bin/editor/editor_program.c| 5 src/bin/eflete.c | 1 + src/bin/eflete.h | 2 ++ src/bin/project_manager/project_manager.c | 28 + src/bin/project_manager/project_manager.h | 2 +- .../project_manager/project_manager_import_edj.c | 2 ++ src/bin/project_manager/project_manager_open.c | 10 +++- src/bin/project_manager/project_manager_private.h | 6 + src/bin/ui/property/property_group.c | 27 src/bin/ui/sound_manager.c | 1 + src/bin/ui/tab_home_info.c | 2 +- 14 files changed, 88 insertions(+), 10 deletions(-) diff --git a/data/Makefile.am b/data/Makefile.am index 2bf6bc6..2145a70 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -50,6 +50,10 @@ aimages_DATA = \ ${srcdir}/images/eflete.svg \ ${srcdir}/images/toolbar_icons/*.png endif + +asounds_DATA = ${srcdir}/sounds/*.wav +asoundsdir = ${datadir}/eflete/sounds + aresourcesdir = $(datadir)/eflete/ shortcutdir = $(datadir)/applications @@ -137,5 +141,5 @@ color.eet: Makefile $(color_eet_deps) clean-local: rm -f *.edj *.eet -EXTRA_DIST = $(aimages_DATA) $(ewe_deps) $(eflete_deps) $(eflete_elm_deps) \ +EXTRA_DIST = $(aimages_DATA) $(asounds_DATA) $(ewe_deps) $(eflete_deps) $(eflete_elm_deps) \ $(color_eet_deps) $(template_edj_DATA) $(template_edc_DATA) $(template_img_DATA) $(template_snd_DATA) diff --git a/data/sounds/___eflete_dummy_sample___.wav b/data/sounds/___eflete_dummy_sample___.wav new file mode 100644 index 000..7fbf38e Binary files /dev/null and b/data/sounds/___eflete_dummy_sample___.wav differ diff --git a/src/bin/editor/default.c b/src/bin/editor/default.c index cb16550..6d31d31 100644 --- a/src/bin/editor/default.c +++ b/src/bin/editor/default.c @@ -446,10 +446,14 @@ EDITOR_PROGRAM_NULL_STRING_RESET(filter_part, "") EDITOR_PROGRAM_NULL_STRING_RESET(filter_state, "") EDITOR_PROGRAM_NULL_STRING_RESET(api_name, NULL) EDITOR_PROGRAM_NULL_STRING_RESET(api_description, NULL) -EDITOR_PROGRAM_NULL_STRING_RESET(sample_name, "") EDITOR_PROGRAM_NULL_STRING_RESET(tone_name, "") EDITOR_PROGRAM_NULL_STRING_RESET(signal, "") EDITOR_PROGRAM_NULL_STRING_RESET(source, "") EDITOR_PROGRAM_NULL_STRING_RESET(state, "") EDITOR_PROGRAM_NULL_STRING_RESET(emit_signal, "") EDITOR_PROGRAM_NULL_STRING_RESET(emit_source, "") + +#define EDITOR_PROGRAM_NOT_NULL_STRING_RESET(FUNC, RESET_VAL) \ +EDITOR_NOT_NULL_STRING_DEFAULT_CHECK(program_##FUNC, EDITOR_PROGRAM_ARGS_PROTO, EDITOR_PROGRAM_ARGS, RESET_VAL) \ +EDITOR_RESET(program_##FUNC, EDITOR_PROGRAM_ARGS_PROTO, EDITOR_PROGRAM_ARGS, RESET_VAL) +EDITOR_PROGRAM_NOT_NULL_STRING_RESET(sample_name, EFLETE_DUMMY_SAMPLE_NAME) diff --git a/src/bin/editor/editor_program.c b/src/bin/editor/editor_program.c index 2431781..d69a566 100644 --- a/src/bin/editor/editor_program.c +++ b/src/bin/editor/editor_program.c @@ -850,6 +850,11 @@ editor_program_add(Evas_Object *edit_object, Change *change, Eina_Bool merge __U CRIT_ON_FAIL(edje_edit_program_add(edit_object, program_name)); CRIT_ON_FAIL(edje_edit_program_action_set(edit_object, program_name, type)); +if (type == EDJE_ACTION_TYPE_SOUND_SAMPLE) + { + edje_edit_program_sample_name_set(edit_object, program_name, EFLETE_DUMMY_SAMPLE_NAME); + } + CRIT_ON_FAIL(editor_save(edit_object)); _editor_project_changed(); diff --git a/src/bin/eflete.c b/src/bin/eflete.c index f498195..fab8db6 100644 --- a/src/bin/eflete.c +++ b/src/bin/eflete.c @@ -99,6 +99,7 @@ app_init() ap.path.layout_edj = eina_stringshare_printf("%s/layouts/eflete.edj", elm_app_data_dir_get()); ap.path.edj_path = eina_stringshare_printf("%s/themes/default/", elm_app_data_dir_get()); ap.path.image_path = eina_stringshare_printf("%s/images/", elm_app_data_dir_get()); + ap.path.sound_path = eina_stringshare_printf("%s/sounds/", elm_app_data_dir_get()); ap.theme = elm_theme_new(); diff --git a/src/bin/eflete.h b/src/bin/eflete.h index 82012be..dcaea44 100644 --- a/src/bin/eflete.h +++
Re: [E-devel] [EGIT] [core/enlightenment] master 01/01: e sudo gui support - add askpass util for sudo askpass support
On Wed, 17 Aug 2016 08:42:17 +0900, Carsten Haitzler wrote: > On Tue, 16 Aug 2016 20:16:04 -0300 Iván Brianosaid: > > > On Tue, 16 Aug 2016 21:22:32 +0900, Carsten Haitzler wrote: > > > On Tue, 16 Aug 2016 11:44:03 + Mike Blumenkrantz > > > said: > > > > > > no worries. it's the same for SSH_ASKPASS too - you still get the normal > > > tty > > > password req is there is a tty. if there is not both sudo and ssh can fail > > > (unless you have a no-password ssh key or sudo is configured for nopasswd > > > for your user). so these work as normal in the no password cases. in the > > > cases you do need a password both will fail completely. this adds this > > > little utility so these don't hail anymore if they are in .desktop file or > > > other command/app/script you launch from within e... :) overall this makes > > > e more functional... thus i don't see a problem in ALWAYS setting the env > > > var. if someone dislikes this they can override the env vars or unset them > > > in scripts. and even in e's environment var settings since e_env_init is > > > called after these env vars are set... :) but for the vast majority of > > > people .. they don't need this or likely want it.. and things went from > > > not > > > working to working out of the box with no effort on their part. :) > > > > > > some small things to improve in e here. i'll poke around some other small > > > things here and there as i get the time. :) > > > > Now explain the do { } while(0). If all you wanted to do was indent the > > blocks hierarchically, why not just { }? I had to pay to download all > > those extra characters. > > technically {} is not legal. it works. thats why so many macros in our public > headers have do { } while (0); because a { } may not work. There's nothing wrong with using {} to create sub blocks in the code. The do {} while(0) in macros is so you can use ; at the end of the statement without changing the meaning of the code where the macro is used. -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/enlightenment] enlightenment-0.21 24/28: move new version of e_comp_top_window_at_xy_get() to dnd, restore old version
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=95d193b515c5d56288e6d2aa46672901c97b36da commit 95d193b515c5d56288e6d2aa46672901c97b36da Author: Mike BlumenkrantzDate: Mon Aug 8 11:31:28 2016 -0400 move new version of e_comp_top_window_at_xy_get() to dnd, restore old version this resolves pointer-based focus issues introduced while attempting to fix dnd-related bugs ref a4a2f6b09e88d555826a3f3b57bd8621c4b1752e ref 1a982fd72afc0aebaea5fd10f9acd08841291d60 --- src/bin/e_comp.c | 17 - src/bin/e_dnd.c | 26 -- 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index 82a2c2a..7fc6a2b 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -1477,22 +1477,13 @@ E_API Ecore_Window e_comp_top_window_at_xy_get(Evas_Coord x, Evas_Coord y) { E_Client *ec; - Eina_List *objs, *l; Evas_Object *o; EINA_SAFETY_ON_NULL_RETURN_VAL(e_comp, 0); - objs = evas_objects_at_xy_get(e_comp->evas, x, y, 0, 0); - if (!objs) return e_comp->ee_win; - EINA_LIST_FOREACH(objs, l, o) - { -ec = evas_object_data_get(o, "E_Client"); -if (ec) - { - eina_list_free(objs); - return e_client_util_pwin_get(ec); - } - } - eina_list_free(objs); + o = evas_object_top_at_xy_get(e_comp->evas, x, y, 0, 0); + if (!o) return e_comp->ee_win; + ec = evas_object_data_get(o, "E_Client"); + if (ec) return e_client_util_pwin_get(ec); return e_comp->ee_win; } diff --git a/src/bin/e_dnd.c b/src/bin/e_dnd.c index b6ad29d..91a9735 100644 --- a/src/bin/e_dnd.c +++ b/src/bin/e_dnd.c @@ -829,6 +829,28 @@ _e_dnd_object_layer_get(E_Drop_Handler *h) return adjust; } +static Ecore_Window +_dnd_top_window_at_xy_get(Evas_Coord x, Evas_Coord y) +{ + E_Client *ec; + Eina_List *objs, *l; + Evas_Object *o; + + objs = evas_objects_at_xy_get(e_comp->evas, x, y, 0, 0); + if (!objs) return e_comp->ee_win; + EINA_LIST_FOREACH(objs, l, o) + { +ec = evas_object_data_get(o, "E_Client"); +if (ec) + { + eina_list_free(objs); + return e_client_util_pwin_get(ec); + } + } + eina_list_free(objs); + return e_comp->ee_win; +} + static int _e_drag_update(Ecore_Window root, int x, int y, unsigned int action) { @@ -845,7 +867,7 @@ _e_drag_update(Ecore_Window root, int x, int y, unsigned int action) // double t1 = ecore_time_get(); if (_drag_current && !_xdnd) - win = e_comp_top_window_at_xy_get(x, y); + win = _dnd_top_window_at_xy_get(x, y); else win = root; @@ -969,7 +991,7 @@ _e_drag_end(int x, int y) int dropped = 0; if (!_drag_current) return; - win = e_comp_top_window_at_xy_get(x, y); + win = _dnd_top_window_at_xy_get(x, y); zone = e_comp_zone_xy_get(x, y); /* Pass -1, -1, so that it is possible to drop at the edge. */ if (zone) e_zone_flip_coords_handle(zone, -1, -1); --
[EGIT] [core/enlightenment] enlightenment-0.21 22/28: xwayland: show the dialog after ecore_wl2 is in sync
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=bd5c107e463147025fbdc750c4fd9cfeb9c845fc commit bd5c107e463147025fbdc750c4fd9cfeb9c845fc Author: Marcel HollerbachDate: Wed Aug 3 19:03:44 2016 +0200 xwayland: show the dialog after ecore_wl2 is in sync otherwise ecore_wl2 could produce crashes. --- src/modules/xwayland/e_mod_main.c | 9 +++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/modules/xwayland/e_mod_main.c b/src/modules/xwayland/e_mod_main.c index 3e5c895..b113e27 100644 --- a/src/modules/xwayland/e_mod_main.c +++ b/src/modules/xwayland/e_mod_main.c @@ -9,6 +9,7 @@ EINTERN void dnd_init(void); EINTERN void dnd_shutdown(void); +static Ecore_Event_Handler *sync_handler; static E_Module *xwl_init(E_Module *m); static void xwl_shutdown(void); @@ -337,9 +338,13 @@ setup_lock(void) } static Eina_Bool -error_dialog() +_cb_sync_done(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) { e_util_dialog_internal(_("Error"), _("Cannot launch XWayland from X11 display.")); + + ecore_event_handler_del(sync_handler); + sync_handler = NULL; + return EINA_FALSE; } @@ -353,7 +358,7 @@ xwl_init(E_Module *m) if (getenv("DISPLAY")) { -ecore_timer_add(1.0, error_dialog, NULL); +sync_handler = ecore_event_handler_add(ECORE_WL2_EVENT_SYNC_DONE, _cb_sync_done, NULL); return NULL; } --
[EGIT] [core/enlightenment] enlightenment-0.21 13/28: add key_up and key_down methods to sreen interface
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=db2f82185d8d86ee2ba94fdcbac82045c4d6befd commit db2f82185d8d86ee2ba94fdcbac82045c4d6befd Author: Chris MichaelDate: Wed Jul 27 13:31:13 2016 -0400 add key_up and key_down methods to sreen interface This patch adds new methods to the screen interface that we can use inside wl_drm to determine if a key event is eaten or not. This fixes an issue where VT-Switching would not work if an application was on the screen (E-Wayland). Signed-off-by: Chris Michael --- src/bin/e_comp.h| 4 src/bin/e_comp_canvas.c | 16 ++-- src/modules/wl_drm/e_mod_main.c | 37 + 3 files changed, 51 insertions(+), 6 deletions(-) diff --git a/src/bin/e_comp.h b/src/bin/e_comp.h index c391993..571e1b2 100644 --- a/src/bin/e_comp.h +++ b/src/bin/e_comp.h @@ -70,6 +70,10 @@ typedef struct E_Comp_Screen_Iface void (*apply)(void); /* set dpms (on, standby, suspend, off) */ void (*dpms)(int); + /* is key event eaten */ + Eina_Bool (*key_down)(Ecore_Event_Key *ev); + /* is key event eaten */ + Eina_Bool (*key_up)(Ecore_Event_Key *ev); } E_Comp_Screen_Iface; struct _E_Comp diff --git a/src/bin/e_comp_canvas.c b/src/bin/e_comp_canvas.c index 7d077ab..0289b42 100644 --- a/src/bin/e_comp_canvas.c +++ b/src/bin/e_comp_canvas.c @@ -118,11 +118,13 @@ _key_down(int ctx, Ecore_Event_Key *ev) */ if ((!ec) || (ev->event_window != e_comp->ee_win)) return ECORE_CALLBACK_RENEW; } - return !e_bindings_key_down_event_handle(ctx, E_OBJECT(e_comp), ev) + return ((!e_comp->screen) || + (!e_comp->screen->key_down) || (!e_comp->screen->key_down(ev))) && + !e_bindings_key_down_event_handle(ctx, E_OBJECT(e_comp), ev) #ifdef HAVE_WAYLAND - && !e_comp_wl_key_down(ev) + && !e_comp_wl_key_down(ev) #endif - ; + ; } static Eina_Bool @@ -142,11 +144,13 @@ _key_up(int ctx, Ecore_Event_Key *ev) { e_screensaver_notidle(); if ((e_comp->comp_type == E_PIXMAP_TYPE_X) && (ev->event_window != e_comp->root)) return ECORE_CALLBACK_PASS_ON; - return !e_bindings_key_up_event_handle(ctx, E_OBJECT(e_comp), ev) + return ((!e_comp->screen) || + (!e_comp->screen->key_up) || (!e_comp->screen->key_up(ev))) && + !e_bindings_key_up_event_handle(ctx, E_OBJECT(e_comp), ev) #ifdef HAVE_WAYLAND - && !e_comp_wl_key_up(ev) + && !e_comp_wl_key_up(ev) #endif - ; + ; } static Eina_Bool diff --git a/src/modules/wl_drm/e_mod_main.c b/src/modules/wl_drm/e_mod_main.c index 98f31a8..5f50f2d 100644 --- a/src/modules/wl_drm/e_mod_main.c +++ b/src/modules/wl_drm/e_mod_main.c @@ -736,6 +736,41 @@ _drm2_dpms(int set) } } +static Eina_Bool +_drm2_key_down(Ecore_Event_Key *ev) +{ + int code; + + code = (ev->keycode - 8); + + if ((ev->modifiers & ECORE_EVENT_MODIFIER_CTRL) && + ((ev->modifiers & ECORE_EVENT_MODIFIER_ALT) || + (ev->modifiers & ECORE_EVENT_MODIFIER_ALTGR)) && + (code >= KEY_F1) && (code <= KEY_F8)) + { +Ecore_Drm2_Device *dev; +int vt; + +vt = (code - KEY_F1 + 1); + +dev = ecore_evas_data_get(e_comp->ee, "device"); +if (dev) + { + ecore_drm2_device_vt_set(dev, vt); + return EINA_TRUE; + } + } + + return EINA_FALSE; +} + +static Eina_Bool +_drm2_key_up(Ecore_Event_Key *ev) +{ + (void)ev; + return EINA_FALSE; +} + static void _drm2_read_pixels(E_Comp_Wl_Output *output, void *pixels) { @@ -1143,6 +1178,8 @@ static E_Comp_Screen_Iface drmiface = .create = _drm2_randr_create, .apply = _drm2_randr_apply, .dpms = _drm2_dpms, + .key_down = _drm2_key_down, + .key_up = _drm2_key_up, #else .create = _drm_randr_create, .apply = _drm_randr_apply, --
[EGIT] [core/enlightenment] enlightenment-0.21 08/28: e ibar - fix devilhorns fix to use the right widght and hight for separator
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=dc608ede51e772b3b183b34505c9842e5caa9fc9 commit dc608ede51e772b3b183b34505c9842e5caa9fc9 Author: Carsten Haitzler (Rasterman)Date: Mon Jul 25 22:21:47 2016 +0900 e ibar - fix devilhorns fix to use the right widght and hight for separator --- src/modules/ibar/e_mod_main.c | 8 +++- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c index 4ba77b0..e5b5ba9 100644 --- a/src/modules/ibar/e_mod_main.c +++ b/src/modules/ibar/e_mod_main.c @@ -653,12 +653,10 @@ _ibar_resize_handle(IBar *b) } if (b->o_sep) { -if (_is_vertical(b->inst)) - h = 16 * e_scale; -else - w = 16 * e_scale; +if (_is_vertical(b->inst)) hh = 16 * e_scale; +else ww = 16 * e_scale; evas_object_size_hint_min_set(b->o_sep, 8, 8); -evas_object_size_hint_max_set(b->o_sep, w, h); +evas_object_size_hint_max_set(b->o_sep, ww, wh); } elm_box_recalculate(b->o_box); elm_box_recalculate(b->o_outerbox); --
[EGIT] [core/enlightenment] enlightenment-0.21 11/28: wl_fb: Check that e_comp_wl_init does not fail.
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=1087516f3931acd9579d214daf6ee8c624626fa1 commit 1087516f3931acd9579d214daf6ee8c624626fa1 Author: Chris MichaelDate: Tue Jul 26 13:00:33 2016 -0400 wl_fb: Check that e_comp_wl_init does not fail. Signed-off-by: Chris Michael --- src/modules/wl_fb/e_mod_main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/modules/wl_fb/e_mod_main.c b/src/modules/wl_fb/e_mod_main.c index cfbdef2..6bb7206 100644 --- a/src/modules/wl_fb/e_mod_main.c +++ b/src/modules/wl_fb/e_mod_main.c @@ -35,7 +35,9 @@ e_modapi_init(E_Module *m) screen->h = h; e_xinerama_screens_set(eina_list_append(NULL, screen)); } - e_comp_wl_init(); + + if (!e_comp_wl_init()) return NULL; + e_comp_canvas_init(w, h); e_comp->pointer = e_pointer_canvas_new(e_comp->ee, EINA_TRUE); --
[EGIT] [core/enlightenment] enlightenment-0.21 14/28: bg: Fix bg with single jpeg images (no edj)
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=00886ff0e4aa18aed4d37aa137d9fb5e53de83a2 commit 00886ff0e4aa18aed4d37aa137d9fb5e53de83a2 Author: Jean-Philippe AndreDate: Thu Jul 28 20:47:44 2016 +0900 bg: Fix bg with single jpeg images (no edj) When selecting a jpeg file directly as wallpaper, it will look very blurry, clearly loaded as a low-resolution image and then scaled up. Solution: don't load at size 64x64! For @OnlyHuman, thanks for the report. @fix --- src/bin/e_bg.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/e_bg.c b/src/bin/e_bg.c index d31338d..9a1ffc9 100644 --- a/src/bin/e_bg.c +++ b/src/bin/e_bg.c @@ -265,6 +265,7 @@ e_bg_zone_update(E_Zone *zone, E_Bg_Transition transition) { o = e_icon_add(e_comp->evas); e_icon_file_key_set(o, bgfile, NULL); +e_icon_scale_size_set(o, 0); e_icon_fill_inside_set(o, 0); } else --
[EGIT] [core/enlightenment] enlightenment-0.21 05/28: e fm: Don’t check every other line whether the location is writable when creating menu.
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=e66f0e563497a18fc823aa6471656b37e0b78939 commit e66f0e563497a18fc823aa6471656b37e0b78939 Author: Chidambar ZinnouryDate: Sat Jul 23 12:51:03 2016 +0200 e fm: Don’t check every other line whether the location is writable when creating menu. --- src/bin/e_fm.c | 11 +++ 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c index 88f2287..f190157 100644 --- a/src/bin/e_fm.c +++ b/src/bin/e_fm.c @@ -9065,6 +9065,7 @@ _e_fm2_icon_menu(E_Fm2_Icon *ic, Evas_Object *obj, unsigned int timestamp) Eina_List *l = NULL; int x, y, can_w, can_w2, protect; char buf[PATH_MAX], *ext; + Eina_Bool writable; sd = ic->sd; if (ic->menu) return; @@ -9077,6 +9078,8 @@ _e_fm2_icon_menu(E_Fm2_Icon *ic, Evas_Object *obj, unsigned int timestamp) sd->icon_menu.replace.func(sd->icon_menu.replace.data, sd->obj, mn, >info); else { +writable = ecore_file_can_write(sd->realpath); + if (sd->icon_menu.start.func) sd->icon_menu.start.func(sd->icon_menu.start.data, sd->obj, mn, >info); if (!(sd->icon_menu.flags & E_FM2_MENU_NO_VIEW_MENU)) @@ -9115,7 +9118,7 @@ _e_fm2_icon_menu(E_Fm2_Icon *ic, Evas_Object *obj, unsigned int timestamp) } /* FIXME: stat the dir itself - move to e_fm_main */ -if (ecore_file_can_write(sd->realpath) && !(sd->icon_menu.flags & E_FM2_MENU_NO_NEW)) +if (writable && !(sd->icon_menu.flags & E_FM2_MENU_NO_NEW)) { mi = e_menu_item_new(mn); e_menu_item_separator_set(mi, 1); @@ -9194,7 +9197,7 @@ _e_fm2_icon_menu(E_Fm2_Icon *ic, Evas_Object *obj, unsigned int timestamp) { if (!(sd->icon_menu.flags & E_FM2_MENU_NO_CUT)) { - if (ecore_file_can_write(sd->realpath)) + if (writable) { mi = e_menu_item_new(mn); e_menu_item_separator_set(mi, 1); @@ -9207,7 +9210,7 @@ _e_fm2_icon_menu(E_Fm2_Icon *ic, Evas_Object *obj, unsigned int timestamp) } if (!(sd->icon_menu.flags & E_FM2_MENU_NO_COPY)) { - if (!ecore_file_can_write(sd->realpath)) + if (!writable) { mi = e_menu_item_new(mn); e_menu_item_separator_set(mi, 1); @@ -9222,7 +9225,7 @@ _e_fm2_icon_menu(E_Fm2_Icon *ic, Evas_Object *obj, unsigned int timestamp) if (((!(sd->icon_menu.flags & E_FM2_MENU_NO_PASTE)) || (!(sd->icon_menu.flags & E_FM2_MENU_NO_SYMLINK))) && (eina_list_count(_e_fm_file_buffer) > 0) && - ecore_file_can_write(sd->realpath)) + writable) { if (!(sd->icon_menu.flags & E_FM2_MENU_NO_PASTE)) { --
[EGIT] [core/enlightenment] enlightenment-0.21 12/28: Updating italian and spanish translations
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=dd5b1744c711a6bd84740e6ea927a6380caf2dd3 commit dd5b1744c711a6bd84740e6ea927a6380caf2dd3 Author: maxerbaDate: Wed Jul 27 00:48:38 2016 +0200 Updating italian and spanish translations --- po/es.po | 501 +- po/it.po | 923 --- 2 files changed, 718 insertions(+), 706 deletions(-) diff --git a/po/es.po b/po/es.po index c6f7cca..2a4b06f 100644 --- a/po/es.po +++ b/po/es.po @@ -5,14 +5,14 @@ # Federico Vera , 2008. # DiegoJ , 2009. # Aníbal Garrido , 2012. -# Adrián Arévalo , 2012, 2013. +# Adrián Arévalo , 2012, 2013, 2016. # msgid "" msgstr "" "Project-Id-Version: Enlightenment 0.17\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2015-06-08 21:10+0900\n" -"PO-Revision-Date: 2015-03-22 10:07+0100\n" +"PO-Revision-Date: 2016-07-25 17:09+0200\n" "Last-Translator: Adrián Arévalo \n" "Language-Team: Español; Castellano <>\n" "Language: es\n" @@ -20,8 +20,8 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 1.7.5\n" -"X-Poedit-Basepath: /home/adrian/trunk/e/\n" +"X-Generator: Poedit 1.8.8\n" +"X-Poedit-Basepath: /home/adrian/trunk/e\n" #: src/bin/e_about.c:17 msgid "About Enlightenment" @@ -53,7 +53,7 @@ msgid "" "it.To contact us please visit:http://www.enlightenment.; "org" msgstr "" -"Copyright 2000-2012, por el Equipo de Desarrollo de " +"Copyright 2000-2015, por el Equipo de Desarrollo de " "EnlightenmentEsperamos que disfrute usando este software tanto " "como nosotros disfrutamos escribiéndolo.Para contactar con nosotros " "visite:http://www.enlightenment.org" @@ -86,8 +86,7 @@ msgstr "Matar" #: src/bin/e_actions.c:2246 src/bin/e_actions.c:2303 src/bin/e_actions.c:2365 #: src/bin/e_actions.c:2456 src/bin/e_confirm_dialog.c:53 #: src/bin/e_desklock.c:549 src/bin/e_fm.c:10625 src/bin/e_fm.c:10978 -#: src/bin/e_screensaver.c:196 -#: src/modules/quickaccess/e_mod_quickaccess.c:1305 +#: src/bin/e_screensaver.c:196 src/modules/quickaccess/e_mod_quickaccess.c:1305 msgid "No" msgstr "No" @@ -106,8 +105,7 @@ msgstr "¿Está seguro de que desea salir de Enlightenment?" #: src/bin/e_actions.c:2093 src/bin/e_actions.c:2184 src/bin/e_actions.c:2244 #: src/bin/e_actions.c:2301 src/bin/e_actions.c:2363 src/bin/e_actions.c:2454 #: src/bin/e_confirm_dialog.c:52 src/bin/e_desklock.c:547 src/bin/e_fm.c:10628 -#: src/bin/e_screensaver.c:194 -#: src/modules/quickaccess/e_mod_quickaccess.c:1305 +#: src/bin/e_screensaver.c:194 src/modules/quickaccess/e_mod_quickaccess.c:1305 msgid "Yes" msgstr "Sí" @@ -215,7 +213,7 @@ msgstr "Alternar modo minimizado" #: src/bin/e_actions.c:3025 #, fuzzy msgid "Iconic Mode Enable" -msgstr "Minimizar" +msgstr "Habilitar modo minizado" #: src/bin/e_actions.c:3030 msgid "Fullscreen Mode Toggle" @@ -370,7 +368,7 @@ msgstr "Voltear el escritorio a..." #: src/bin/e_actions.c:3140 #, fuzzy msgid "Switch Desktop To... On Screen..." -msgstr "Cambiar al escritorio... (todas las pantallas)" +msgstr "Cambiar al escritorio... en pantalla..." #: src/bin/e_actions.c:3146 msgid "Flip Desktop Linearly..." @@ -771,18 +769,16 @@ msgid "Suspend Now" msgstr "Suspender ahora" #: src/bin/e_actions.c:3444 -#, fuzzy msgid "Suspend Intelligently" -msgstr "Retardo de suspensión" +msgstr "Suspender en modo inteligente" #: src/bin/e_actions.c:3452 msgid "Hibernate Now" msgstr "Hibernar ahora" #: src/bin/e_actions.c:3456 -#, fuzzy msgid "Hibernate Intelligently" -msgstr "La hibernación falló." +msgstr "Hibernar en modo inteligente" #: src/bin/e_actions.c:3464 msgid "Lock" @@ -798,7 +794,7 @@ msgstr "Genérico : Acciones" #: src/bin/e_actions.c:3474 msgid "Delayed Action" -msgstr "Acciones retardadas" +msgstr "Acción retrasada" #: src/bin/e_actions.c:3482 src/bin/e_actions.c:3486 src/bin/e_actions.c:3490 msgid "Keyboard Layouts" @@ -835,9 +831,8 @@ msgid "Color Selector" msgstr "Selector de color" #: src/bin/e_color_dialog.c:53 -#, fuzzy msgid "Color Preview" -msgstr "Previsualizar" +msgstr "Previsualización de color" #: src/bin/e_color_dialog.c:67 msgid "Select" @@ -933,20 +928,19 @@ msgstr "" #: src/bin/e_comp_x.c:4858 #, fuzzy msgid "Another compositor is already running on your display server." -msgstr "Ya hay otro compositor de ventanas ejecutándose" +msgstr "Ya hay otro compositor ejecutándose." #: src/bin/e_comp_x.c:4877 -#, fuzzy msgid "" "Your display server does not support the compositor overlay window.\n" "This is needed for Enlightenment to function." msgstr "" -"Su tarjeta gráfica no soporta la superposiciónde
[EGIT] [core/enlightenment] enlightenment-0.21 03/28: e: Don’t show two consecutive menu separators if there is no need in client menu.
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=bef0bafda68192b7a377e1ee6f89475862fdb43a commit bef0bafda68192b7a377e1ee6f89475862fdb43a Author: Chidambar ZinnouryDate: Sat Jul 23 12:15:11 2016 +0200 e: Don’t show two consecutive menu separators if there is no need in client menu. This would happen if we don’t show some stacking settings. @fix --- src/bin/e_int_client_menu.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bin/e_int_client_menu.c b/src/bin/e_int_client_menu.c index e8625ca..512f512 100644 --- a/src/bin/e_int_client_menu.c +++ b/src/bin/e_int_client_menu.c @@ -1382,14 +1382,14 @@ _e_client_menu_cb_stacking_pre(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *m "e/widgets/border/default/stack_below"), "e/widgets/border/default/stack_below"); - submi = e_menu_item_new(subm); - e_menu_item_separator_set(submi, 1); - // Only allow to change layer for windows in "normal" layers if ((!ec->lock_user_stacking) && ((ec->layer == 50) || (ec->layer == 100) || (ec->layer == 150))) { submi = e_menu_item_new(subm); +e_menu_item_separator_set(submi, 1); + +submi = e_menu_item_new(subm); e_menu_item_label_set(submi, _("Raise")); e_menu_item_callback_set(submi, _e_client_menu_cb_raise, ec); e_menu_item_icon_edje_set(submi, --
[EGIT] [core/enlightenment] enlightenment-0.21 18/28: e_comp_wl: destroy e_drag when source disappears
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=15eb6afa16f58d8e23cf3268a1f94f70d8b139eb commit 15eb6afa16f58d8e23cf3268a1f94f70d8b139eb Author: Marcel HollerbachDate: Mon Jul 25 19:49:55 2016 +0200 e_comp_wl: destroy e_drag when source disappears Otherwise we are expecting a running dnd later, and accessing invalid memory. --- src/bin/e_comp_wl_data.c | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/bin/e_comp_wl_data.c b/src/bin/e_comp_wl_data.c index 04ccd32..0ea274c 100644 --- a/src/bin/e_comp_wl_data.c +++ b/src/bin/e_comp_wl_data.c @@ -375,7 +375,12 @@ _e_comp_wl_data_source_cb_resource_destroy(struct wl_resource *resource) _mime_types_free(source); if (e_comp_wl->drag_source == source) - e_comp_wl->drag_source = NULL; + { +e_comp_wl->drag_source = NULL; +//free the drag here +e_object_del(E_OBJECT(e_comp_wl->drag)); +e_comp_wl->drag = NULL; + } free(source); } --
[EGIT] [core/enlightenment] enlightenment-0.21 07/28: use proper variables to set size_hint_max on ibar
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=15de3e6ac8f8b10fe9727bc442cee9c687d297a6 commit 15de3e6ac8f8b10fe9727bc442cee9c687d297a6 Author: Chris MichaelDate: Mon Jul 25 09:05:40 2016 -0400 use proper variables to set size_hint_max on ibar Signed-off-by: Chris Michael --- src/modules/ibar/e_mod_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c index d14e7bf..4ba77b0 100644 --- a/src/modules/ibar/e_mod_main.c +++ b/src/modules/ibar/e_mod_main.c @@ -658,7 +658,7 @@ _ibar_resize_handle(IBar *b) else w = 16 * e_scale; evas_object_size_hint_min_set(b->o_sep, 8, 8); -evas_object_size_hint_max_set(b->o_sep, ww, hh); +evas_object_size_hint_max_set(b->o_sep, w, h); } elm_box_recalculate(b->o_box); elm_box_recalculate(b->o_outerbox); --
[EGIT] [core/enlightenment] enlightenment-0.21 26/28: clear wl subsurface data during delete only if subsurface is not also deleted
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=0653cff5f0ec4c8c215417a7f6a1e4e838a03d41 commit 0653cff5f0ec4c8c215417a7f6a1e4e838a03d41 Author: Mike BlumenkrantzDate: Mon Aug 8 11:38:32 2016 -0400 clear wl subsurface data during delete only if subsurface is not also deleted fix T4297 --- src/bin/e_comp_wl.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index dbf6b48..718c4a8 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -2436,7 +2436,10 @@ _e_comp_wl_client_cb_del(void *data EINA_UNUSED, E_Client *ec) /* remove sub list */ EINA_LIST_FREE(ec->comp_data->sub.list, subc) - subc->comp_data->sub.data->parent = NULL; + { +if (!e_object_is_del(E_OBJECT(subc))) + subc->comp_data->sub.data->parent = NULL; + } if ((ec->parent) && (ec->parent->modal == ec)) { --
[EGIT] [core/enlightenment] enlightenment-0.21 10/28: remove need to create different dialog windows under wayland
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=3d94fefd57bd55bf549372bb5ed63416976f4abd commit 3d94fefd57bd55bf549372bb5ed63416976f4abd Author: Chris MichaelDate: Mon Jul 25 13:06:59 2016 -0400 remove need to create different dialog windows under wayland NB: This hack is no longer needed. Signed-off-by: Chris Michael --- src/bin/e_config_dialog.c | 8 +--- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/bin/e_config_dialog.c b/src/bin/e_config_dialog.c index dc55c10..08df400 100644 --- a/src/bin/e_config_dialog.c +++ b/src/bin/e_config_dialog.c @@ -189,13 +189,7 @@ _e_config_dialog_go(E_Config_Dialog *cfd, E_Config_Dialog_CFData_Type type) if ((cfd->view->normal_win) || (e_config->cfgdlg_normal_wins)) cfd->dia = e_dialog_normal_win_new(cfd->parent, cfd->name, buf); else - { - /* FIXME: REMOVE HACK FOR WAYLAND BEFORE RELEASE */ - if (e_comp && e_comp->comp_type != E_PIXMAP_TYPE_WL) - cfd->dia = e_dialog_new(cfd->parent, cfd->name, buf); - else - cfd->dia = e_dialog_normal_win_new(cfd->parent, cfd->name, buf); - } + cfd->dia = e_dialog_new(cfd->parent, cfd->name, buf); e_object_del_attach_func_set(E_OBJECT(cfd->dia), _e_config_dialog_cb_dialog_del); } /* window was created before - deleting content only */ --
[EGIT] [core/enlightenment] enlightenment-0.21 21/28: e_dnd: move the ungrab to the object free
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ae47f0bbb2466130967414e2ee46785d8fb8598f commit ae47f0bbb2466130967414e2ee46785d8fb8598f Author: Marcel HollerbachDate: Wed Aug 3 19:02:26 2016 +0200 e_dnd: move the ungrab to the object free otherwise there are cases where the ungrabbing is not executing, and blocking input. --- src/bin/e_comp_wl_data.c | 1 - src/bin/e_dnd.c | 6 -- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/bin/e_comp_wl_data.c b/src/bin/e_comp_wl_data.c index 0ea274c..490fd07 100644 --- a/src/bin/e_comp_wl_data.c +++ b/src/bin/e_comp_wl_data.c @@ -376,7 +376,6 @@ _e_comp_wl_data_source_cb_resource_destroy(struct wl_resource *resource) if (e_comp_wl->drag_source == source) { -e_comp_wl->drag_source = NULL; //free the drag here e_object_del(E_OBJECT(e_comp_wl->drag)); e_comp_wl->drag = NULL; diff --git a/src/bin/e_dnd.c b/src/bin/e_dnd.c index aecf430..b6ad29d 100644 --- a/src/bin/e_dnd.c +++ b/src/bin/e_dnd.c @@ -1072,8 +1072,6 @@ _e_drag_end(int x, int y) _drag_current->cb.finished = NULL; e_object_del(E_OBJECT(_drag_current)); - if (e_comp->comp_type == E_PIXMAP_TYPE_WL) - e_comp_ungrab_input(1, 1); } static void @@ -1153,7 +1151,11 @@ _e_drag_free(E_Drag *drag) ecore_x_window_free(_drag_win); ecore_x_window_shadow_tree_flush(); } + else #endif + { +e_comp_ungrab_input(1, 1); + } e_bindings_disabled_set(0); _drag_win = 0; } --
[EGIT] [core/enlightenment] enlightenment-0.21 09/28: e ibar - fix "old man" fat finger typo ; )
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=df40bef557d25d0ab8a0bd1901fda10871280e40 commit df40bef557d25d0ab8a0bd1901fda10871280e40 Author: Chris MichaelDate: Mon Jul 25 09:27:52 2016 -0400 e ibar - fix "old man" fat finger typo ;) Signed-off-by: Chris Michael --- src/modules/ibar/e_mod_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c index e5b5ba9..d810b3d 100644 --- a/src/modules/ibar/e_mod_main.c +++ b/src/modules/ibar/e_mod_main.c @@ -656,7 +656,7 @@ _ibar_resize_handle(IBar *b) if (_is_vertical(b->inst)) hh = 16 * e_scale; else ww = 16 * e_scale; evas_object_size_hint_min_set(b->o_sep, 8, 8); -evas_object_size_hint_max_set(b->o_sep, ww, wh); +evas_object_size_hint_max_set(b->o_sep, ww, hh); } elm_box_recalculate(b->o_box); elm_box_recalculate(b->o_outerbox); --
[EGIT] [core/enlightenment] enlightenment-0.21 01/28: e temp module - kill tempget process not terminate to ensure death
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=70c8fa7ae1d898ca863012fc6ebdde8fbfa5f11b commit 70c8fa7ae1d898ca863012fc6ebdde8fbfa5f11b Author: Carsten Haitzler (Rasterman)Date: Wed Jul 20 18:12:04 2016 +0900 e temp module - kill tempget process not terminate to ensure death it seems on openbsd sigterm doesnt kill things... sigkill does so move to that. fixes T4121 @fix --- src/modules/temperature/e_mod_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/temperature/e_mod_main.c b/src/modules/temperature/e_mod_main.c index ab4ef76..b6a521f 100644 --- a/src/modules/temperature/e_mod_main.c +++ b/src/modules/temperature/e_mod_main.c @@ -135,7 +135,7 @@ _gc_shutdown(E_Gadcon_Client *gcc) if (inst->tempget_exe) { - ecore_exe_terminate(inst->tempget_exe); + ecore_exe_kill(inst->tempget_exe); ecore_exe_free(inst->tempget_exe); inst->tempget_exe = NULL; } @@ -305,7 +305,7 @@ temperature_face_update_config(Config_Face *inst) if (inst->tempget_exe) { -ecore_exe_terminate(inst->tempget_exe); +ecore_exe_kill(inst->tempget_exe); ecore_exe_free(inst->tempget_exe); inst->tempget_exe = NULL; } --
[EGIT] [core/enlightenment] enlightenment-0.21 27/28: add xwayland compat for efl 1.19+
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=057a1c2556149adea01f9120b0672f1283020df7 commit 057a1c2556149adea01f9120b0672f1283020df7 Author: Mike BlumenkrantzDate: Mon Aug 15 10:51:32 2016 -0400 add xwayland compat for efl 1.19+ --- src/modules/xwayland/e_mod_main.c | 4 1 file changed, 4 insertions(+) diff --git a/src/modules/xwayland/e_mod_main.c b/src/modules/xwayland/e_mod_main.c index b113e27..6a024c2 100644 --- a/src/modules/xwayland/e_mod_main.c +++ b/src/modules/xwayland/e_mod_main.c @@ -369,7 +369,11 @@ xwl_init(E_Module *m) return NULL; #ifdef HAVE_PULSE + #ifdef EFL_VERSION_1_19 + efl_del(efl_add(ECORE_AUDIO_OUT_PULSE_CLASS, NULL)); + #else eo_del(eo_add(ECORE_AUDIO_OUT_PULSE_CLASS, NULL)); + #endif #endif /* record wayland display */ --
[EGIT] [core/enlightenment] enlightenment-0.21 06/28: remove unused variables from _ibar_resize_handle
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=a0f411a7728a852a7763460a1ce122ace191d45e commit a0f411a7728a852a7763460a1ce122ace191d45e Author: Chris MichaelDate: Mon Jul 25 08:44:12 2016 -0400 remove unused variables from _ibar_resize_handle Signed-off-by: Chris Michael --- src/modules/ibar/e_mod_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c index 0645339..d14e7bf 100644 --- a/src/modules/ibar/e_mod_main.c +++ b/src/modules/ibar/e_mod_main.c @@ -638,7 +638,7 @@ static void _ibar_resize_handle(IBar *b) { IBar_Icon *ic; - Evas_Coord w, h, xx, yy, ww, hh; + Evas_Coord w, h, ww, hh; if (!b->inst->gcc) return; evas_object_geometry_get(b->o_outerbox, NULL, NULL, , ); --
[EGIT] [core/enlightenment] enlightenment-0.21 16/28: only check x11 configurerequest geometry changes when applicable
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=0eaca149c042008dce1df9008570982381ca4d3d commit 0eaca149c042008dce1df9008570982381ca4d3d Author: Mike BlumenkrantzDate: Mon Aug 1 10:54:44 2016 -0400 only check x11 configurerequest geometry changes when applicable in some cases during a frame recalc this could lead to window positioning being erroneously changed fix T4097 --- src/bin/e_comp_x.c | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c index e1ee1c7..497d760 100644 --- a/src/bin/e_comp_x.c +++ b/src/bin/e_comp_x.c @@ -1709,8 +1709,12 @@ _e_comp_x_configure_request(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore e_comp_object_frame_xy_adjust(ec->frame, x, y, , ); e_comp_object_frame_wh_adjust(ec->frame, w, h, , ); - move = (x != ec->x) || (y != ec->y); - resize = (w != ec->w) || (h != ec->h); + if ((ev->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_X) || + (ev->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_Y)) + move = (x != ec->x) || (y != ec->y); + if ((ev->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_W) || + (ev->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_H)) + resize = (w != ec->w) || (h != ec->h); if (move && (!ec->lock_client_location)) { --
[EGIT] [core/enlightenment] enlightenment-0.21 28/28: bump efl wayland req to 1.18 now that it's out
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=92ef626aae10f127b586f4dd549e1bc0b7ea66a1 commit 92ef626aae10f127b586f4dd549e1bc0b7ea66a1 Author: Mike BlumenkrantzDate: Wed Aug 17 07:02:02 2016 -0400 bump efl wayland req to 1.18 now that it's out --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index b6dd3c9..7608181 100644 --- a/configure.ac +++ b/configure.ac @@ -674,7 +674,7 @@ AC_MSG_CHECKING([whether wayland EGL support is enabled]) AC_MSG_RESULT([${e_cv_want_wayland_egl}]) if test "x${e_cv_want_wayland_only}" != "xno" ;then - PKG_CHECK_MODULES([WAYLAND], [ecore-wl2 >= 1.17.99 wayland-server >= 1.11.0 wayland-client >= 1.11.0 xkbcommon uuid], + PKG_CHECK_MODULES([WAYLAND], [ecore-wl2 >= 1.18 wayland-server >= 1.11.0 wayland-client >= 1.11.0 xkbcommon uuid], [ have_wayland=yes have_wayland_dep=true --
[EGIT] [core/enlightenment] enlightenment-0.21 25/28: E: include uuid.h only when Wayland support is enabled.
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c20a32b8b83a60a02ce6a8df261f12604c1f727e commit c20a32b8b83a60a02ce6a8df261f12604c1f727e Author: Romain NaourDate: Fri Aug 5 21:34:27 2016 +0200 E: include uuid.h only when Wayland support is enabled. libuuid is checked only when Wayland support is enabled and uuid_t uuid is guarded by HAVE_WAYLAND. So move include uuid.h below a HAVE_WAYLAND. Signed-off-by: Romain Naour fix T4298 --- src/bin/e_pixmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c index febb689..72b26e8 100644 --- a/src/bin/e_pixmap.c +++ b/src/bin/e_pixmap.c @@ -2,6 +2,7 @@ #ifdef HAVE_WAYLAND # include "e_comp_wl.h" +# include # ifndef EGL_TEXTURE_FORMAT # define EGL_TEXTURE_FORMAT 0x3080 # endif @@ -18,7 +19,6 @@ #endif #include -#include static Eina_Hash *pixmaps[2] = {NULL}; static Eina_Hash *aliases[2] = {NULL}; --
[EGIT] [core/enlightenment] enlightenment-0.21 04/28: e fm: Add a separator only if there is something before.
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=595e527a9adfdb431658c1fdce05e937087f9f17 commit 595e527a9adfdb431658c1fdce05e937087f9f17 Author: Chidambar ZinnouryDate: Sat Jul 23 12:24:49 2016 +0200 e fm: Add a separator only if there is something before. Currently, the context menu will show a separator before the background and overlay items even if there is nothing before, such as on the favourites pane. @fix --- src/bin/e_fm.c | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c index 662eab4..88f2287 100644 --- a/src/bin/e_fm.c +++ b/src/bin/e_fm.c @@ -10032,8 +10032,12 @@ _e_fm2_view_menu_pre(void *data, E_Menu *subm) if (_e_fm2_desktop_open(sd) < 0) return; e_object_data_set(E_OBJECT(subm), sd); e_object_del_attach_func_set(E_OBJECT(subm), _e_fm2_view_menu_del); - mi = e_menu_item_new(subm); - e_menu_item_separator_set(mi, 1); + + if (e_menu_item_nth(subm, 0) != NULL) + { +mi = e_menu_item_new(subm); +e_menu_item_separator_set(mi, 1); + } mi = e_menu_item_new(subm); e_menu_item_label_set(mi, _("Set background...")); --
[EGIT] [core/enlightenment] enlightenment-0.21 19/28: e_alert: define EFL_BETA_API_SUPPORT before any include
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=a63193a9e751b68569e3ab4c0be6d28a1dfa08ef commit a63193a9e751b68569e3ab4c0be6d28a1dfa08ef Author: Marcel HollerbachDate: Wed Aug 3 11:30:58 2016 +0200 e_alert: define EFL_BETA_API_SUPPORT before any include otherwise we can include half efl without api and the other parts with beta api support, which leads to problems. The current problem was that Eo.h was first included without the EFL_BETA_API_SUPPORT, in Evas.h EFL_BETA_API_SUPPORT is defined, so the header expects Eo_Callback_Priority to be defined. @fix --- src/bin/e_alert_main.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/bin/e_alert_main.c b/src/bin/e_alert_main.c index b2bcd3c..c0cb3c6 100644 --- a/src/bin/e_alert_main.c +++ b/src/bin/e_alert_main.c @@ -1,5 +1,9 @@ #include "config.h" +#ifdef HAVE_DRM2 +# define EFL_BETA_API_SUPPORT +#endif + #include #include #include @@ -19,7 +23,6 @@ # ifdef HAVE_WL_DRM # include # ifdef HAVE_DRM2 -# define EFL_BETA_API_SUPPORT # include # include # else --
[EGIT] [core/enlightenment] enlightenment-0.21 23/28: improve quickaccess relaunch help dialog text
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ec5cb806d983338f8d7c823e6fed7289ac74944a commit ec5cb806d983338f8d7c823e6fed7289ac74944a Author: Mike BlumenkrantzDate: Mon Aug 8 11:23:58 2016 -0400 improve quickaccess relaunch help dialog text fix T4216 --- src/modules/quickaccess/e_mod_quickaccess.c | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/modules/quickaccess/e_mod_quickaccess.c b/src/modules/quickaccess/e_mod_quickaccess.c index ba5b1f1..33f1464 100644 --- a/src/modules/quickaccess/e_mod_quickaccess.c +++ b/src/modules/quickaccess/e_mod_quickaccess.c @@ -313,8 +313,7 @@ _e_qa_entry_relaunch_setup_help(void *data, E_Dialog *dia) entry->dia = NULL; entry->dia = dia = e_dialog_new(NULL, "E", "_quickaccess_cmd_help_dialog"); - snprintf(buf, sizeof(buf), "%s%s/e-module-quickaccess.edj%s" - "data.item: \"%s\" \"--OPT\";", _("The relaunch option is meant to be used" + snprintf(buf, sizeof(buf), _("The relaunch option is meant to be used" "with terminal applications to create a persistent" "terminal which reopens when closed, generally seen" "in quake-style drop-down terminals." @@ -322,9 +321,12 @@ _e_qa_entry_relaunch_setup_help(void *data, E_Dialog *dia) "or the cmdline flag for changing the terminal's window" "name is not known. Feel free to submit a bug report if this" "is a terminal which can change its window name." - "Alternatively, you can add a data.item to"), + "Alternatively, you can add a data.item to" + "%s/e-module-quickaccess.edj" + "Like so:" + "data.item: \"%s\" \"--OPT\";"), e_module_dir_get(qa_mod->module), - _("Like so:"), entry->class); + entry->class); e_dialog_title_set(dia, _("Quickaccess Help")); e_dialog_icon_set(dia, "enlightenment", 64); --
[EGIT] [core/enlightenment] enlightenment-0.21 20/28: mailmap: sync updated file from efl repo
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=09ba7db93cb4ca0e056704923f162e744d83e87b commit 09ba7db93cb4ca0e056704923f162e744d83e87b Author: Stefan SchmidtDate: Thu Aug 4 12:46:40 2016 +0200 mailmap: sync updated file from efl repo --- .mailmap | 15 ++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.mailmap b/.mailmap index 0bb03a3..68d4168 100644 --- a/.mailmap +++ b/.mailmap @@ -4,7 +4,7 @@ # More people can be added following this scheme: # Proper Name Commit Name # -# Please keep this file in sync between efl, elementary, e and terminology. +# Please keep this file in sync between efl, e and terminology. Carsten Haitzler Carsten Haitzler (Rasterman) Cedric BAIL Cedric Bail @@ -14,13 +14,20 @@ Cedric BAIL Cedric BAIL Cedric BAIL Cedric BAIL Cedric BAIL Cedric BAIL Vincent Torri Vincent Torri +Vincent Torri Vincent Torri +Vincent Torri Vincent Torri Tom Hacohen Tom 'TAsn' Hacohen Tom Hacohen Tom Gustavo Sverzut Barbieri Gustavo Sverzut Barbieri Christopher Michael Christopher Michael Christopher Michael Christopher Michael +Christopher Michael Christopher Michael +Christopher Michael Chris Michael Christopher Michael Christopher Michael +Christopher Michael Christopher +Christopher Michael Chris Michael Christopher Michael Christopher Michael +Christopher Michael Chris Michael Sebastian Dransfeld Sebastian Dransfeld Sebastian Dransfeld sebastid Mike Blumenkrantz Mike Blumenkrantz @@ -29,6 +36,7 @@ Mike Blumenkrantz zmike Mike Blumenkrantz Mike Blumenkrantz Mike Blumenkrantz ChunEon Park ChunEon Park +ChunEon Park Hermet Park David Walter Seikel David Walter Seikel Rafael Antognolli Rafael Antognolli Rafael Antognolli Rafael Antognolli @@ -38,6 +46,7 @@ Lucas De Marchi Lucas De Marchi Lucas De Marchi Jihoon Kim Jihoon Kim Stefan Schmidt Stefan Schmidt +Stefan Schmidt Stefan Schmidt Jonas M. Gastal Jonas Gastal Daniel Juyung Seo Daniel Juyung Seo Daniel Juyung Seo Daniel Juyung Seo @@ -79,4 +88,8 @@ Massimo Maiurana maxerba Lee Gwang-O Gwang O Lee Thibaut Broggi broggi_t Daniel Zaoui Daniel Zaoui +Daniel Zaoui daniel.za...@samsung.com Jérémy Anger kidanger +Andy Williams handyande +Davide Andreoli Dave Andreoli +Davide Andreoli davemds --
[EGIT] [core/enlightenment] enlightenment-0.21 02/28: Fix wayland clients not deleting when they're hidden
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=18cef43716f68046c37d0d04eb9ee9905edb6248 commit 18cef43716f68046c37d0d04eb9ee9905edb6248 Author: Derek ForemanDate: Thu Jul 21 13:09:12 2016 -0500 Fix wayland clients not deleting when they're hidden We kept an extra reference for wayland clients and dropped it on their final render to stop crashes. However, if they're not on screen at the time of their deletion this reference still needed to be dropped. Fixes clients remaining on the deskmirror after dying on another desktop. --- src/bin/e_comp_wl.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index c5ddf32..dbf6b48 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -2471,6 +2471,13 @@ _e_comp_wl_client_cb_del(void *data EINA_UNUSED, E_Client *ec) if (ec->internal_elm_win) evas_object_hide(ec->frame); + + /* WL clients take an extra ref at startup so they don't get deleted while +* visible. Since we drop that in the render loop we need to make sure +* it's dropped here if the client isn't going to be rendered. +*/ + if (!e_pixmap_is_x(ec->pixmap) && ec->hidden) e_object_unref(E_OBJECT(ec)); + _e_comp_wl_focus_check(); } --
[EGIT] [core/enlightenment] enlightenment-0.21 17/28: e comp - set alpha after setting native surface to avoid random crash
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=8a92d4b538894301ea36d845a8e968ca5b744cac commit 8a92d4b538894301ea36d845a8e968ca5b744cac Author: Carsten Haitzler (Rasterman)Date: Wed Aug 3 17:27:23 2016 +0900 e comp - set alpha after setting native surface to avoid random crash i noticed a crash on texture update with a previous garbage image data ptr set before becoming a native suttface and so setting alpha would cause a texture upload from a garbage pointer, so set native surface then set alpha on or off so the data ptr is no longer used. @fix --- src/bin/e_comp_object.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index af97018..32b4756 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -3751,8 +3751,8 @@ e_comp_object_native_surface_set(Evas_Object *obj, Eina_Bool set) evas_object_image_native_surface_set(cw->obj, set && (!cw->blanked) ? (cw->ns ?: ) : NULL); EINA_LIST_FOREACH(cw->obj_mirror, l, o) { -evas_object_image_alpha_set(o, !!cw->ns ? 1 : cw->ec->argb); evas_object_image_native_surface_set(o, set ? (cw->ns ?: ) : NULL); +evas_object_image_alpha_set(o, !!cw->ns ? 1 : cw->ec->argb); } } --
[EGIT] [core/enlightenment] enlightenment-0.21 15/28: Fix wayland extension global creation
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=0af35c2470c894a20019562af094fa66c84b76f0 commit 0af35c2470c894a20019562af094fa66c84b76f0 Author: Derek ForemanDate: Wed Jul 27 13:44:16 2016 -0500 Fix wayland extension global creation The globals are singletons, but the bindings are per wl_client. --- src/bin/e_comp_wl.h| 6 +++--- src/bin/e_comp_wl_extensions.c | 19 +-- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h index 1dd47f2..9580e43 100644 --- a/src/bin/e_comp_wl.h +++ b/src/bin/e_comp_wl.h @@ -97,17 +97,17 @@ typedef struct E_Comp_Wl_Extension_Data { struct { - struct wl_resource *global; + struct wl_global *global; struct wl_client *client; void (*read_pixels)(E_Comp_Wl_Output *output, void *pixels); } screenshooter; struct { - struct wl_resource *global; + struct wl_global *global; } session_recovery; struct { - struct wl_resource *global; + struct wl_global *global; } www; } E_Comp_Wl_Extension_Data; diff --git a/src/bin/e_comp_wl_extensions.c b/src/bin/e_comp_wl_extensions.c index 446f2ef..4f5fac8 100644 --- a/src/bin/e_comp_wl_extensions.c +++ b/src/bin/e_comp_wl_extensions.c @@ -221,11 +221,6 @@ static const struct www_interface _e_www_interface = #define GLOBAL_BIND_CB(NAME, IFACE, ...) \ static void \ -_e_comp_wl_##NAME##_cb_unbind(struct wl_resource *resource EINA_UNUSED) \ -{ \ - e_comp_wl->extensions->NAME.global = NULL; \ -} \ -static void \ _e_comp_wl_##NAME##_cb_bind(struct wl_client *client, void *data EINA_UNUSED, uint32_t version EINA_UNUSED, uint32_t id) \ { \ struct wl_resource *res; \ @@ -237,8 +232,7 @@ _e_comp_wl_##NAME##_cb_bind(struct wl_client *client, void *data EINA_UNUSED, ui return;\ }\ \ - e_comp_wl->extensions->NAME.global = res; \ - wl_resource_set_implementation(res, &_e_##NAME##_interface, NULL, _e_comp_wl_##NAME##_cb_unbind);\ + wl_resource_set_implementation(res, &_e_##NAME##_interface, NULL, NULL);\ } GLOBAL_BIND_CB(session_recovery, zwp_e_session_recovery_interface) @@ -248,12 +242,16 @@ GLOBAL_BIND_CB(www, www_interface) #define GLOBAL_CREATE_OR_RETURN(NAME, IFACE) \ do { \ - if (!wl_global_create(e_comp_wl->wl.disp, &(IFACE), 1, \ -NULL, _e_comp_wl_##NAME##_cb_bind)) \ + struct wl_global *global; \ +\ + global = wl_global_create(e_comp_wl->wl.disp, &(IFACE), 1, \ +NULL, _e_comp_wl_##NAME##_cb_bind); \ + if (!global) \ { \ ERR("Could not add %s to wayland globals", #IFACE); \ return EINA_FALSE; \ } \ + e_comp_wl->extensions->NAME.global = global; \ } while (0) static Eina_Bool @@ -275,6 +273,8 @@ _dmabuf_add(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) EINTERN Eina_Bool e_comp_wl_extensions_init(void) { + e_comp_wl->extensions = E_NEW(E_Comp_Wl_Extension_Data, 1); + /* try to add session_recovery to wayland globals */ GLOBAL_CREATE_OR_RETURN(session_recovery, zwp_e_session_recovery_interface); GLOBAL_CREATE_OR_RETURN(screenshooter, screenshooter_interface); @@ -285,6 +285,5 @@ e_comp_wl_extensions_init(void) e_client_hook_add(E_CLIENT_HOOK_MOVE_BEGIN, _e_comp_wl_extensions_client_move_begin, NULL); e_client_hook_add(E_CLIENT_HOOK_MOVE_END, _e_comp_wl_extensions_client_move_end, NULL); - e_comp_wl->extensions = E_NEW(E_Comp_Wl_Extension_Data, 1); return EINA_TRUE; } --
[EGIT] [core/efl] master 01/01: Efl Object: Make event description arrays const.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b623d89b0166e26eceee1f4dfb88b2ded0400c7e commit b623d89b0166e26eceee1f4dfb88b2ded0400c7e Author: Tom HacohenDate: Wed Aug 17 11:24:48 2016 +0100 Efl Object: Make event description arrays const. This was an oversight. They should have been const arrays, and not just arrays of pointers to const items. --- src/bin/eolian/eo_generator.c | 2 +- src/lib/eo/Eo.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/eolian/eo_generator.c b/src/bin/eolian/eo_generator.c index 96e2618..425e03a 100644 --- a/src/bin/eolian/eo_generator.c +++ b/src/bin/eolian/eo_generator.c @@ -23,7 +23,7 @@ static const Efl_Op_Description _@#class_op_desc[] = {@#list_op\n};\n\n"; static const char tmpl_events_desc[] = "\ -static const Efl_Event_Description *_@#class_event_desc[] = {@#list_evdesc\n\ +static const Efl_Event_Description * const _@#class_event_desc[] = {@#list_evdesc\n\ NULL\n\ };\n\n"; diff --git a/src/lib/eo/Eo.h b/src/lib/eo/Eo.h index b03b9ed..0911e34 100644 --- a/src/lib/eo/Eo.h +++ b/src/lib/eo/Eo.h @@ -411,7 +411,7 @@ struct _Efl_Class_Description const char *name; /**< The name of the class. */ Efl_Class_Type type; /**< The type of the class. */ Efl_Object_Ops ops; /**< The ops description, should be filled using #EFL_CLASS_DESCRIPTION_OPS (later sorted by Eo). */ - const Efl_Event_Description **events; /**< The event descriptions for this class. */ + const Efl_Event_Description * const *events; /**< The event descriptions for this class. */ size_t data_size; /**< The size of data (private + protected + public) this class needs per object. */ void (*class_constructor)(Efl_Class *klass); /**< The constructor of the class. */ void (*class_destructor)(Efl_Class *klass); /**< The destructor of the class. */ --
[EGIT] [core/enlightenment] master 01/01: bump efl wayland req to 1.18 now that it's out
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=729b2d22d66dffef69b5419eaaee738aecd53eee commit 729b2d22d66dffef69b5419eaaee738aecd53eee Author: Mike BlumenkrantzDate: Wed Aug 17 07:02:02 2016 -0400 bump efl wayland req to 1.18 now that it's out --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 498090a..132a3b7 100644 --- a/configure.ac +++ b/configure.ac @@ -678,7 +678,7 @@ AC_MSG_CHECKING([whether wayland EGL support is enabled]) AC_MSG_RESULT([${e_cv_want_wayland_egl}]) if test "x${e_cv_want_wayland_only}" != "xno" ;then - PKG_CHECK_MODULES([WAYLAND], [ecore-wl2 >= 1.17.99 wayland-server >= 1.11.0 wayland-client >= 1.11.0 xkbcommon uuid], + PKG_CHECK_MODULES([WAYLAND], [ecore-wl2 >= 1.18 wayland-server >= 1.11.0 wayland-client >= 1.11.0 xkbcommon uuid], [ have_wayland=yes have_wayland_dep=true --
[EGIT] [tools/eflete] master 01/01: import_edj: fix the style loading method.
jaehwan pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=219be7b55cc698af11c3e1a55d50fd4471ea584d commit 219be7b55cc698af11c3e1a55d50fd4471ea584d Author: Jaehwan KimDate: Wed Aug 17 19:06:39 2016 +0900 import_edj: fix the style loading method. 1. The all group that includes style name is loaded. 2. The style name should be same exactly. 3. When the group is copied, the origin group isn't loaded. @fix Fixes T4346 --- .../project_manager/project_manager_import_edj.c | 20 +-- src/bin/ui/tab_home_import_edj.c | 23 +++--- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/src/bin/project_manager/project_manager_import_edj.c b/src/bin/project_manager/project_manager_import_edj.c index cd39d81..1356063 100644 --- a/src/bin/project_manager/project_manager_import_edj.c +++ b/src/bin/project_manager/project_manager_import_edj.c @@ -187,22 +187,22 @@ _project_import_edj(void *data) strbuf = eina_strbuf_new(); eina_strbuf_append_printf(strbuf, "edje_pick -o %s -i %s", edj_out, edj_in); -/* load any group for coping */ -if (ptd->widgets) - { - obj = edje_edit_object_add(evas_object_evas_get(ap.win)); - if (!edje_object_file_set(obj, edj_in, eina_list_data_get(ptd->widgets))) - { - CRIT("Can't load object"); - abort(); - } - } EINA_LIST_FOREACH(ptd->widgets, l, group) { if ((group[0] == 'c') && (group[1] == 'p') && (group[2] == '*') && (group[3] == '*') && (group[4] == '*')) { char **arr = eina_str_split(group, "***", 0); you_shall_not_pass_editor_signals(NULL); + /* load any group for coping */ + if (!obj) +{ + obj = edje_edit_object_add(evas_object_evas_get(ap.win)); + if (!edje_object_file_set(obj, edj_in, arr[1])) + { +CRIT("Can't load object"); +abort(); + } +} if (!editor_group_copy(obj, arr[1], arr[2])) { CRIT("Can not copy group %s, to %s", arr[1], arr[2]); diff --git a/src/bin/ui/tab_home_import_edj.c b/src/bin/ui/tab_home_import_edj.c index e2c1e27..87a0bd5 100644 --- a/src/bin/ui/tab_home_import_edj.c +++ b/src/bin/ui/tab_home_import_edj.c @@ -620,9 +620,9 @@ _genlist_style_selected_set(Node *item, Eina_List *styles, Eina_Bool selected) { Eina_List *l, *l1, *cp_style_list; Node *node; - Eina_Stringshare *name, *name1, *style_name, *tmp; - const char *pos; + Eina_Stringshare *name, *name1, *sname, *style_name, *tmp; char cp_style[256]; + int len; assert (item != NULL); @@ -640,22 +640,21 @@ _genlist_style_selected_set(Node *item, Eina_List *styles, Eina_Bool selected) EINA_LIST_FOREACH(styles, l, name) { style_name = option_style_name_get(name, _style_list); - if (!strcmp(style_name, "default")) -{ - pos = string_rstr(item->name, "base/default"); - if (pos) tab_edj.widget_list = eina_list_append(tab_edj.widget_list, item->name); -} - else + sname = style_name_get(item->name); + if (!strcmp(sname, style_name)) { - pos = string_rstr(item->name, style_name); - if (pos) + if (!cp_style_list) { item->check = selected; tab_edj.widget_list = eina_list_append(tab_edj.widget_list, item->name); + } + else + { EINA_LIST_FOREACH(cp_style_list, l1, name1) { - strncpy(cp_style, item->name, pos - item->name - 1); - cp_style[pos - item->name] = '\0'; + len = strlen(item->name) - strlen(sname); + strncpy(cp_style, item->name, len - 1); + cp_style[len - 1] = '\0'; tmp = eina_stringshare_printf("cp***%s***%s/%s", item->name, cp_style, name1); tab_edj.widget_list = eina_list_append(tab_edj.widget_list, tmp); } --
Re: [E-devel] Can't build doc for EFL
Yeah, i will try with doxygen live version, as well as manual building without options. Some of them are defaults for ebuild (glib and physics flags, last - enabling dependence on bullet lib). I did not analyze flags, simply copied configure line with all options from emerge log. I think, they could eventually add some warnings into ebuild about extra functionality loss without some use flags. В Wed, 17 Aug 2016 11:40:19 +0200 Stefan Schmidtпишет: > Hello. > > On 17/08/16 10:40, Stefan Schmidt wrote: > > Hello. > > > > On 17/08/16 01:14, Carsten Haitzler (The Rasterman) wrote: > >> On Wed, 17 Aug 2016 00:14:40 +0500 Nikita Zlobin > >> said: > >>> Hit, it is gentoo S). And this is not first case. > >>> But in turn, i remember case - when i took part in ladish > >>> development, i used ubuntu... and my code, being ok on my system, > >>> segfailed on gentoo system of project leader, revealing one hard > >>> to detect bug. > >>> > >>> doxygen 1.8.11, gcc 4.9.3 (though how it relates to doc gen...) > >>> > >>> As for configuration, i took them from ebuild log: > >>> $ ./configure --enable-cserve --enable-image-loader-generic > >>> --enable-image-loader-jpeg --disable-tizen --disable-gesture > >>> --disable-gstreamer --enable-xinput2 --disable-xinput22 > >>> --disable-multisense --enable-libmount --with-opengl-full > >>> --disable-physics --with-glib=no --enable-image-loader-jp2k > >>> --enable-gnutls > >>> --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-abb > >>> --prefix=/usr > >>> > >>> As for bugs - you can see there one veeery lonnng option, so > >>> decided to consult. Can't beleive, that these options might cause > >>> doc making to fail. > >> > >> --enable-cserve <- you know this is enabled by default? why enable? > >> --enable-image-loader-generic <- enabled by default too > >> --enable---disable-image-loader-jpeg <- enabled by default too > >> --disable-tizen <- disabled by defaault... > >> --disable-gesture <- disabled by default... > >> --disable-gstreamer <- you know this is disabled by default... > >> --disable-multisense <- you do know this breaks theme > >> functionality right? --enable-libmount <- you know itss enabled by > >> default? --with-opengl-full <- you know this is a typo? it should > >> be: --with-opengl=full ... and this is the default anyway... > >> --disable-physics <- you know this can break theme functionality > >> right? --with-glib=no <- you know this can create problems with > >> things like the ibus imf modules which require it (because libibus > >> need glib mainloop stuff), though you don't enable the ibus imf > >> module here...? --enable-gnutls <- why gnutls not openssl. you > >> know we test openssl as it's the default. gnutls gets little to no > >> testing. also optimization - little to none with it. > >> > >> almost all your options are redundant and several i would think > >> are dubious to alter... though none of these SHOULD affect > >> document generation - maybe unless there is more glib main loop > >> integration that is needed that we've missed (scim? something > >> else?) and since it's on by default ... we haven't seen the > >> brokenness with it off. there is a reason we make you put in that > >> insanely long option accepting your fate if you stray from tested > >> defaults that might have an effect. > > > > We can easily tell if it works with the default configure options > > on his system. Nikita, can you run a configure without these > > options (any options at all) followed by a make and a make doc? > > > > This is not going to install anything so it will not touch your > > system. > > > > If that still breaks the same way as before it is more likely a > > problem with your doxygen version. It works for me here with > > 1.8.9.1 and yours is 1.8.11. So if it still fails the next try > > might be to downgrade your doxygen version and see if that helps. > > I did the inverted test and tried with doxygen 1.8.11 (which is the > latest release, December 2015) and can verify that it breaks our doc > build the way you reported. > > Latest doxygen from their git repo works though. So it is really a > problem in 1.8.11 (maybe also 1.8.10) and is fixed already. We can > only hope for a new release or go back to an older version. > > regards > Stefan Schmidt > > -- > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Can't build doc for EFL
On Wed, 17 Aug 2016 10:40:46 +0200 Stefan Schmidtsaid: > Hello. > > On 17/08/16 01:14, Carsten Haitzler (The Rasterman) wrote: > > On Wed, 17 Aug 2016 00:14:40 +0500 Nikita Zlobin > > said: > > > >> Hit, it is gentoo S). And this is not first case. > >> But in turn, i remember case - when i took part in ladish development, > >> i used ubuntu... and my code, being ok on my system, segfailed on > >> gentoo system of project leader, revealing one hard to detect bug. > >> > >> doxygen 1.8.11, gcc 4.9.3 (though how it relates to doc gen...) > >> > >> As for configuration, i took them from ebuild log: > >> $ ./configure --enable-cserve --enable-image-loader-generic > >> --enable-image-loader-jpeg --disable-tizen --disable-gesture > >> --disable-gstreamer --enable-xinput2 --disable-xinput22 > >> --disable-multisense --enable-libmount --with-opengl-full > >> --disable-physics --with-glib=no --enable-image-loader-jp2k > >> --enable-gnutls > >> --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-abb > >> --prefix=/usr > >> > >> As for bugs - you can see there one veeery lonnng option, so > >> decided to consult. Can't beleive, that these options might cause doc > >> making to fail. > > > > --enable-cserve <- you know this is enabled by default? why enable? > > --enable-image-loader-generic <- enabled by default too > > --enable---disable-image-loader-jpeg <- enabled by default too > > --disable-tizen <- disabled by defaault... > > --disable-gesture <- disabled by default... > > --disable-gstreamer <- you know this is disabled by default... > > --disable-multisense <- you do know this breaks theme functionality right? > > --enable-libmount <- you know itss enabled by default? > > --with-opengl-full <- you know this is a typo? it should be: > > --with-opengl=full ... and this is the default anyway... > > --disable-physics <- you know this can break theme functionality right? > > --with-glib=no <- you know this can create problems with things like the > > ibus imf modules which require it (because libibus need glib mainloop > > stuff), though you don't enable the ibus imf module here...? > > --enable-gnutls <- why gnutls not openssl. you know we test openssl as it's > > the default. gnutls gets little to no testing. also optimization - little > > to none with it. > > > > almost all your options are redundant and several i would think are dubious > > to alter... though none of these SHOULD affect document generation - maybe > > unless there is more glib main loop integration that is needed that we've > > missed (scim? something else?) and since it's on by default ... we haven't > > seen the brokenness with it off. there is a reason we make you put in that > > insanely long option accepting your fate if you stray from tested defaults > > that might have an effect. > > We can easily tell if it works with the default configure options on his > system. Nikita, can you run a configure without these options (any > options at all) followed by a make and a make doc? > > This is not going to install anything so it will not touch your system. > > If that still breaks the same way as before it is more likely a problem > with your doxygen version. It works for me here with 1.8.9.1 and yours > is 1.8.11. So if it still fails the next try might be to downgrade your > doxygen version and see if that helps. i think actually files are missing from the makefile'am's extra dist - try and make doc FROM the tarball not from git... :) -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Can't build doc for EFL
Hello. On 17/08/16 10:40, Stefan Schmidt wrote: > Hello. > > On 17/08/16 01:14, Carsten Haitzler (The Rasterman) wrote: >> On Wed, 17 Aug 2016 00:14:40 +0500 Nikita Zlobinsaid: >> >>> Hit, it is gentoo S). And this is not first case. >>> But in turn, i remember case - when i took part in ladish development, >>> i used ubuntu... and my code, being ok on my system, segfailed on >>> gentoo system of project leader, revealing one hard to detect bug. >>> >>> doxygen 1.8.11, gcc 4.9.3 (though how it relates to doc gen...) >>> >>> As for configuration, i took them from ebuild log: >>> $ ./configure --enable-cserve --enable-image-loader-generic >>> --enable-image-loader-jpeg --disable-tizen --disable-gesture >>> --disable-gstreamer --enable-xinput2 --disable-xinput22 >>> --disable-multisense --enable-libmount --with-opengl-full >>> --disable-physics --with-glib=no --enable-image-loader-jp2k >>> --enable-gnutls >>> --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-abb >>> --prefix=/usr >>> >>> As for bugs - you can see there one veeery lonnng option, so >>> decided to consult. Can't beleive, that these options might cause doc >>> making to fail. >> >> --enable-cserve <- you know this is enabled by default? why enable? >> --enable-image-loader-generic <- enabled by default too >> --enable---disable-image-loader-jpeg <- enabled by default too >> --disable-tizen <- disabled by defaault... >> --disable-gesture <- disabled by default... >> --disable-gstreamer <- you know this is disabled by default... >> --disable-multisense <- you do know this breaks theme functionality right? >> --enable-libmount <- you know itss enabled by default? >> --with-opengl-full <- you know this is a typo? it should be: >> --with-opengl=full ... and this is the default anyway... >> --disable-physics <- you know this can break theme functionality right? >> --with-glib=no <- you know this can create problems with things like the ibus >> imf modules which require it (because libibus need glib mainloop stuff), >> though you don't enable the ibus imf module here...? >> --enable-gnutls <- why gnutls not openssl. you know we test openssl as it's >> the default. gnutls gets little to no testing. also optimization - little >> to >> none with it. >> >> almost all your options are redundant and several i would think are dubious >> to >> alter... though none of these SHOULD affect document generation - maybe >> unless >> there is more glib main loop integration that is needed that we've missed >> (scim? something else?) and since it's on by default ... we haven't seen the >> brokenness with it off. there is a reason we make you put in that insanely >> long >> option accepting your fate if you stray from tested defaults that might have >> an >> effect. > > We can easily tell if it works with the default configure options on his > system. Nikita, can you run a configure without these options (any > options at all) followed by a make and a make doc? > > This is not going to install anything so it will not touch your system. > > If that still breaks the same way as before it is more likely a problem > with your doxygen version. It works for me here with 1.8.9.1 and yours > is 1.8.11. So if it still fails the next try might be to downgrade your > doxygen version and see if that helps. I did the inverted test and tried with doxygen 1.8.11 (which is the latest release, December 2015) and can verify that it breaks our doc build the way you reported. Latest doxygen from their git repo works though. So it is really a problem in 1.8.11 (maybe also 1.8.10) and is fixed already. We can only hope for a new release or go back to an older version. regards Stefan Schmidt -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: evas/gl_x11 : Add multiple_buffer member in native surface x11 type union.
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=042e94f10d821494bc79eb84637abfdff6e04bf7 commit 042e94f10d821494bc79eb84637abfdff6e04bf7 Author: Minkyoung KimDate: Wed Aug 17 17:50:18 2016 +0900 evas/gl_x11 : Add multiple_buffer member in native surface x11 type union. Summary: If native surface is multiple buffer pixmap such as named pixmap, Evas should recreate eglImage everyframe. Because DDK get the buffer ID once at eglImageCreate time. So if internal buffer ID is changed, should recreate eglImage. Test Plan: Wearable Tizen. Reviewers: wonsik, raster, cedric, jpeg Reviewed By: jpeg Subscribers: spacegrapher, dkdk, cedric Differential Revision: https://phab.enlightenment.org/D4211 --- src/lib/evas/Evas_Legacy.h | 3 +- src/modules/evas/engines/gl_x11/evas_engine.c | 32 ++ .../engines/software_generic/evas_native_common.h | 1 + 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h index 9608891..b200c28 100644 --- a/src/lib/evas/Evas_Legacy.h +++ b/src/lib/evas/Evas_Legacy.h @@ -3245,7 +3245,7 @@ EAPI void evas_object_image_memfile_set(Evas_Object *ob * Magic version number to know what the native surface struct looks like */ -#define EVAS_NATIVE_SURFACE_VERSION 3 +#define EVAS_NATIVE_SURFACE_VERSION 4 /** * Native surface types that image object supports @@ -3300,6 +3300,7 @@ typedef struct _Evas_Native_Surface { void *visual; /**< visual of the pixmap to use (Visual) */ unsigned long pixmap; /**< pixmap id to use (Pixmap) */ + unsigned int multiple_buffer; /**< From version 4. 1 if pixmap is multiple buffer pixmap such as named pixmap created by enlightenment. driver dependent. @since 1.19 */ } x11; /**< Set this struct fields if surface data is X11 based. */ struct diff --git a/src/modules/evas/engines/gl_x11/evas_engine.c b/src/modules/evas/engines/gl_x11/evas_engine.c index 34e04e5..093a025 100644 --- a/src/modules/evas/engines/gl_x11/evas_engine.c +++ b/src/modules/evas/engines/gl_x11/evas_engine.c @@ -2037,6 +2037,31 @@ _native_bind_cb(void *image) #ifdef GL_GLES if (n->ns_data.x11.surface) { +if (n->ns_data.x11.multiple_buffer) + { + EGLint err; + if (!glsym_eglDestroyImage || !glsym_eglCreateImage) + { + ERR("Try eglDestroyImage()/eglCreateImage() on EGL with no support"); + return; + } + + glsym_eglDestroyImage(im->native.disp, n->ns_data.x11.surface); + if ((err = eglGetError()) != EGL_SUCCESS) + { + ERR("eglDestroyImage() failed."); + glsym_evas_gl_common_error_set(err - EGL_SUCCESS); + } + + n->ns_data.x11.surface = glsym_eglCreateImage(im->native.disp, + EGL_NO_CONTEXT, + EGL_NATIVE_PIXMAP_KHR, + (void *)n->ns_data.x11.pixmap, + NULL); + if (!n->ns_data.x11.surface) + ERR("eglCreateImage() for Pixmap 0x%#lx failed: %#x", n->ns_data.x11.pixmap, eglGetError()); + + } if (glsym_glEGLImageTargetTexture2DOES) { glsym_glEGLImageTargetTexture2DOES(im->native.target, n->ns_data.x11.surface); @@ -2628,6 +2653,13 @@ eng_image_native_set(void *data, void *image, void *native) EGL_NO_CONTEXT, EGL_NATIVE_PIXMAP_KHR, (void *)pm, NULL); + + if ((ns->version < 4) || + ((ns->version == 4) && !(ns->data.x11.multiple_buffer == 1))) + n->ns_data.x11.multiple_buffer = 0; + else + n->ns_data.x11.multiple_buffer = 1; + if (!n->ns_data.x11.surface) { ERR("eglCreateImage() for Pixmap %#lx failed: %#x", pm, eglGetError()); diff --git a/src/modules/evas/engines/software_generic/evas_native_common.h b/src/modules/evas/engines/software_generic/evas_native_common.h index a13b7a0..a3b721d 100644 --- a/src/modules/evas/engines/software_generic/evas_native_common.h +++ b/src/modules/evas/engines/software_generic/evas_native_common.h @@ -64,6 +64,7 @@ struct _Native void *buffer; void
Re: [E-devel] Can't build doc for EFL
Hello. On 17/08/16 01:14, Carsten Haitzler (The Rasterman) wrote: > On Wed, 17 Aug 2016 00:14:40 +0500 Nikita Zlobinsaid: > >> Hit, it is gentoo S). And this is not first case. >> But in turn, i remember case - when i took part in ladish development, >> i used ubuntu... and my code, being ok on my system, segfailed on >> gentoo system of project leader, revealing one hard to detect bug. >> >> doxygen 1.8.11, gcc 4.9.3 (though how it relates to doc gen...) >> >> As for configuration, i took them from ebuild log: >> $ ./configure --enable-cserve --enable-image-loader-generic >> --enable-image-loader-jpeg --disable-tizen --disable-gesture >> --disable-gstreamer --enable-xinput2 --disable-xinput22 >> --disable-multisense --enable-libmount --with-opengl-full >> --disable-physics --with-glib=no --enable-image-loader-jp2k >> --enable-gnutls >> --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-abb >> --prefix=/usr >> >> As for bugs - you can see there one veeery lonnng option, so >> decided to consult. Can't beleive, that these options might cause doc >> making to fail. > > --enable-cserve <- you know this is enabled by default? why enable? > --enable-image-loader-generic <- enabled by default too > --enable---disable-image-loader-jpeg <- enabled by default too > --disable-tizen <- disabled by defaault... > --disable-gesture <- disabled by default... > --disable-gstreamer <- you know this is disabled by default... > --disable-multisense <- you do know this breaks theme functionality right? > --enable-libmount <- you know itss enabled by default? > --with-opengl-full <- you know this is a typo? it should be: > --with-opengl=full ... and this is the default anyway... > --disable-physics <- you know this can break theme functionality right? > --with-glib=no <- you know this can create problems with things like the ibus > imf modules which require it (because libibus need glib mainloop stuff), > though you don't enable the ibus imf module here...? > --enable-gnutls <- why gnutls not openssl. you know we test openssl as it's > the default. gnutls gets little to no testing. also optimization - little to > none with it. > > almost all your options are redundant and several i would think are dubious to > alter... though none of these SHOULD affect document generation - maybe unless > there is more glib main loop integration that is needed that we've missed > (scim? something else?) and since it's on by default ... we haven't seen the > brokenness with it off. there is a reason we make you put in that insanely > long > option accepting your fate if you stray from tested defaults that might have > an > effect. We can easily tell if it works with the default configure options on his system. Nikita, can you run a configure without these options (any options at all) followed by a make and a make doc? This is not going to install anything so it will not touch your system. If that still breaks the same way as before it is more likely a problem with your doxygen version. It works for me here with 1.8.9.1 and yours is 1.8.11. So if it still fails the next try might be to downgrade your doxygen version and see if that helps. regards Stefan Schmidt -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/02: Efl object: implement CoW for the function vtables
On 17/08/16 00:17, Carsten Haitzler (The Rasterman) wrote: > On Tue, 16 Aug 2016 16:36:20 +0100 Tom Hacohensaid: > >> This change means you can abuse efl_object_override() a bit more and >> rely on it in API. Because while the save is significant for normal >> classes, it would be even more significant for object override because >> the amount of shared vtables will be higher (most likely, as the number >> of overrides tends to be smaller and more clustered). > > shouldn't this be efl_override() now anyway? ... why object? of course its an > object... every eo api works on an object... or maybe it should be > efl_func_override or efl_method_override() ... :) I changed some of the APIs to "efl_object_" instead of the "efl_" because I felt they really felt ambiguous and not descriptive enough. I'm happy with changing this to whatever people want. I prefer object_override than the suggestions above though I don't really care. > >> -- >> Tom. >> >> >> On 16/08/16 16:34, Tom Hacohen wrote: >>> tasn pushed a commit to branch master. >>> >>> http://git.enlightenment.org/core/efl.git/commit/?id=28c80f91221ae2639f4573046d8621a2a4d18cda >>> >>> commit 28c80f91221ae2639f4573046d8621a2a4d18cda >>> Author: Tom Hacohen >>> Date: Mon Aug 15 17:11:13 2016 +0100 >>> >>> Efl object: implement CoW for the function vtables >>> >>> This commit implements a sort of CoW for the vtables. The vtables are >>> usually just linked to and refcounted. When we need to change them we >>> allocate new ones and copy them over so we can write to them. >>> >>> I wrote some code to measure the effectiveness of this change. When >>> running elementary_test (and immediately exiting) I saw that out of the >>> total number of vtable chains (561) that were needed by the classes in >>> the EFL, 79 (14.08%) were reused. Considering that I had to add >>> refcounting (unsigned short, but let's consider it's the size of a word >>> because of alignment), I would calculate the saving as such (in bytes): >>> >>> Number of items in a chain (refcounted block): 32 >>> >>> 32 bit: >>> sizeof(chain_node) = 8 >>> Mem wasted on refcounting: 561 * 4 = 2244 >>> Mem saved because of sharing: 79 * (32 * 8) = 20224 >>> Total save: 17980 bytes >>> >>> 64 bit: >>> sizeof(chain_node) = 16 >>> Mem wasted on refcounting: 561 * 8 = 4488 >>> Mem saved because of sharing: 79 * (32 * 16) = 40448 >>> Total save: 35960 bytes >>> >>> Wow, we use a lot of memory in Eo classes, I'm sure we can >>> save even more if we put our hearts into it (change the shareable units >>> to be smaller to increase the chance of sharing). >>> This is internal and doesn't affect API/ABI so we can change this even >>> further with time. >>> >>> This also improves efl_object_override(). This should now be quite >>> memory efficient (don't abuse, but it's not a big hogg as it was), so >>> feel free to abuse that one and rely on it in API. >>> >>> @feature >>> --- >>> src/lib/eo/eo.c | 114 +++ >>> + src/lib/eo/eo_private.h | 14 +- >>> 2 files changed, 98 insertions(+), 30 deletions(-) >>> >>> diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c >>> index 9104a9e..0f530b4 100644 >>> --- a/src/lib/eo/eo.c >>> +++ b/src/lib/eo/eo.c >>> @@ -41,12 +41,6 @@ static inline void _efl_data_xunref_internal(_Eo_Object >>> *obj, void *data, const >>> >>> /* Start of Dich */ >>> >>> -/* How we search and store the implementations in classes. */ >>> -#define DICH_CHAIN_LAST_BITS 5 >>> -#define DICH_CHAIN_LAST_SIZE (1 << DICH_CHAIN_LAST_BITS) >>> -#define DICH_CHAIN1(x) ((x) >> DICH_CHAIN_LAST_BITS) >>> -#define DICH_CHAIN_LAST(x) ((x) & ((1 << DICH_CHAIN_LAST_BITS) - 1)) >>> - >>> >>> /* We are substracting the mask here instead of "AND"ing because it's a >>> hot path, >>> * it should be a valid class at this point, and this lets the compiler do >>> 1 @@ -58,11 +52,86 @@ static inline void _efl_data_xunref_internal >>> (_Eo_Object *obj, void *data, const }) >>> >>> static inline void >>> +_vtable_chain2_unref(Dich_Chain2 *chain) >>> +{ >>> + if (--(chain->refcount) == 0) >>> + { >>> +free(chain); >>> + } >>> +} >>> + >>> +static inline void >>> _vtable_chain_alloc(Dich_Chain1 *chain1) >>> { >>> - if (!chain1->funcs) >>> + chain1->chain2 = calloc(1, sizeof(*(chain1->chain2))); >>> + chain1->chain2->refcount = 1; >>> +} >>> + >>> +static inline void _vtable_chain_write_prepare(Dich_Chain1 *dst); >>> + >>> +static inline void >>> +_vtable_chain_merge(Dich_Chain1 *dst, const Dich_Chain1 *src) >>> +{ >>> + Eina_Bool writeable = EINA_FALSE; >>> + size_t j; >>> + const op_type_funcs *sf = src->chain2->funcs; >>> + op_type_funcs *df = dst->chain2->funcs; >>> + >>> + if (df == sf) >>> { >>> -chain1->funcs = calloc(DICH_CHAIN_LAST_SIZE, sizeof(*
Re: [E-devel] [EGIT] [core/enlightenment] master 01/01: e sudo gui support - add askpass util for sudo askpass support
On 17/08/16 09:28, Carsten Haitzler (The Rasterman) wrote: > On Wed, 17 Aug 2016 09:20:52 +0100 Tom Hacohensaid: > >> On 17/08/16 00:42, Carsten Haitzler (The Rasterman) wrote: >>> On Tue, 16 Aug 2016 20:16:04 -0300 Iván Briano >>> said: >>> On Tue, 16 Aug 2016 21:22:32 +0900, Carsten Haitzler wrote: > On Tue, 16 Aug 2016 11:44:03 + Mike Blumenkrantz > said: > > no worries. it's the same for SSH_ASKPASS too - you still get the normal > tty password req is there is a tty. if there is not both sudo and ssh can > fail (unless you have a no-password ssh key or sudo is configured for > nopasswd for your user). so these work as normal in the no password > cases. in the cases you do need a password both will fail completely. > this adds this little utility so these don't hail anymore if they are > in .desktop file or other command/app/script you launch from within > e... :) overall this makes e more functional... thus i don't see a > problem in ALWAYS setting the env var. if someone dislikes this they can > override the env vars or unset them in scripts. and even in e's > environment var settings since e_env_init is called after these env vars > are set... :) but for the vast majority of people .. they don't need this > or likely want it.. and things went from not working to working out of > the box with no effort on their part. :) > > some small things to improve in e here. i'll poke around some other small > things here and there as i get the time. :) Now explain the do { } while(0). If all you wanted to do was indent the blocks hierarchically, why not just { }? I had to pay to download all those extra characters. >>> >>> technically {} is not legal. it works. thats why so many macros in our >>> public headers have do { } while (0); because a { } may not work. >>> >>> http://stackoverflow.com/questions/257418/do-while-0-what-is-it-good-for >>> >>> it's a habit i've grown from making sure macros work. yes - using it to >>> indent the code so you can clearly see child/parent relationships in >>> widgets. i'm trying this out as a way to make things look more readable >>> when going over gui layout code. >>> >> >> A slight correction: as far as I know, {} is perfectly legal (I used it >> all the time everywhere). However, as you mentioned, you should not use >> it in macros, and should use do-while instead. The reason for that is to >> force a semicolon at the end of macros. >> >> For macros FOO1 and 2: >> #define FOO1(x) { ... } >> #define FOO2(x) do { ... } while (0) >> >> >> FOO1(1) // will work >> FOO1(1); // will possibly generate a warning for extraneous semicolon >> >> FOO2(1) // will not compile >> FOO2(1); // will work as expected. >> >> I use {} and I think it's better than putting do-while in code, but I >> think if you insist on using a loop construct for indention, I'd do "if >> (1)" or something like that. > > as i said - its habit from making macros correct. :) as i said... :) it does > the job. :) I wasn't arguing with you, just clarifying for everyone. :) NEWS FLASH: Carsten knows how to write C... Anyone surprised? No? Thought so... :) -- Tom. -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 04/06: emile: region_set does not working in jpeg loader if scale_down has set
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=fecbcf8a905e30345d3454c9cdb665a6d7b098bc commit fecbcf8a905e30345d3454c9cdb665a6d7b098bc Author: jiin.moonDate: Wed Aug 17 16:39:13 2016 +0900 emile: region_set does not working in jpeg loader if scale_down has set Summary: If both region and scale_down has set, ERR would be returned by loader of jpeg. @fix Test Plan: sample code Reviewers: raster, jypark, cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4200 --- src/lib/emile/emile_image.c | 31 +++ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/lib/emile/emile_image.c b/src/lib/emile/emile_image.c index 5bad68c..5c12035 100644 --- a/src/lib/emile/emile_image.c +++ b/src/lib/emile/emile_image.c @@ -1724,11 +1724,6 @@ _emile_jpeg_data(Emile_Image *image, { region = 1; -opts_region.x = opts->region.x; -opts_region.y = opts->region.y; -opts_region.w = opts->region.w; -opts_region.h = opts->region.h; - if (prop->rotated) { unsigned int load_region_x = 0, load_region_y = 0; @@ -1738,19 +1733,31 @@ _emile_jpeg_data(Emile_Image *image, load_region_y = opts->region.y; load_region_w = opts->region.w; load_region_h = opts->region.h; - _rotate_region(_region.x, _region.y, _region.w, _region.h, load_region_x, load_region_y, load_region_w, load_region_h, w, h, degree, prop->flipped); } -#ifdef BUILD_LOADER_JPEG_REGION -cinfo.region_x = opts_region.x; -cinfo.region_y = opts_region.y; -cinfo.region_w = opts_region.w; -cinfo.region_h = opts_region.h; -#endif + + /* scale value already applied when decompress. +When access to decoded image, have to apply scale value to region value */ +if (prop->scale > 1) + { + opts_region.x = opts->region.x / prop->scale; + opts_region.y = opts->region.y / prop->scale; + opts_region.w = opts->region.w / prop->scale; + opts_region.h = opts->region.h / prop->scale; + + } +else + { + opts_region.x = opts->region.x; + opts_region.y = opts->region.y; + opts_region.w = opts->region.w; + opts_region.h = opts->region.h; + } + } if ((!region) && ((w != ie_w) || (h != ie_h))) { --
[EGIT] [core/efl] master 03/06: photocam: Fix region load + scale down options
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3bdefaf31fde9801ce6702f850aac24bc2157842 commit 3bdefaf31fde9801ce6702f850aac24bc2157842 Author: Jean-Philippe AndreDate: Wed Aug 17 16:23:16 2016 +0900 photocam: Fix region load + scale down options I have no idea how photocam even worked before. @jiin.moon exposed a major issue in photocam by fixing how the jpg loader scale down + region load combination works. @fix --- src/lib/elementary/elm_photocam.c | 21 +++-- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/lib/elementary/elm_photocam.c b/src/lib/elementary/elm_photocam.c index 4bdda88..08c11ab 100644 --- a/src/lib/elementary/elm_photocam.c +++ b/src/lib/elementary/elm_photocam.c @@ -567,21 +567,22 @@ _grid_create(Evas_Object *obj) int tn; tn = (y * g->gw) + x; - g->grid[tn].src.x = x * g->tsize; + g->grid[tn].out.x = x * g->tsize; if (x == (g->gw - 1)) - g->grid[tn].src.w = g->w - ((g->gw - 1) * g->tsize); + g->grid[tn].out.w = g->w - ((g->gw - 1) * g->tsize); else - g->grid[tn].src.w = g->tsize; - g->grid[tn].src.y = y * g->tsize; + g->grid[tn].out.w = g->tsize; + g->grid[tn].out.y = y * g->tsize; if (y == (g->gh - 1)) - g->grid[tn].src.h = g->h - ((g->gh - 1) * g->tsize); + g->grid[tn].out.h = g->h - ((g->gh - 1) * g->tsize); else - g->grid[tn].src.h = g->tsize; + g->grid[tn].out.h = g->tsize; - g->grid[tn].out.x = g->grid[tn].src.x; - g->grid[tn].out.y = g->grid[tn].src.y; - g->grid[tn].out.w = g->grid[tn].src.w; - g->grid[tn].out.h = g->grid[tn].src.h; + if (g->zoom <= 0) g->zoom = 1; + g->grid[tn].src.x = g->grid[tn].out.x * g->zoom; + g->grid[tn].src.y = g->grid[tn].out.y * g->zoom; + g->grid[tn].src.w = g->grid[tn].out.w * g->zoom; + g->grid[tn].src.h = g->grid[tn].out.h * g->zoom; g->grid[tn].obj = obj; g->grid[tn].img = --
[EGIT] [core/efl] master 06/06: evas: Fix BMP load with region set and scale down
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=be5381960ba08ec14564d6bf7555a97a28f8bbf9 commit be5381960ba08ec14564d6bf7555a97a28f8bbf9 Author: Jean-Philippe AndreDate: Wed Aug 17 17:21:33 2016 +0900 evas: Fix BMP load with region set and scale down This fixes usage of photocam on large BMP images. Follows previous commits by @jiin.moon. --- src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c b/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c index 2b8fc26..93f4d59 100644 --- a/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c +++ b/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c @@ -499,6 +499,7 @@ evas_image_load_file_data_bmp(void *loader_data, if (!_evas_image_load_file_header(map, fsize, , _size, , error)) goto close_file; + *error = EVAS_LOAD_ERROR_GENERIC; if (header.height < 0) { header.height = -header.height; @@ -511,7 +512,7 @@ evas_image_load_file_data_bmp(void *loader_data, *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; else *error = EVAS_LOAD_ERROR_GENERIC; - goto close_file; +goto close_file; } image_w = region_w = header.width; image_h = region_h = header.height; @@ -553,7 +554,7 @@ evas_image_load_file_data_bmp(void *loader_data, if ((header.width != (int)prop->w) || (header.height != (int)prop->h)) { *error = EVAS_LOAD_ERROR_GENERIC; - goto close_file; +goto close_file; } row_size = ceil((double)(image_w * header.bit_count) / 32) * 4; @@ -564,6 +565,9 @@ evas_image_load_file_data_bmp(void *loader_data, if (image_size > row_size * header.height) image_size = row_size * header.height; + if (region_set) + read_line = region_y; + if (header.bit_count < 16) { unsigned int i; --
[EGIT] [core/efl] master 02/06: evas: Add support for region load with PNG files
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=922a1bcd9e667e6d3d47df12f49d91a7351f3fe0 commit 922a1bcd9e667e6d3d47df12f49d91a7351f3fe0 Author: jiin.moonDate: Wed Aug 17 16:07:22 2016 +0900 evas: Add support for region load with PNG files Summary: PNG loader support region_set when decoding @feature Reviewers: cedric, jpeg, jypark, raster Subscribers: raster Differential Revision: https://phab.enlightenment.org/D4165 --- .../evas/image_loaders/png/evas_image_load_png.c | 64 ++ 1 file changed, 54 insertions(+), 10 deletions(-) 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 6b5395e..15660af 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 @@ -156,7 +156,27 @@ evas_image_load_file_head_png(void *loader_data, *error = EVAS_LOAD_ERROR_GENERIC; goto close_file; } - if (opts->scale_down_by > 1) + + if (opts->region.w > 0 && opts->region.h > 0) + { +if ((w32 < opts->region.x + opts->region.w) || +(h32 < opts->region.y + opts->region.h)) + { + *error = EVAS_LOAD_ERROR_GENERIC; + goto close_file; + } +if(opts->scale_down_by > 1) + { + prop->w = opts->region.w / opts->scale_down_by; + prop->h = opts->region.h / opts->scale_down_by; + } +else + { + prop->w = opts->region.w; + prop->h = opts->region.h; + } + } + else if (opts->scale_down_by > 1) { prop->w = (int) w32 / opts->scale_down_by; prop->h = (int) h32 / opts->scale_down_by; @@ -222,6 +242,7 @@ evas_image_load_file_data_png(void *loader_data, char passes; int i, j, p, k; volatile int scale_ratio = 1; + volatile int region_set = 0; int image_w = 0, image_h = 0; volatile Eina_Bool r = EINA_FALSE; @@ -287,11 +308,20 @@ evas_image_load_file_data_png(void *loader_data, w32 /= scale_ratio; h32 /= scale_ratio; } + + if ((opts->region.w > 0 && opts->region.h > 0) && + (opts->region.w != image_w || opts->region.h != image_h)) + { +w32 = opts->region.w / scale_ratio; +h32 = opts->region.h / scale_ratio; +region_set = 1; + } + if (prop->w != w32 || prop->h != h32) { - *error = EVAS_LOAD_ERROR_GENERIC; - goto close_file; + *error = EVAS_LOAD_ERROR_GENERIC; + goto close_file; } surface = pixels; @@ -354,7 +384,7 @@ evas_image_load_file_data_png(void *loader_data, passes = png_set_interlace_handling(png_ptr); /* we read image line by line if scale down was set */ - if (scale_ratio == 1) + if (scale_ratio == 1 && region_set == 0) { for (p = 0; p < passes; p++) { @@ -366,15 +396,26 @@ evas_image_load_file_data_png(void *loader_data, else { unsigned char *src_ptr, *dst_ptr; - +int skip_row = 0, region_x = 0, region_y = 0; dst_ptr = surface; + +if (region_set) + { + region_x = opts->region.x; + region_y = opts->region.y; + } + if (passes == 1) { tmp_line = (unsigned char *) alloca(image_w * pack_offset); + + for (skip_row = 0; skip_row < region_y; skip_row++) + png_read_row(png_ptr, tmp_line, NULL); + for (i = 0; i < h; i++) { png_read_row(png_ptr, tmp_line, NULL); - src_ptr = tmp_line; + src_ptr = tmp_line + region_x * pack_offset; for (j = 0; j < w; j++) { for (k = 0; k < (int)pack_offset; k++) @@ -385,6 +426,8 @@ evas_image_load_file_data_png(void *loader_data, for (j = 0; j < (scale_ratio - 1); j++) png_read_row(png_ptr, tmp_line, NULL); } + for (skip_row = region_y + h * scale_ratio; skip_row < image_h; skip_row++) + png_read_row(png_ptr, tmp_line, NULL); } else { @@ -397,17 +440,18 @@ evas_image_load_file_data_png(void *loader_data, for (i = 0; i < image_h; i++) png_read_row(png_ptr, pixels2 + (i * image_w * pack_offset), NULL); } - + + src_ptr = pixels2 + (region_y * image_w * pack_offset) + region_x * pack_offset; + for (i = 0; i < h; i++) { - src_ptr = pixels2 + (i * scale_ratio * image_w * pack_offset); for (j = 0; j < w; j++) {
[EGIT] [core/efl] master 01/06: evas: Support region_set for BMP image
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a76fd7b37e464c45528b9077cbd2e261bda60f9b commit a76fd7b37e464c45528b9077cbd2e261bda60f9b Author: jiin.moonDate: Wed Aug 17 16:06:05 2016 +0900 evas: Support region_set for BMP image Summary: 1) BMP loader support region decoding. @feature 2) Fix an issue what BMP loader can't decode an 16bit image with bit field @fix Test Plan: attached sample codes Reviewers: cedric, jpeg, jypark Differential Revision: https://phab.enlightenment.org/D4228 --- .../evas/image_loaders/bmp/evas_image_load_bmp.c | 140 ++--- 1 file changed, 95 insertions(+), 45 deletions(-) diff --git a/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c b/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c index 17413f0..2b8fc26 100644 --- a/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c +++ b/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c @@ -368,6 +368,19 @@ evas_image_load_file_head_bmp(void *loader_data, *error = EVAS_LOAD_ERROR_GENERIC; goto close_file; } + + if (load_opts->region.w > 0 && load_opts->region.h > 0) + { +if ((load_opts->region.w + load_opts->region.x > header.width) || +(load_opts->region.h + load_opts->region.y > header.height)) + { + *error = EVAS_LOAD_ERROR_GENERIC; + goto close_file; + } +header.width = load_opts->region.w; +header.height = load_opts->region.h; + } + /* It is not bad idea that bmp loader support scale down decoding * because of memory issue in mobile world.*/ if (load_opts->scale_down_by > 1) @@ -465,6 +478,7 @@ evas_image_load_file_data_bmp(void *loader_data, /* for scale decoding */ unsigned int *scale_surface = NULL, *scale_pix = NULL; int scale_ratio = 1, image_w = 0, image_h = 0; + int region_set = 0, region_x = 0, region_y = 0, region_w, region_h; int row_size = 0; /* Row size is rounded up to a multiple of 4bytes */ int read_line = 0; /* total read line */ @@ -499,12 +513,30 @@ evas_image_load_file_data_bmp(void *loader_data, *error = EVAS_LOAD_ERROR_GENERIC; goto close_file; } + image_w = region_w = header.width; + image_h = region_h = header.height; + + if (opts->region.w > 0 && opts->region.h > 0) + { +if ((opts->region.w + opts->region.x > header.width) || +(opts->region.h + opts->region.y > header.height)) + { + *error = EVAS_LOAD_ERROR_GENERIC; + goto close_file; + } +region_set = 1; +region_x = opts->region.x; +region_y = image_h - (opts->region.h + opts->region.y); +region_w = opts->region.w; +region_h = opts->region.h; + +header.width = opts->region.w; +header.height = opts->region.h; + } /* It is not bad idea that bmp loader support scale down decoding * because of memory issue in mobile world. */ if (opts->scale_down_by > 1) scale_ratio = opts->scale_down_by; - image_w = header.width; - image_h = header.height; if (scale_ratio > 1) { @@ -566,7 +598,7 @@ evas_image_load_file_data_bmp(void *loader_data, } position = header.offset; -if ((scale_ratio == 1) || (header.comp !=0)) +if ((!region_set && scale_ratio == 1) || (header.comp != 0)) { if (image_size < (int)(fsize - position)) image_size = fsize - position; @@ -588,20 +620,20 @@ evas_image_load_file_data_bmp(void *loader_data, *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; goto close_file; } -if ((scale_ratio == 1) || (header.comp !=0)) - buffer_end = buffer + image_size; -else - buffer_end = buffer + row_size; -p = buffer; - -if ((scale_ratio == 1) || (header.comp !=0)) +if ((!region_set && scale_ratio == 1) || (header.comp != 0)) { + buffer_end = buffer + image_size; if (!read_mem(map, fsize, , buffer, image_size)) goto close_file; } else { + if (region_set) + position += row_size * region_y; + if (!read_mem(map, fsize, , buffer, row_size)) goto close_file; + buffer_end = buffer + row_size; } +p = buffer; if (header.bit_count == 1) { @@ -612,7 +644,7 @@ evas_image_load_file_data_bmp(void *loader_data, for (y = 0; y < header.height; y++) { if (!right_way_up) pix = surface + ((header.height - 1 - y) * header.width); - if (scale_ratio > 1) pix = scale_surface; // one line decoding + if (scale_ratio > 1 ||
[EGIT] [core/efl] master 05/06: evas: Fix region test in jpeg load with region + zoom
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0193e40d8c1c06303bc8f0be95634fe8df7f1481 commit 0193e40d8c1c06303bc8f0be95634fe8df7f1481 Author: Jean-Philippe AndreDate: Wed Aug 17 16:45:16 2016 +0900 evas: Fix region test in jpeg load with region + zoom The previous commit exposed an issue with the region test does not take into account the scale down factor. Not a @fix in itself, as it depends on the previous patch. --- src/lib/emile/emile_image.c | 7 +++ src/modules/evas/image_loaders/png/evas_image_load_png.c | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/lib/emile/emile_image.c b/src/lib/emile/emile_image.c index 5c12035..7c1db48 100644 --- a/src/lib/emile/emile_image.c +++ b/src/lib/emile/emile_image.c @@ -1562,6 +1562,13 @@ _emile_jpeg_head(Emile_Image *image, prop->w, prop->h, degree, prop->flipped); } +if (prop->scale > 1) + { + load_region_x /= prop->scale; + load_region_y /= prop->scale; + load_region_w /= prop->scale; + load_region_h /= prop->scale; + } RECTS_CLIP_TO_RECT(load_region_x, load_region_y, load_region_w, load_region_h, 0, 0, prop->w, prop->h); 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 15660af..3444c0f 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 @@ -159,8 +159,8 @@ evas_image_load_file_head_png(void *loader_data, if (opts->region.w > 0 && opts->region.h > 0) { -if ((w32 < opts->region.x + opts->region.w) || -(h32 < opts->region.y + opts->region.h)) +if (((int) w32 < opts->region.x + opts->region.w) || +((int) h32 < opts->region.y + opts->region.h)) { *error = EVAS_LOAD_ERROR_GENERIC; goto close_file; --
Re: [E-devel] [EGIT] [core/enlightenment] master 01/01: e sudo gui support - add askpass util for sudo askpass support
On Wed, 17 Aug 2016 09:20:52 +0100 Tom Hacohensaid: > On 17/08/16 00:42, Carsten Haitzler (The Rasterman) wrote: > > On Tue, 16 Aug 2016 20:16:04 -0300 Iván Briano > > said: > > > >> On Tue, 16 Aug 2016 21:22:32 +0900, Carsten Haitzler wrote: > >>> On Tue, 16 Aug 2016 11:44:03 + Mike Blumenkrantz > >>> said: > >>> > >>> no worries. it's the same for SSH_ASKPASS too - you still get the normal > >>> tty password req is there is a tty. if there is not both sudo and ssh can > >>> fail (unless you have a no-password ssh key or sudo is configured for > >>> nopasswd for your user). so these work as normal in the no password > >>> cases. in the cases you do need a password both will fail completely. > >>> this adds this little utility so these don't hail anymore if they are > >>> in .desktop file or other command/app/script you launch from within > >>> e... :) overall this makes e more functional... thus i don't see a > >>> problem in ALWAYS setting the env var. if someone dislikes this they can > >>> override the env vars or unset them in scripts. and even in e's > >>> environment var settings since e_env_init is called after these env vars > >>> are set... :) but for the vast majority of people .. they don't need this > >>> or likely want it.. and things went from not working to working out of > >>> the box with no effort on their part. :) > >>> > >>> some small things to improve in e here. i'll poke around some other small > >>> things here and there as i get the time. :) > >> > >> Now explain the do { } while(0). If all you wanted to do was indent the > >> blocks hierarchically, why not just { }? I had to pay to download all > >> those extra characters. > > > > technically {} is not legal. it works. thats why so many macros in our > > public headers have do { } while (0); because a { } may not work. > > > > http://stackoverflow.com/questions/257418/do-while-0-what-is-it-good-for > > > > it's a habit i've grown from making sure macros work. yes - using it to > > indent the code so you can clearly see child/parent relationships in > > widgets. i'm trying this out as a way to make things look more readable > > when going over gui layout code. > > > > A slight correction: as far as I know, {} is perfectly legal (I used it > all the time everywhere). However, as you mentioned, you should not use > it in macros, and should use do-while instead. The reason for that is to > force a semicolon at the end of macros. > > For macros FOO1 and 2: > #define FOO1(x) { ... } > #define FOO2(x) do { ... } while (0) > > > FOO1(1) // will work > FOO1(1); // will possibly generate a warning for extraneous semicolon > > FOO2(1) // will not compile > FOO2(1); // will work as expected. > > I use {} and I think it's better than putting do-while in code, but I > think if you insist on using a loop construct for indention, I'd do "if > (1)" or something like that. as i said - its habit from making macros correct. :) as i said... :) it does the job. :) > -- > Tom. > > -- > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: evas: mark unused function parameter as such
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=dc0416fade38589a31305c0c2a48ad0f1506c438 commit dc0416fade38589a31305c0c2a48ad0f1506c438 Author: Stefan SchmidtDate: Tue Aug 16 17:05:04 2016 +0200 evas: mark unused function parameter as such --- src/lib/evas/canvas/efl_event_hold.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/efl_event_hold.c b/src/lib/evas/canvas/efl_event_hold.c index 8a84574..ff30336 100644 --- a/src/lib/evas/canvas/efl_event_hold.c +++ b/src/lib/evas/canvas/efl_event_hold.c @@ -61,7 +61,7 @@ _efl_event_hold_efl_event_input_event_flags_get(Eo *obj EINA_UNUSED, Efl_Event_H } EOLIAN static Eo * -_efl_event_hold_efl_object_constructor(Eo *obj, Efl_Event_Hold_Data *pd) +_efl_event_hold_efl_object_constructor(Eo *obj, Efl_Event_Hold_Data *pd EINA_UNUSED) { obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_event_reset(obj); --
Re: [E-devel] [EGIT] [core/enlightenment] master 01/01: e sudo gui support - add askpass util for sudo askpass support
On 17/08/16 00:42, Carsten Haitzler (The Rasterman) wrote: > On Tue, 16 Aug 2016 20:16:04 -0300 Iván Brianosaid: > >> On Tue, 16 Aug 2016 21:22:32 +0900, Carsten Haitzler wrote: >>> On Tue, 16 Aug 2016 11:44:03 + Mike Blumenkrantz >>> said: >>> >>> no worries. it's the same for SSH_ASKPASS too - you still get the normal tty >>> password req is there is a tty. if there is not both sudo and ssh can fail >>> (unless you have a no-password ssh key or sudo is configured for nopasswd >>> for your user). so these work as normal in the no password cases. in the >>> cases you do need a password both will fail completely. this adds this >>> little utility so these don't hail anymore if they are in .desktop file or >>> other command/app/script you launch from within e... :) overall this makes >>> e more functional... thus i don't see a problem in ALWAYS setting the env >>> var. if someone dislikes this they can override the env vars or unset them >>> in scripts. and even in e's environment var settings since e_env_init is >>> called after these env vars are set... :) but for the vast majority of >>> people .. they don't need this or likely want it.. and things went from not >>> working to working out of the box with no effort on their part. :) >>> >>> some small things to improve in e here. i'll poke around some other small >>> things here and there as i get the time. :) >> >> Now explain the do { } while(0). If all you wanted to do was indent the >> blocks hierarchically, why not just { }? I had to pay to download all >> those extra characters. > > technically {} is not legal. it works. thats why so many macros in our public > headers have do { } while (0); because a { } may not work. > > http://stackoverflow.com/questions/257418/do-while-0-what-is-it-good-for > > it's a habit i've grown from making sure macros work. yes - using it to indent > the code so you can clearly see child/parent relationships in widgets. i'm > trying this out as a way to make things look more readable when going over gui > layout code. > A slight correction: as far as I know, {} is perfectly legal (I used it all the time everywhere). However, as you mentioned, you should not use it in macros, and should use do-while instead. The reason for that is to force a semicolon at the end of macros. For macros FOO1 and 2: #define FOO1(x) { ... } #define FOO2(x) do { ... } while (0) FOO1(1) // will work FOO1(1); // will possibly generate a warning for extraneous semicolon FOO2(1) // will not compile FOO2(1); // will work as expected. I use {} and I think it's better than putting do-while in code, but I think if you insist on using a loop construct for indention, I'd do "if (1)" or something like that. -- Tom. -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [tools/enventor] master 01/01: search: Move "Next" button to the right of "Previous" button.
jaehyun pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=e646da1ee08f8bc614400ce6f8de145690718b63 commit e646da1ee08f8bc614400ce6f8de145690718b63 Author: Jaehyun ChoDate: Wed Aug 17 15:39:37 2016 +0900 search: Move "Next" button to the right of "Previous" button. --- data/themes/default/layout_common.edc | 12 ++-- src/bin/search.c | 13 ++--- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/data/themes/default/layout_common.edc b/data/themes/default/layout_common.edc index 81d9f88..b1d103e 100644 --- a/data/themes/default/layout_common.edc +++ b/data/themes/default/layout_common.edc @@ -1037,7 +1037,7 @@ group { "search_layout"; fixed: 1 1; } } - swallow { "elm.swallow.forward"; + swallow { "elm.swallow.backward"; scale: 1; desc { "default"; rel1.relative: 0 1; @@ -1052,13 +1052,13 @@ group { "search_layout"; fixed: 1 1; } } - swallow { "elm.swallow.backward"; + swallow { "elm.swallow.forward"; scale: 1; desc { "default"; rel1.relative: 1 0; rel2.relative: 1 1; -rel1.to: "elm.swallow.forward"; -rel2.to: "elm.swallow.forward"; +rel1.to: "elm.swallow.backward"; +rel2.to: "elm.swallow.backward"; rel1.offset: 5 0; min: 50 25; align: 0 0; @@ -1070,8 +1070,8 @@ group { "search_layout"; desc { "default"; rel1.relative: 1 0; rel2.relative: 1 1; -rel1.to: "elm.swallow.backward"; -rel2.to: "elm.swallow.backward"; +rel1.to: "elm.swallow.forward"; +rel2.to: "elm.swallow.forward"; rel1.offset: 5 0; min: 50 25; align: 0 0; diff --git a/src/bin/search.c b/src/bin/search.c index 20e3b54..12a7453 100644 --- a/src/bin/search.c +++ b/src/bin/search.c @@ -402,13 +402,6 @@ search_open(void) evas_object_size_hint_align_set(entry_replace, EVAS_HINT_FILL, 0); elm_object_part_content_set(layout, "elm.swallow.replace_entry", entry_replace); - //Button (forward) - Evas_Object *btn_forward = elm_button_add(layout); - elm_object_text_set(btn_forward, _("Next")); - evas_object_smart_callback_add(btn_forward, "clicked", forward_clicked_cb, - sd); - elm_object_part_content_set(layout, "elm.swallow.forward", btn_forward); - //Button (backward) Evas_Object *btn_backward = elm_button_add(layout); elm_object_text_set(btn_backward, _("Previous")); @@ -416,6 +409,12 @@ search_open(void) backward_clicked_cb, sd); elm_object_part_content_set(layout, "elm.swallow.backward", btn_backward); + //Button (forward) + Evas_Object *btn_forward = elm_button_add(layout); + elm_object_text_set(btn_forward, _("Next")); + evas_object_smart_callback_add(btn_forward, "clicked", forward_clicked_cb, + sd); + elm_object_part_content_set(layout, "elm.swallow.forward", btn_forward); //Button (replace) Evas_Object *btn_replace = elm_button_add(layout); --
Re: [E-devel] [RFC] Eina_Slice and Eina_Rw_Slice
On Tue, 16 Aug 2016 11:17:01 -0300 Gustavo Sverzut Barbierisaid: > On Tue, Aug 16, 2016 at 4:28 AM, Carsten Haitzler > wrote: > > On Tue, 16 Aug 2016 01:43:43 -0300 Gustavo Sverzut Barbieri > > said: > > > >> On Mon, Aug 15, 2016 at 11:37 PM, Carsten Haitzler > >> wrote: > >> > On Mon, 15 Aug 2016 22:35:58 -0300 Gustavo Sverzut Barbieri > >> > said: > >> > > >> >> On Mon, Aug 15, 2016 at 8:13 PM, Carsten Haitzler > >> >> wrote: > >> >> > On Mon, 15 Aug 2016 12:07:16 -0300 Gustavo Sverzut Barbieri > >> >> > said: > >> [...] > >> >> It is the same, but you do not need to replicate this in every class > >> >> like done in Ecore_Exe, Ecore_Con, Ecore_Con_URL... :-) > >> >> > >> >> I was thinking just like you, but after talking to Tasn a bit I got > >> >> what he meant with a "thin wrapper around syscalls" and at the end it > >> >> does make sense, more sense actually. > >> > > >> > if it is just a thin wrapper then what value does it provide? > >> > >> Uniform access to the calls. > >> > >> Like in Linux, you do get read(2),write(2),close(2) and file > >> descriptors to work on almost every basic resource. But when you go to > >> higher level resources, like when doing HTTP over libcurl, then you > >> cannot call "read(2)" directly... > >> > >> With the API I'm proposing you get that simplicity of Unix FD's back. > >> It's almost the same call and behavior. > >> > >> Then you can write a simple code that monitors a source, see when > >> there is data to read, read some data, wait until the destination can > >> hold more data, then write it... in a loop. This is the Efl.Io.Copier. > >> > >> Check: > >> https://git.enlightenment.org/core/efl.git/log/?h=devs/barbieri/efl-io-interfaces > >> > >> You will see I already provide Stdin, Stdout, Stderr and File. Those > >> are "useless" since you could do with pure POSIX calls. But when I add > >> the objects implemented on complex libraries such as cURL, then that > >> code will "just work". > > > > unix fd's are NOT - simple. not if you want to be non-blocking. you have to > > handle write failures and figure out what was and was not written from your > > buffer, handle select() on the when it is available again and write then - > > and for all you know you may be able to just write a single byte and then > > ave to try again and so on. > > > > unix read/write and fd's push the logic of this up the stack into the app. > > the alternative is to do blocking i/o and that is just not viable for > > something that multiplexes all its i/o through an event loop. > > > > what i have read of this so far means pushing the "kernel buffer is full, > > write failed now or partly failed" back off into the app. and that is not > > even close to replacing ecore_con - it fundamentally misses the "i'll > > buffer that for you, don't worry about it" nature of it that takes the > > kernel's limited buffering and extends it to "infinite" that saves a lot of > > pain and agony. > > Raster, check the code and see it's all in there. When I mean "simple" > is that its nature is pretty simple, concepts are well understood... > not that it's simple or easy to use. > > Since we must deal with that *at least* for the POSIX, then we'll do > it on our side at least once. > > As this POSIX is very simple, it's implementable everywhere with > minimum effort, thus works well for this level of API. > > I completely agree that for end users, having infinite buffers and > even line-buffers for most tasks is *must have*, that's why I'm > focusing on having this in an uniform way. > > You seem to just not get the layers and split roles... maybe because > in previous ecore all elements replicated that? It's the only > difference, the logic is there, but moved outside so we don't > replicate it all. i am only seeing a low level atm in your examples. the code samples look to be not much above a simple read/write/fd wrapper that i've seen. > Benefits everyone: > > - efl developers reader/writer providers become simpler, no need to > reimplement all on their own, no need to inherit a big bulk of a base > class > > - efl users know that they all look and feel the same, they can use > the efl.io.copier on them all and the signals, buffering and behavior > are the same. No need to understand Ecore_Exe, Ecore_Con, > Ecore_Con_URL events. none of these api's should be even using these low level api's because at the efl.io level so far that i've seen it's either blocking i/o OR it's non-blocking and then writes can fail witn 0 or partial byte writes and thus the api user has to deal with that failure. this just shouldn't have to be done anywhere. in any efl api. :( > I know you're worried about "common cases", so am I. At the end of > this project I'll have to migrate all Ecore_Con + Ecore_Con_URL users > to the new API and I'll be the first one to
Re: [E-devel] Can't build doc for EFL
On Wed, 17 Aug 2016 00:14:40 +0500 Nikita Zlobinsaid: > Hit, it is gentoo S). And this is not first case. > But in turn, i remember case - when i took part in ladish development, > i used ubuntu... and my code, being ok on my system, segfailed on > gentoo system of project leader, revealing one hard to detect bug. > > doxygen 1.8.11, gcc 4.9.3 (though how it relates to doc gen...) > > As for configuration, i took them from ebuild log: > $ ./configure --enable-cserve --enable-image-loader-generic > --enable-image-loader-jpeg --disable-tizen --disable-gesture > --disable-gstreamer --enable-xinput2 --disable-xinput22 > --disable-multisense --enable-libmount --with-opengl-full > --disable-physics --with-glib=no --enable-image-loader-jp2k > --enable-gnutls > --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-abb > --prefix=/usr > > As for bugs - you can see there one veeery lonnng option, so > decided to consult. Can't beleive, that these options might cause doc > making to fail. --enable-cserve <- you know this is enabled by default? why enable? --enable-image-loader-generic <- enabled by default too --enable---disable-image-loader-jpeg <- enabled by default too --disable-tizen <- disabled by defaault... --disable-gesture <- disabled by default... --disable-gstreamer <- you know this is disabled by default... --disable-multisense <- you do know this breaks theme functionality right? --enable-libmount <- you know itss enabled by default? --with-opengl-full <- you know this is a typo? it should be: --with-opengl=full ... and this is the default anyway... --disable-physics <- you know this can break theme functionality right? --with-glib=no <- you know this can create problems with things like the ibus imf modules which require it (because libibus need glib mainloop stuff), though you don't enable the ibus imf module here...? --enable-gnutls <- why gnutls not openssl. you know we test openssl as it's the default. gnutls gets little to no testing. also optimization - little to none with it. almost all your options are redundant and several i would think are dubious to alter... though none of these SHOULD affect document generation - maybe unless there is more glib main loop integration that is needed that we've missed (scim? something else?) and since it's on by default ... we haven't seen the brokenness with it off. there is a reason we make you put in that insanely long option accepting your fate if you stray from tested defaults that might have an effect. > В Tue, 16 Aug 2016 11:23:29 +0200 > Stefan Schmidt пишет: > > > Hello. > > > > On 15/08/16 22:46, Nikita Zlobin wrote: > > > Hello. I tried to build versions 1.17.2, then from git. > > > In order to build doc, i'm doing "make doc", because otherwise it > > > is skipped somewhy. > > > > The why is pretty easy to understand. If we would build docs for > > every run of make the developers would go crazy. Thus it is a special > > make target. > > > > > > For EFL it ends with this error: > > > > > > http://codepad.org/Ph5hAHDF > > > > I just build make doc from a 1.17.2 tarball without problems here. > > > > What configure flags are you suing here? Are you running on Gentoo by > > any chance, because I think I have seen this at some point on our > > Jenkins installation which runs Gentoo. > > > > What version of doxygen are you using? I have this here: > > stefan@workmachine efl-1.17.2 $ doxygen --version > > 1.8.9.1 > > > > Feel free to create a ticket for this as I will not be available the > > next weeks due to an upcoming vacation. So we do not forget about it. > > > > regards > > Stefan Schmidt > > > > -- > > ___ > > enlightenment-devel mailing list > > enlightenment-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > -- > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/enlightenment] master 01/01: e sudo gui support - add askpass util for sudo askpass support
On Tue, 16 Aug 2016 20:16:04 -0300 Iván Brianosaid: > On Tue, 16 Aug 2016 21:22:32 +0900, Carsten Haitzler wrote: > > On Tue, 16 Aug 2016 11:44:03 + Mike Blumenkrantz > > said: > > > > no worries. it's the same for SSH_ASKPASS too - you still get the normal tty > > password req is there is a tty. if there is not both sudo and ssh can fail > > (unless you have a no-password ssh key or sudo is configured for nopasswd > > for your user). so these work as normal in the no password cases. in the > > cases you do need a password both will fail completely. this adds this > > little utility so these don't hail anymore if they are in .desktop file or > > other command/app/script you launch from within e... :) overall this makes > > e more functional... thus i don't see a problem in ALWAYS setting the env > > var. if someone dislikes this they can override the env vars or unset them > > in scripts. and even in e's environment var settings since e_env_init is > > called after these env vars are set... :) but for the vast majority of > > people .. they don't need this or likely want it.. and things went from not > > working to working out of the box with no effort on their part. :) > > > > some small things to improve in e here. i'll poke around some other small > > things here and there as i get the time. :) > > Now explain the do { } while(0). If all you wanted to do was indent the > blocks hierarchically, why not just { }? I had to pay to download all > those extra characters. technically {} is not legal. it works. thats why so many macros in our public headers have do { } while (0); because a { } may not work. http://stackoverflow.com/questions/257418/do-while-0-what-is-it-good-for it's a habit i've grown from making sure macros work. yes - using it to indent the code so you can clearly see child/parent relationships in widgets. i'm trying this out as a way to make things look more readable when going over gui layout code. > > > > > Oh okay, thanks for clearing that up! > > > > > > On Mon, Aug 15, 2016 at 7:16 PM Carsten Haitzler > > > wrote: > > > > > > > On Mon, 15 Aug 2016 15:08:53 + Mike Blumenkrantz > > > > said: > > > > > > > > > On Sat, Aug 13, 2016 at 4:39 AM Carsten Haitzler > > > > > wrote: > > > > > > > > > > > raster pushed a commit to branch master. > > > > > > > > > > > > > > > > > > > > > > http://git.enlightenment.org/core/enlightenment.git/commit/?id=8d780c7fb5ccb04c49c98370c9e4ec7a2440bbb1 > > > > > > > > > > > > commit 8d780c7fb5ccb04c49c98370c9e4ec7a2440bbb1 > > > > > > Author: Carsten Haitzler (Rasterman) > > > > > > Date: Sat Aug 13 17:39:17 2016 +0900 > > > > > > > > > > > > e sudo gui support - add askpass util for sudo askpass support > > > > > > > > > > > > this gives e by default sudo gui support with an askpass util > > > > > > that sudo can use as well as setting the env var correctly so it > > > > > > will be used by sudo. > > > > > > > > > > > > @feature > > > > > > --- > > > > > > configure.ac | 4 + > > > > > > data/desktop/Makefile.mk | 3 +- > > > > > > data/desktop/enlightenment_askpass.desktop | 12 +++ > > > > > > data/icons/Makefile.mk | 6 ++ > > > > > > data/icons/enlightenment-askpass.png | Bin 0 -> 696 bytes > > > > > > src/bin/.gitignore | 1 + > > > > > > src/bin/Makefile.mk| 9 +- > > > > > > src/bin/e_askpass_main.c | 142 > > > > > > + > > > > > > src/bin/e_main.c | 2 + > > > > > > 9 files changed, 177 insertions(+), 2 deletions(-) > > > > > > > > > > > > > > > > > > > > > > > > > > > > diff --git a/src/bin/e_main.c b/src/bin/e_main.c > > > > > > index 28ed4bc..4c705fc 100644 > > > > > > --- a/src/bin/e_main.c > > > > > > +++ b/src/bin/e_main.c > > > > > > @@ -325,6 +325,8 @@ main(int argc, char **argv) > > > > > > e_util_env_set("E_RESTART_OK", NULL); > > > > > > e_util_env_set("PANTS", "ON"); > > > > > > e_util_env_set("DESKTOP", "Enlightenment"); > > > > > > + snprintf(buff, sizeof(buff), "%s/enlightenment_askpass", > > > > > > e_prefix_bin_get()); > > > > > > + e_util_env_set("SUDO_ASKPASS", buff); > > > > > > TS("Environment Variables Done"); > > > > > > > > > > > > /* KDE5 applications don't understand anything other then gnome > > > > > > or kde */ > > > > > > > > > > > > > > > > > Ignoring some unusual style and whitespace-related choices in the > > > > > rest of the commit, globally setting SUDO_ASKPASS and forcing a gui > > > > > popup any > > > > time > > > > > a user runs sudo in a terminal seems a bit excessive. Perhaps that's > > > > > just me? > > > > > > > > incorrect. read the sudo manual page. SUDO_ASKPASS is ONLY used if
Re: [E-devel] [EGIT] [core/efl] master 01/02: Efl object: implement CoW for the function vtables
On Tue, 16 Aug 2016 16:36:20 +0100 Tom Hacohensaid: > This change means you can abuse efl_object_override() a bit more and > rely on it in API. Because while the save is significant for normal > classes, it would be even more significant for object override because > the amount of shared vtables will be higher (most likely, as the number > of overrides tends to be smaller and more clustered). shouldn't this be efl_override() now anyway? ... why object? of course its an object... every eo api works on an object... or maybe it should be efl_func_override or efl_method_override() ... :) > -- > Tom. > > > On 16/08/16 16:34, Tom Hacohen wrote: > > tasn pushed a commit to branch master. > > > > http://git.enlightenment.org/core/efl.git/commit/?id=28c80f91221ae2639f4573046d8621a2a4d18cda > > > > commit 28c80f91221ae2639f4573046d8621a2a4d18cda > > Author: Tom Hacohen > > Date: Mon Aug 15 17:11:13 2016 +0100 > > > > Efl object: implement CoW for the function vtables > > > > This commit implements a sort of CoW for the vtables. The vtables are > > usually just linked to and refcounted. When we need to change them we > > allocate new ones and copy them over so we can write to them. > > > > I wrote some code to measure the effectiveness of this change. When > > running elementary_test (and immediately exiting) I saw that out of the > > total number of vtable chains (561) that were needed by the classes in > > the EFL, 79 (14.08%) were reused. Considering that I had to add > > refcounting (unsigned short, but let's consider it's the size of a word > > because of alignment), I would calculate the saving as such (in bytes): > > > > Number of items in a chain (refcounted block): 32 > > > > 32 bit: > > sizeof(chain_node) = 8 > > Mem wasted on refcounting: 561 * 4 = 2244 > > Mem saved because of sharing: 79 * (32 * 8) = 20224 > > Total save: 17980 bytes > > > > 64 bit: > > sizeof(chain_node) = 16 > > Mem wasted on refcounting: 561 * 8 = 4488 > > Mem saved because of sharing: 79 * (32 * 16) = 40448 > > Total save: 35960 bytes > > > > Wow, we use a lot of memory in Eo classes, I'm sure we can > > save even more if we put our hearts into it (change the shareable units > > to be smaller to increase the chance of sharing). > > This is internal and doesn't affect API/ABI so we can change this even > > further with time. > > > > This also improves efl_object_override(). This should now be quite > > memory efficient (don't abuse, but it's not a big hogg as it was), so > > feel free to abuse that one and rely on it in API. > > > > @feature > > --- > > src/lib/eo/eo.c | 114 +++ > > + src/lib/eo/eo_private.h | 14 +- > > 2 files changed, 98 insertions(+), 30 deletions(-) > > > > diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c > > index 9104a9e..0f530b4 100644 > > --- a/src/lib/eo/eo.c > > +++ b/src/lib/eo/eo.c > > @@ -41,12 +41,6 @@ static inline void _efl_data_xunref_internal(_Eo_Object > > *obj, void *data, const > > > > /* Start of Dich */ > > > > -/* How we search and store the implementations in classes. */ > > -#define DICH_CHAIN_LAST_BITS 5 > > -#define DICH_CHAIN_LAST_SIZE (1 << DICH_CHAIN_LAST_BITS) > > -#define DICH_CHAIN1(x) ((x) >> DICH_CHAIN_LAST_BITS) > > -#define DICH_CHAIN_LAST(x) ((x) & ((1 << DICH_CHAIN_LAST_BITS) - 1)) > > - > > > > /* We are substracting the mask here instead of "AND"ing because it's a > > hot path, > > * it should be a valid class at this point, and this lets the compiler do > > 1 @@ -58,11 +52,86 @@ static inline void _efl_data_xunref_internal > > (_Eo_Object *obj, void *data, const }) > > > > static inline void > > +_vtable_chain2_unref(Dich_Chain2 *chain) > > +{ > > + if (--(chain->refcount) == 0) > > + { > > +free(chain); > > + } > > +} > > + > > +static inline void > > _vtable_chain_alloc(Dich_Chain1 *chain1) > > { > > - if (!chain1->funcs) > > + chain1->chain2 = calloc(1, sizeof(*(chain1->chain2))); > > + chain1->chain2->refcount = 1; > > +} > > + > > +static inline void _vtable_chain_write_prepare(Dich_Chain1 *dst); > > + > > +static inline void > > +_vtable_chain_merge(Dich_Chain1 *dst, const Dich_Chain1 *src) > > +{ > > + Eina_Bool writeable = EINA_FALSE; > > + size_t j; > > + const op_type_funcs *sf = src->chain2->funcs; > > + op_type_funcs *df = dst->chain2->funcs; > > + > > + if (df == sf) > > { > > -chain1->funcs = calloc(DICH_CHAIN_LAST_SIZE, sizeof(* > > (chain1->funcs))); > > +/* Skip if the chain is the same. */ > > +return; > > + } > > + > > + for (j = 0 ; j < DICH_CHAIN_LAST_SIZE ; j++, df++, sf++) > > + { > > +if (sf->func && memcmp(df, sf, sizeof(*df))) > > + { > > + if (!writeable) > > + { > > +
[EGIT] [tools/eflete] master 02/03: ewe_ruler: add API for set/get marker size
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=83d94dd378e5257250ea034a036b571485375ad7 commit 83d94dd378e5257250ea034a036b571485375ad7 Author: Vyacheslav ReutskiyDate: Tue Aug 16 19:21:40 2016 +0300 ewe_ruler: add API for set/get marker size Change-Id: I717089bca372dbd97a7c0d74620b3f00b7e91cfc --- src/bin/ui/workspace/workspace.c | 1 + src/lib/ewe_ruler.c | 18 ++ src/lib/ewe_ruler.eo | 19 +++ 3 files changed, 38 insertions(+) diff --git a/src/bin/ui/workspace/workspace.c b/src/bin/ui/workspace/workspace.c index ed0544f..305788c 100644 --- a/src/bin/ui/workspace/workspace.c +++ b/src/bin/ui/workspace/workspace.c @@ -674,6 +674,7 @@ _radio_switcher_add(Workspace_Data *wd, static void _ruler_add(Evas_Object *parent, Ruler *ruler, Eina_Bool scale_rel) { + ruler->obj = ewe_ruler_add(parent); ruler->pointer = ewe_ruler_marker_add(ruler->obj, "pointer"); ewe_ruler_value_step_set(ruler->obj, NULL, RULER_STEP_DEFAULT); diff --git a/src/lib/ewe_ruler.c b/src/lib/ewe_ruler.c index ad38d56..ea348c5 100644 --- a/src/lib/ewe_ruler.c +++ b/src/lib/ewe_ruler.c @@ -579,6 +579,24 @@ _ewe_ruler_marker_del(Eo *obj EINA_UNUSED, return EINA_TRUE; } +EOLIAN static void +_ewe_ruler_marker_size_set(Eo *obj, + Ewe_Ruler_Smart_Data *sd EINA_UNUSED, + Ewe_Ruler_Marker *marker, + int size) +{ + marker->size = size; + evas_object_smart_changed(obj); +} + +EOLIAN static int +_ewe_ruler_marker_size_get(Eo *obj EINA_UNUSED, + Ewe_Ruler_Smart_Data *sd EINA_UNUSED, + Ewe_Ruler_Marker *marker) +{ + return marker->size; +} + EOLIAN static Eina_Bool _ewe_ruler_marker_relative_set(Eo *obj, Ewe_Ruler_Smart_Data *sd, diff --git a/src/lib/ewe_ruler.eo b/src/lib/ewe_ruler.eo index f383153..9eb24d8 100644 --- a/src/lib/ewe_ruler.eo +++ b/src/lib/ewe_ruler.eo @@ -225,6 +225,25 @@ class Ewe.Ruler (Elm.Widget) style: const(char)*; } } + @property marker_size { + get { + [[ + Get size of given marker. + ]] + } + set { + [[ + Set new size for given marker + ]] + } + keys { + marker: Ewe_Ruler_Marker*; + } + values { + size: int; + } + } + scale_add { [[ Add new scale to ruler. --
[EGIT] [tools/eflete] master 03/03: ewe_ruler: delete extra string
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=5877108cbef4db96f2c020a9aed2896f14e2be23 commit 5877108cbef4db96f2c020a9aed2896f14e2be23 Author: Vyacheslav ReutskiyDate: Wed Aug 17 08:11:32 2016 +0300 ewe_ruler: delete extra string Change-Id: I26b28c6da7dfb8791786ba28c7e155738c733c5b --- src/lib/ewe_ruler.c| 33 + src/lib/ewe_ruler_common.h | 1 - 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/lib/ewe_ruler.c b/src/lib/ewe_ruler.c index ea348c5..3dcc66c 100644 --- a/src/lib/ewe_ruler.c +++ b/src/lib/ewe_ruler.c @@ -208,6 +208,8 @@ _ewe_ruler_horizontal_set(Eo *obj, Ewe_Ruler_Smart_Data *sd, Eina_Bool horizontal) { + Eina_Strbuf *buf; + if (sd->horizontal == horizontal) return EINA_FALSE; sd->horizontal = horizontal; @@ -240,13 +242,15 @@ _ewe_ruler_horizontal_set(Eo *obj, count = eina_list_count(scale->dashes); _delete_extra_dashes(scale, count); } + buf = eina_strbuf_new(); EINA_LIST_FOREACH(sd->markers, lm, marker) { -eina_stringshare_del(marker->full_style); -marker->full_style = eina_stringshare_printf("%s/%s", markers, marker->style); -edje_object_file_set(marker->obj, EWE_THEME, marker->full_style); +eina_strbuf_reset(buf); +eina_strbuf_append_printf(buf, "%s/%s", markers, marker->style); +edje_object_file_set(marker->obj, EWE_THEME, eina_strbuf_string_get(buf)); } + eina_strbuf_free(buf); evas_object_smart_changed(obj); return EINA_TRUE; } @@ -527,6 +531,7 @@ _ewe_ruler_marker_add(Eo *obj, Ewe_Ruler_Smart_Data *sd, const char *style) { + Eina_Strbuf *buf; Ewe_Ruler_Marker *ret = malloc(sizeof(Ewe_Ruler_Marker)); if (!ret) return NULL; if (!style) style = DEFAULT_STYLE; @@ -534,20 +539,21 @@ _ewe_ruler_marker_add(Eo *obj, sd->markers = eina_list_append(sd->markers, ret); ret->style = eina_stringshare_add(style); + buf = eina_strbuf_new(); if (sd->horizontal) { -ret->full_style = eina_stringshare_printf("%s/%s", MARKER, style); +eina_strbuf_append_printf(buf, MARKER"/%s", style); edje_object_size_min_calc(ret->obj, >size, NULL); } else { -ret->full_style = eina_stringshare_printf("%s/%s", MARKER_VER, style); +eina_strbuf_append_printf(buf, MARKER_VER"/%s", style); edje_object_size_min_calc(ret->obj, NULL, >size); } ret->obj = edje_object_add(obj); evas_object_clip_set(ret->obj, sd->clip); - edje_object_file_set(ret->obj, EWE_THEME, ret->full_style); + edje_object_file_set(ret->obj, EWE_THEME, eina_strbuf_string_get(buf)); evas_object_smart_member_add(ret->obj, obj); ret->scale = NULL; @@ -556,6 +562,7 @@ _ewe_ruler_marker_add(Eo *obj, ret->visible = EINA_TRUE; ret->relative = EINA_FALSE; + eina_strbuf_free(buf); return ret; } @@ -566,7 +573,6 @@ _ewe_ruler_marker_del(Eo *obj EINA_UNUSED, { if (!marker) return EINA_FALSE; eina_stringshare_del(marker->style); - eina_stringshare_del(marker->full_style); if (marker->relative) marker->scale->markers = eina_list_remove(marker->scale->markers, marker); @@ -720,17 +726,20 @@ _ewe_ruler_marker_style_set(Eo *obj, Ewe_Ruler_Marker *marker, const char *style) { + Eina_Strbuf *buf; + if (!marker) return EINA_FALSE; eina_stringshare_del(marker->style); - eina_stringshare_del(marker->full_style); marker->style = eina_stringshare_add(style); + + buf = eina_strbuf_new(); if (sd->horizontal) - marker->full_style = eina_stringshare_printf("%s/%s", MARKER, style); + eina_strbuf_append_printf(buf, MARKER"/%s", style); else - marker->full_style = eina_stringshare_printf("%s/%s", MARKER_VER, style); - edje_object_file_set(marker->obj, EWE_THEME, marker->full_style); + eina_strbuf_append_printf(buf, MARKER_VER"/%s", style); + edje_object_file_set(marker->obj, EWE_THEME, eina_strbuf_string_get(buf)); - sd->text_changed = EINA_TRUE; + eina_strbuf_free(buf); evas_object_smart_changed(obj); return EINA_TRUE; } diff --git a/src/lib/ewe_ruler_common.h b/src/lib/ewe_ruler_common.h index 170e762..692da4b 100644 --- a/src/lib/ewe_ruler_common.h +++ b/src/lib/ewe_ruler_common.h @@ -41,7 +41,6 @@ struct _Ewe_Ruler_Marker Evas_Object *obj; Ewe_Ruler_Scale *scale; Eina_Stringshare *style; - Eina_Stringshare *full_style; doublerel_position; int abs_position; int size; --
[EGIT] [tools/eflete] master 01/03: ewe_ruler: handle the ruler size on recalc
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=36a91e1a110a85bdcb3ad43de57bd0f9ab9d3b41 commit 36a91e1a110a85bdcb3ad43de57bd0f9ab9d3b41 Author: Vyacheslav ReutskiyDate: Tue Aug 16 18:08:40 2016 +0300 ewe_ruler: handle the ruler size on recalc Change-Id: I1a7bdac97f61f891867b1fd76500eca86ff29af3 --- src/lib/ewe_ruler.c| 14 ++ src/lib/ewe_ruler_common.h | 1 + 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/lib/ewe_ruler.c b/src/lib/ewe_ruler.c index 46abcdc..ad38d56 100644 --- a/src/lib/ewe_ruler.c +++ b/src/lib/ewe_ruler.c @@ -167,7 +167,7 @@ _place_markers(Ewe_Ruler_Smart_Data *sd) if (sd->horizontal) { /*size of marker(pointer) is set to 1 to make posible centring from style*/ - evas_object_resize(marker->obj, 1, sd->geometry.height); + evas_object_resize(marker->obj, marker->size, sd->geometry.height); evas_object_move(marker->obj, sd->geometry.x + marker->abs_position, sd->geometry.y); @@ -175,7 +175,7 @@ _place_markers(Ewe_Ruler_Smart_Data *sd) else { /*size of marker(pointer) is set to 1 to make posible centring from style*/ - evas_object_resize(marker->obj, sd->geometry.width, 1); + evas_object_resize(marker->obj, sd->geometry.width, marker->size); evas_object_move(marker->obj, sd->geometry.x, marker->abs_position + sd->geometry.y); @@ -535,9 +535,15 @@ _ewe_ruler_marker_add(Eo *obj, ret->style = eina_stringshare_add(style); if (sd->horizontal) - ret->full_style = eina_stringshare_printf("%s/%s", MARKER, style); + { +ret->full_style = eina_stringshare_printf("%s/%s", MARKER, style); +edje_object_size_min_calc(ret->obj, >size, NULL); + } else - ret->full_style = eina_stringshare_printf("%s/%s", MARKER_VER, style); + { +ret->full_style = eina_stringshare_printf("%s/%s", MARKER_VER, style); +edje_object_size_min_calc(ret->obj, NULL, >size); + } ret->obj = edje_object_add(obj); evas_object_clip_set(ret->obj, sd->clip); diff --git a/src/lib/ewe_ruler_common.h b/src/lib/ewe_ruler_common.h index 2375086..170e762 100644 --- a/src/lib/ewe_ruler_common.h +++ b/src/lib/ewe_ruler_common.h @@ -44,6 +44,7 @@ struct _Ewe_Ruler_Marker Eina_Stringshare *full_style; doublerel_position; int abs_position; + int size; Eina_Bool visible : 1; Eina_Bool relative : 1; }; --