[EGIT] [core/efl] master 01/01: menu: Remove extra debug log
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=af85217c6287c2bd45b3151ebca6ecb8ec928907 commit af85217c6287c2bd45b3151ebca6ecb8ec928907 Author: Jean-Philippe AndreDate: Thu Dec 1 15:42:06 2016 +0900 menu: Remove extra debug log See 1f9dfe2ed374bd54dd84aaf70abb496b021269cb Note that this patch causes problems on some systems... --- src/lib/elementary/elm_menu.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/elementary/elm_menu.c b/src/lib/elementary/elm_menu.c index 15b7a86..81e60d8 100644 --- a/src/lib/elementary/elm_menu.c +++ b/src/lib/elementary/elm_menu.c @@ -135,7 +135,6 @@ _submenu_sizing_eval(Elm_Menu_Item_Data *parent_it) evas_object_geometry_get(VIEW(parent_it), , , , ); evas_object_geometry_get(parent_it->submenu.bx, , , , ); _parent_geometry_get(sd, , , , ); - ERR("elm_menu parent geom %d,%d %dx%d", px, py, pw, ph); if (sd->menu_bar && !parent_it->parent) { --
[EGIT] [core/efl] master 03/03: evas/x11: Fix EGL engine for recent nvidia binary
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a3276714ee363d4481e5b0afef71975fa94667d0 commit a3276714ee363d4481e5b0afef71975fa94667d0 Author: Jean-Philippe AndreDate: Thu Dec 1 15:26:11 2016 +0900 evas/x11: Fix EGL engine for recent nvidia binary Thank you NVIDIA for breaking your drivers regularly! eglGetDisplay(x11_display) should work but was consistently returning 0 instead. Apparently EGL 1.5 introduced "eglGetPlatformDisplay" that is more advanced to open a display. So, prefer that over eglGetDisplay if it's available. @fix --- src/modules/evas/engines/gl_x11/evas_x_main.c | 30 +-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/modules/evas/engines/gl_x11/evas_x_main.c b/src/modules/evas/engines/gl_x11/evas_x_main.c index 0a2c3d8..73751be 100644 --- a/src/modules/evas/engines/gl_x11/evas_x_main.c +++ b/src/modules/evas/engines/gl_x11/evas_x_main.c @@ -149,6 +149,32 @@ _visuals_hash_index_get_from_info(Evas_Engine_Info_GL_X11 *info) info->msaa_bits); } +#ifdef GL_GLES + +#ifndef EGL_PLATFORM_X11_KHR +# define EGL_PLATFORM_X11_KHR 0x31D5 +#endif + +static EGLDisplay * +_x11_eglGetDisplay(Display *x11_display) +{ + EGLDisplay (*eglsym_eglGetPlatformDisplay) + (EGLenum platform, void *native_display, const EGLAttrib *attrib_list) = NULL; + EGLDisplay *egldisp = EGL_NO_DISPLAY; + + eglsym_eglGetPlatformDisplay = dlsym(RTLD_DEFAULT, "eglGetPlatformDisplay"); + if (eglsym_eglGetPlatformDisplay) + { +egldisp = eglsym_eglGetPlatformDisplay(EGL_PLATFORM_X11_KHR, + (EGLNativeDisplayType) x11_display, NULL); +if (egldisp) return egldisp; + } + + return eglGetDisplay((EGLNativeDisplayType) x11_display); +} + +#endif + Outbuf * eng_window_new(Evas_Engine_Info_GL_X11 *info, Evas *e, @@ -220,7 +246,7 @@ eng_window_new(Evas_Engine_Info_GL_X11 *info, // EGL / GLES #ifdef GL_GLES gw->gles3 = gles3_supported; - gw->egl_disp = eglGetDisplay((EGLNativeDisplayType)(gw->disp)); + gw->egl_disp = _x11_eglGetDisplay(gw->disp); if (!gw->egl_disp) { ERR("eglGetDisplay() fail. code=%#x", eglGetError()); @@ -853,7 +879,7 @@ eng_best_visual_get(Evas_Engine_Info_GL_X11 *einfo) const char *eglexts, *s; int depth = DefaultDepth(einfo->info.display, einfo->info.screen); - egl_disp = eglGetDisplay((EGLNativeDisplayType)(einfo->info.display)); + egl_disp = _x11_eglGetDisplay(einfo->info.display); if (!egl_disp) { free(evis); --
[EGIT] [core/efl] master 01/03: win: Force opaque region updates on alpha change
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a2a28a5658aa7c752180d48869f2d9c1408439fb commit a2a28a5658aa7c752180d48869f2d9c1408439fb Author: Jean-Philippe AndreDate: Thu Dec 1 13:21:49 2016 +0900 win: Force opaque region updates on alpha change What happens is that ecore_wl2 ignores calls to opaque_region_set if the window has alpha. As a consequence the opaque_region is not updated server-side and the previous window geometry is kept as opaque region, even though the window should have alpha. Thanks @raster for the report. --- src/lib/elementary/efl_ui_win.c | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index 0e971c7..bab64e6 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -338,6 +338,7 @@ static void _elm_win_frame_add(Efl_Ui_Win_Data *sd, const char *style); static void _elm_win_frame_style_update(Efl_Ui_Win_Data *sd, Eina_Bool force_emit, Eina_Bool calc); static inline void _elm_win_need_frame_adjust(Efl_Ui_Win_Data *sd, const char *engine); static void _elm_win_resize_objects_eval(Evas_Object *obj); +static void _elm_win_opaque_update(Efl_Ui_Win_Data *sd, Eina_Bool force_alpha); #ifdef HAVE_ELEMENTARY_X static void _elm_win_xwin_update(Efl_Ui_Win_Data *sd); @@ -412,6 +413,7 @@ _elm_win_apply_alpha(Eo *obj, Efl_Ui_Win_Data *sd) if (!sd->ee) return; enabled = sd->theme_alpha | sd->application_alpha; + _elm_win_opaque_update(sd, EINA_TRUE); if (sd->img_obj) { evas_object_image_alpha_set(sd->img_obj, enabled); @@ -1341,7 +1343,7 @@ _elm_win_opaque_dirty(Efl_Ui_Win_Data *sd) } static void -_elm_win_opaque_update(Efl_Ui_Win_Data *sd) +_elm_win_opaque_update(Efl_Ui_Win_Data *sd, Eina_Bool force_alpha) { #ifdef HAVE_ELEMENTARY_WL2 int ox, oy, ow, oh; @@ -1350,7 +1352,7 @@ _elm_win_opaque_update(Efl_Ui_Win_Data *sd) if (!sd->wl.win) return; wdata = sd->ee->engine.data; - alpha = ecore_evas_alpha_get(sd->ee); + alpha = ecore_evas_alpha_get(sd->ee) || force_alpha; if (sd->fullscreen || !sd->frame_obj) { ecore_evas_geometry_get(sd->ee, NULL, NULL, , ); @@ -4019,7 +4021,7 @@ _elm_win_frame_pre_render(void *data, Evas *e EINA_UNUSED, void *ev EINA_UNUSED) Efl_Ui_Win_Data *sd = data; if (sd->wl.opaque_dirty) - _elm_win_opaque_update(sd); + _elm_win_opaque_update(sd, EINA_FALSE); sd->wl.opaque_dirty = 0; } #endif @@ -4227,8 +4229,8 @@ _elm_win_frame_style_update(Efl_Ui_Win_Data *sd, Eina_Bool force_emit, Eina_Bool edje_object_message_signal_process(sd->frame_obj); if (calc) evas_object_smart_calculate(sd->frame_obj); -_elm_win_opaque_update(sd); _elm_win_frame_obj_update(sd); +_elm_win_opaque_update(sd, EINA_FALSE); } } --
[EGIT] [core/efl] master 02/03: win: Improve bug compatibility for E
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3cb321bf5d67f2354b747773f5a07ec0349cbe80 commit 3cb321bf5d67f2354b747773f5a07ec0349cbe80 Author: Jean-Philippe AndreDate: Thu Dec 1 14:41:06 2016 +0900 win: Improve bug compatibility for E E has a habit of creating windows with a single content that has no weight and/or no min size, but still expecting those windows to size properly and be resizable. This amends a previous sizing hack (but really it's the same) for logout dialogs, and adds another hack for EFM windows (single edje object with no weight, but window should be resizable). --- src/lib/elementary/efl_ui_win.c | 21 - 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index bab64e6..b97ee3d 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -253,6 +253,7 @@ struct _Efl_Ui_Win_Data Eina_Booltheme_alpha : 1; /**< alpha value fetched by a theme. this has higher priority than application_alpha */ Eina_Boolapplication_alpha : 1; /**< alpha value set by an elm_win_alpha_set() api. this has lower priority than theme_alpha */ Eina_Booltmp_updating_hints : 1; + Eina_Boolsingle_edje_content: 1; /* hack for E */ }; struct _Input_Pointer_Iterator @@ -3282,7 +3283,7 @@ _elm_win_xwin_update(Efl_Ui_Win_Data *sd) static void _elm_win_resize_objects_eval(Evas_Object *obj) { - ELM_WIN_DATA_GET(obj, sd); + Efl_Ui_Win_Data *sd = efl_data_scope_get(obj, MY_CLASS); Evas_Coord w, h, minw, minh, maxw, maxh, ow, oh; Eina_Bool unresizable; double wx, wy; @@ -3291,9 +3292,17 @@ _elm_win_resize_objects_eval(Evas_Object *obj) if (minw < 1) minw = 1; if (minh < 1) minh = 1; + // If content has a weight, make resizable efl_gfx_size_hint_weight_get(sd->legacy.edje, , ); + + // Content max hint is ignored maxw = sd->max_w; maxh = sd->max_h; + + // Compatibility hack (for E) + if (sd->single_edje_content && !wx && !wy) + wx = wy = 1; + if (!wx) maxw = minw; else if (maxw < 1) maxw = 32767; if (!wy) maxh = minh; @@ -7692,13 +7701,15 @@ elm_win_resize_object_add(Eo *obj, Evas_Object *subobj) return; } + // Little hack for E + if (evas_obj_box_count(sd->legacy.box) > 0) + sd->single_edje_content = 0; + else if (efl_isa(subobj, EDJE_OBJECT_CLASS)) + sd->single_edje_content = 1; + ret = elm_widget_sub_object_add(obj, subobj); ret &= (evas_object_box_append(sd->legacy.box, subobj) != NULL); - // Little hack for E (edje object set as resize object... but never updated) - if (efl_isa(subobj, EDJE_OBJECT_CLASS)) - edje_object_update_hints_set(subobj, 1); - if (!ret) ERR("could not add sub object %p to window %p", subobj, obj); } --
[E-devel] [RFC] What to do with event registered during there own execution
Hello, So we have currently a bug showing up for some people, that is actually related to how we handle event when a callback is registered from within a call triggered by that same event. There is a few possible behavior : - Do not call the callback until the next time the event is triggered. - If inserted before the currently executed callback, do not call, if after do trigger the call. - Trigger the call whatever the position of insertion (maybe even trigger it right away if it was inserted before) I am leaning toward the first case, but I am not really sure this is a good idea in all case. Any one with a good reason why we should do any of the other possibility ? Have fun, -- Cedric BAIL -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 07/07: ctxpopup: Fix shadow variable warning
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=70f39cf3f029037ddd6ea21436a21b02aa00910b commit 70f39cf3f029037ddd6ea21436a21b02aa00910b Author: Jean-Philippe AndreDate: Thu Dec 1 11:28:04 2016 +0900 ctxpopup: Fix shadow variable warning --- src/lib/elementary/elc_ctxpopup.c | 20 ++-- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/lib/elementary/elc_ctxpopup.c b/src/lib/elementary/elc_ctxpopup.c index aeba54f..506569b 100644 --- a/src/lib/elementary/elc_ctxpopup.c +++ b/src/lib/elementary/elc_ctxpopup.c @@ -1281,14 +1281,14 @@ static void _item_wrap_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Elm_Ctxpopup_Item_Data *item = data; + Elm_Object_Item *eo_item2; Eina_List *l; - Elm_Object_Item *eo_item; ELM_CTXPOPUP_DATA_GET_OR_RETURN(item->wcb.cobj, sd); - EINA_LIST_FOREACH(sd->items, l, eo_item) + EINA_LIST_FOREACH(sd->items, l, eo_item2) { -ELM_CTXPOPUP_ITEM_DATA_GET(eo_item, item); -item->selected = EINA_FALSE; +ELM_CTXPOPUP_ITEM_DATA_GET(eo_item2, item2); +item2->selected = EINA_FALSE; } item->selected = EINA_TRUE; @@ -1465,21 +1465,21 @@ _elm_ctxpopup_item_efl_ui_item_next_get(Eo *eo_item EINA_UNUSED, Elm_Ctxpopup_It EOLIAN static void _elm_ctxpopup_item_efl_ui_item_selected_set(Eo *eo_item EINA_UNUSED, -Elm_Ctxpopup_Item_Data *item, -Eina_Bool selected) +Elm_Ctxpopup_Item_Data *item, +Eina_Bool selected) { + Elm_Object_Item *eo_item2; Eina_List *l; - Elm_Object_Item *temp_item; if (selected == item->selected) return; if (selected) { ELM_CTXPOPUP_DATA_GET_OR_RETURN(item->wcb.cobj, sd); -EINA_LIST_FOREACH(sd->items, l, temp_item) +EINA_LIST_FOREACH(sd->items, l, eo_item2) { - ELM_CTXPOPUP_ITEM_DATA_GET(temp_item, item); - item->selected = EINA_FALSE; + ELM_CTXPOPUP_ITEM_DATA_GET(eo_item2, item2); + item2->selected = EINA_FALSE; } } elm_list_item_selected_set(item->list_item, selected); --
[EGIT] [core/efl] master 05/07: elm_calendar: Changed the calendar focus highlight concept.
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=40364b49853307d8d593cd9bcffad4b5905fcb01 commit 40364b49853307d8d593cd9bcffad4b5905fcb01 Author: Woochan LeeDate: Thu Dec 1 10:41:48 2016 +0900 elm_calendar: Changed the calendar focus highlight concept. Summary: The highlight image enable when calendar got a focus. We enable the highlight image when the user sent a key event to calendar before. The above concept seems to be incorrect when focus highlight activated already. Test Plan: elementary_test calendar sample. Reviewers: woohyun, cedric, jpeg Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4438 --- src/lib/elementary/elm_calendar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elementary/elm_calendar.c b/src/lib/elementary/elm_calendar.c index 971f893..a2c2517 100644 --- a/src/lib/elementary/elm_calendar.c +++ b/src/lib/elementary/elm_calendar.c @@ -1648,7 +1648,7 @@ _elm_calendar_elm_widget_on_focus(Eo *obj, Elm_Calendar_Data *sd, Elm_Object_Ite if (!int_ret) return EINA_FALSE; if (elm_widget_focus_get(obj)) - sd->focused_it = sd->selected_it; + _update_focused_it(obj, sd->selected_it); else _update_unfocused_it(obj, sd->focused_it); --
[EGIT] [core/efl] master 04/07: Ecore Evas VNC: Increase keytable size.
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=619540fcc0bd1c4a577660937a7d55b5283c00c5 commit 619540fcc0bd1c4a577660937a7d55b5283c00c5 Author: Guilherme IscaroDate: Thu Dec 1 10:39:47 2016 +0900 Ecore Evas VNC: Increase keytable size. Summary: New keys were added to the keytable, however since VNC will not notify the VNC server about these new key types we will simple increase the array size and keep the compiler happy. Reviewers: cedric, barbieri, bdilly, jpeg Reviewed By: jpeg Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4434 --- src/modules/ecore_evas/vnc_server/ecore_evas_vnc_server_fb_keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/ecore_evas/vnc_server/ecore_evas_vnc_server_fb_keymap.c b/src/modules/ecore_evas/vnc_server/ecore_evas_vnc_server_fb_keymap.c index 33f9d210..36497ca 100644 --- a/src/modules/ecore_evas/vnc_server/ecore_evas_vnc_server_fb_keymap.c +++ b/src/modules/ecore_evas/vnc_server/ecore_evas_vnc_server_fb_keymap.c @@ -4,7 +4,7 @@ #include #include -static const char *_ecore_fb_li_kbd_syms[128 * 7] = +static const char *_ecore_fb_li_kbd_syms[144 * 7] = { #include }; --
[EGIT] [core/efl] master 02/07: menu: Fix visibility flag of menu (missing efl_super)
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6d7395a7dbd329d6671803765f3c5d49832a64dc commit 6d7395a7dbd329d6671803765f3c5d49832a64dc Author: Jean-Philippe AndreDate: Wed Nov 30 20:58:27 2016 +0900 menu: Fix visibility flag of menu (missing efl_super) --- src/bin/elementary/test_menu.c | 2 ++ src/lib/elementary/elm_menu.c | 1 + 2 files changed, 3 insertions(+) diff --git a/src/bin/elementary/test_menu.c b/src/bin/elementary/test_menu.c index ec084e6..e9dafa9 100644 --- a/src/bin/elementary/test_menu.c +++ b/src/bin/elementary/test_menu.c @@ -15,6 +15,8 @@ _menu_show_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info) { Evas_Event_Mouse_Down *ev = event_info; + + if (evas_object_visible_get(data)) return; elm_menu_move(data, ev->canvas.x, ev->canvas.y); evas_object_show(data); } diff --git a/src/lib/elementary/elm_menu.c b/src/lib/elementary/elm_menu.c index 8134f00..15b7a86 100644 --- a/src/lib/elementary/elm_menu.c +++ b/src/lib/elementary/elm_menu.c @@ -571,6 +571,7 @@ _elm_menu_efl_gfx_visible_set(Eo *obj EINA_UNUSED, Elm_Menu_Data *sd, Eina_Bool if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_VISIBLE, 0, vis)) return; + efl_gfx_visible_set(efl_super(obj, MY_CLASS), vis); if (vis) efl_gfx_visible_set(sd->hv, EINA_TRUE); } --
[EGIT] [core/efl] master 03/07: conform: Remove getpid() from debug
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=cc4e835f8143f857c30d48c735d1daf7fd78cf74 commit cc4e835f8143f857c30d48c735d1daf7fd78cf74 Author: Jean-Philippe AndreDate: Thu Dec 1 10:33:36 2016 +0900 conform: Remove getpid() from debug The PID is already printed out by default with eina_log. --- src/lib/elementary/elm_conform.c | 26 +- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/src/lib/elementary/elm_conform.c b/src/lib/elementary/elm_conform.c index facac03..ac1e6f4 100644 --- a/src/lib/elementary/elm_conform.c +++ b/src/lib/elementary/elm_conform.c @@ -165,9 +165,7 @@ _conformant_part_sizing_eval(Evas_Object *obj, ("ILLUME_KBD", , , , )) && (xwin)) { //No information of the keyboard geometry, reset the geometry. -#ifdef __linux__ - DBG("[KEYPAD]:pid=%d, xwin=0x%x, zone=0x%x: no env value and check window property.", getpid(), xwin, zone); -#endif + DBG("[KEYPAD]:xwin=0x%x, zone=0x%x: no env value and check window property.", xwin, zone); if (!ecore_x_e_illume_keyboard_geometry_get(xwin, , , , )) { DBG("[KEYPAD]:no window property, check zone property."); @@ -814,15 +812,9 @@ _on_prop_change(void *data, void *event) { Ecore_X_Event_Window_Property *ev = event; - - int pid = 0; - -#ifdef __linux__ - pid = (int)getpid(); -#endif - Evas_Object *conformant = (Evas_Object *)data; ELM_CONFORMANT_DATA_GET(conformant, sd); + if ((ev->atom == ECORE_X_ATOM_NET_WM_STATE) && !sd->win_hidden) { unsigned int i, num; @@ -867,7 +859,7 @@ _on_prop_change(void *data, if (ev->atom == ECORE_X_ATOM_E_ILLUME_ZONE) { -DBG("pid=%d, win=0x%x, ECORE_X_ATOM_E_ILLUME_ZONE.\n", pid, ev->win); +DBG("win=0x%x, ECORE_X_ATOM_E_ILLUME_ZONE.\n", ev->win); Conformant_Part_Type part_type; part_type = (ELM_CONFORMANT_INDICATOR_PART | @@ -879,32 +871,32 @@ _on_prop_change(void *data, } else if (ev->atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY) { -DBG("pid=%d, win=0x%x, ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY.", pid, ev->win); +DBG("win=0x%x, ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY.", ev->win); _conformant_part_sizing_eval(data, ELM_CONFORMANT_INDICATOR_PART); } else if (ev->atom == ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY) { -DBG("pid=%d, win=0x%x, ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY.", pid, ev->win); +DBG("win=0x%x, ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY.", ev->win); _conformant_part_sizing_eval(data, ELM_CONFORMANT_SOFTKEY_PART); } else if (ev->atom == ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY) { -DBG("[KEYPAD]:pid=%d, win=0x%x, ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY.", pid, ev->win); +DBG("[KEYPAD]:win=0x%x, ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY.", ev->win); _conformant_part_sizing_eval(data, ELM_CONFORMANT_VIRTUAL_KEYPAD_PART); } else if (ev->atom == ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY) { -DBG("pid=%d, win=0x%x, ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY.", pid, ev->win); +DBG("win=0x%x, ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY.", ev->win); _conformant_part_sizing_eval(data, ELM_CONFORMANT_CLIPBOARD_PART); } else if (ev->atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE) { -DBG("[KEYPAD]:pid=%d, win=0x%x, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE.", pid, ev->win); +DBG("[KEYPAD]:win=0x%x, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE.", ev->win); _virtualkeypad_state_change(data, ev); } else if (ev->atom == ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE) { -DBG("pid=%d, win=0x%x, ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE.", pid, ev->win); +DBG("win=0x%x, ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE.", ev->win); _clipboard_state_change(data, ev); } --
[EGIT] [core/efl] master 06/07: Eet: add EINA_ARG_NONNULL for eet_data_text_undump* @fix
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e0827a6a90acde0418f7375b5026fea5f3bb0408 commit e0827a6a90acde0418f7375b5026fea5f3bb0408 Author: Artem PopovDate: Thu Dec 1 11:05:50 2016 +0900 Eet: add EINA_ARG_NONNULL for eet_data_text_undump* @fix Summary: Eet_data_text_undump/undump_cipher: add EINA_ARG_NONNULL for mandatory pointer on size(int) Reviewers: cedric, NikaWhite, myoungwoon, jpeg Reviewed By: jpeg Subscribers: jpeg, t.naumenko Differential Revision: https://phab.enlightenment.org/D4440 --- src/lib/eet/Eet.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/eet/Eet.h b/src/lib/eet/Eet.h index 39f060a..19ab574 100644 --- a/src/lib/eet/Eet.h +++ b/src/lib/eet/Eet.h @@ -3268,7 +3268,7 @@ eet_data_text_dump(const void *data_in, EAPI void * eet_data_text_undump(const char *text, int textlen, - int *size_ret); + int *size_ret) EINA_ARG_NONNULL(3); /** * Dump an eet encoded data structure from an eet file into ascii text @@ -4101,7 +4101,7 @@ EAPI void * eet_data_text_undump_cipher(const char *text, const char *cipher_key, int textlen, -int *size_ret); +int *size_ret) EINA_ARG_NONNULL(4); /** * Dump an eet encoded data structure from an eet file into ascii --
[EGIT] [core/efl] master 01/07: menu: Keep opening submenus when hovering over main bar
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5bdd9f6e39dd72790dc7cd9b056923e6da4af5c3 commit 5bdd9f6e39dd72790dc7cd9b056923e6da4af5c3 Author: Jean-Philippe AndreDate: Wed Nov 30 20:01:48 2016 +0900 menu: Keep opening submenus when hovering over main bar The previous situation was that you could hover over a main menu bar item, and see it become hilighted. Click to open the submenu. Classic. Now move over to a second main menu item and the submenu would close, but the second submenu would not open. This behaviour was contrary to pretty much every desktop UI I've used, and really annoyed me. Should we get an elm_config option for that? This is a UI behaviour change. --- src/lib/elementary/elm_menu.c | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/elm_menu.c b/src/lib/elementary/elm_menu.c index 73ad903..8134f00 100644 --- a/src/lib/elementary/elm_menu.c +++ b/src/lib/elementary/elm_menu.c @@ -501,13 +501,20 @@ _menu_item_activate_cb(void *data, } else { +Eina_Bool was_open = EINA_FALSE; ELM_MENU_DATA_GET(WIDGET(item), sd); EINA_LIST_FOREACH(sd->items, l, eo_item2) { if (eo_item2 != EO_OBJ(item)) - elm_menu_item_selected_set(eo_item2, 0); + { + ELM_MENU_ITEM_DATA_GET(eo_item2, item2); + was_open |= item2->submenu.open; + elm_menu_item_selected_set(eo_item2, 0); + } } elm_interface_atspi_accessible_event_emit(ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN, WIDGET(item), ELM_INTERFACE_ATSPI_SELECTION_EVENT_SELECTION_CHANGED, NULL); +if (sd->menu_bar && was_open) + _menu_item_select_cb(item, NULL, NULL, NULL); } if (_elm_config->atspi_mode) elm_interface_atspi_accessible_state_changed_signal_emit(EO_OBJ(item), ELM_ATSPI_STATE_SELECTED, EINA_TRUE); --
[EGIT] [core/enlightenment] master 01/02: e_util_defer_object_del - ensure order of deferred deletions are right
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=8934ada4d8d9576e270defda5877589abdd2345d commit 8934ada4d8d9576e270defda5877589abdd2345d Author: Carsten Haitzler (Rasterman)Date: Thu Nov 24 11:15:00 2016 +0900 e_util_defer_object_del - ensure order of deferred deletions are right so since e_util_defer_object_del used a before idler this would reverse deletion order vs the order submitted. this may cause issues. not sure. chasing netstar's "animator stops" issue, but if defered deletion if disabled seems to stop it from happening. at least fix order if multiple deferred deletions are queued @fix --- src/bin/e_utils.c | 64 ++- 1 file changed, 45 insertions(+), 19 deletions(-) diff --git a/src/bin/e_utils.c b/src/bin/e_utils.c index 5b4dc56..5db1631 100644 --- a/src/bin/e_utils.c +++ b/src/bin/e_utils.c @@ -710,6 +710,36 @@ e_util_dir_check(const char *dir) return 1; } +static Eina_Array *_delay_del_array = NULL; +static Ecore_Idle_Enterer *_delay_del_idler = NULL; + +static Eina_Bool +_e_util_cb_delayed_del(void *data EINA_UNUSED) +{ + while (_delay_del_array) + { +Eina_Array *arr = _delay_del_array; +Eina_Iterator *itr = eina_array_iterator_new(arr); +void *ptr; + +_delay_del_array = NULL; +while (eina_iterator_next(itr, )) + { + if (ptr) e_object_del(E_OBJECT(ptr)); + } +eina_array_free(arr); + } + _delay_del_idler = NULL; + return ECORE_CALLBACK_CANCEL; +} + +static void +_e_util_cb_delayed_cancel(void *data, void *obj EINA_UNUSED) +{ + unsigned long c = (unsigned long)data; + if (_delay_del_array) eina_array_data_set(_delay_del_array, c, NULL); +} + E_API void e_util_defer_object_del(E_Object *obj) { @@ -717,10 +747,21 @@ e_util_defer_object_del(E_Object *obj) e_object_del(obj); else { -Ecore_Idle_Enterer *idler; - -idler = ecore_idle_enterer_before_add(_e_util_cb_delayed_del, obj); -if (idler) e_object_delfn_add(obj, _e_util_cb_delayed_cancel, idler); +if (!_delay_del_array) + { + _delay_del_array = eina_array_new(8); + if (!_delay_del_idler) + _delay_del_idler = ecore_idle_enterer_before_add + (_e_util_cb_delayed_del, NULL); + } +if (_delay_del_array) + { + if (eina_array_push(_delay_del_array, obj)) + { + unsigned long c = eina_array_count_get(_delay_del_array); + e_object_delfn_add(obj, _e_util_cb_delayed_cancel, (void *)c); + } + } } } @@ -818,21 +859,6 @@ _e_util_icon_add(const char *path, Evas *evas, int size) } static Eina_Bool -_e_util_cb_delayed_del(void *data) -{ - e_object_del(E_OBJECT(data)); - return ECORE_CALLBACK_CANCEL; -} - -static void -_e_util_cb_delayed_cancel(void *data, void *obj EINA_UNUSED) -{ - Ecore_Idle_Enterer *idler = data; - - ecore_idle_enterer_del(idler); -} - -static Eina_Bool _e_util_wakeup_cb(void *data EINA_UNUSED) { _e_util_dummy_timer = NULL; --
[EGIT] [core/enlightenment] master 02/02: e tempget module - mode to using threads instead of tempget binary
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=a94ba7cbfdeb310c32b5d4655631d2612e66fb40 commit a94ba7cbfdeb310c32b5d4655631d2612e66fb40 Author: Carsten Haitzler (Rasterman)Date: Wed Nov 30 17:06:45 2016 +0900 e tempget module - mode to using threads instead of tempget binary this should reduce mem usage by a sub binary and aso solve the sub shell kill issue too nd still keep the polling of system status out of the mainloop and keep it unblocked. --- src/modules/Makefile_temperature.mk | 11 +- src/modules/temperature/e_mod_config.c | 44 +++ src/modules/temperature/e_mod_main.c| 236 +--- src/modules/temperature/e_mod_main.h| 41 ++- src/modules/temperature/e_mod_tempget.c | 604 +++--- src/modules/temperature/e_mod_udev.c| 70 +--- src/modules/temperature/tempget.c | 634 7 files changed, 730 insertions(+), 910 deletions(-) diff --git a/src/modules/Makefile_temperature.mk b/src/modules/Makefile_temperature.mk index b583063..d1cb7fb 100644 --- a/src/modules/Makefile_temperature.mk +++ b/src/modules/Makefile_temperature.mk @@ -22,14 +22,7 @@ if HAVE_EEZE src_modules_temperature_module_la_SOURCES += src/modules/temperature/e_mod_udev.c endif -src_modules_temperature_tempgetdir = $(temperaturepkgdir) -src_modules_temperature_tempget_PROGRAMS = src/modules/temperature/tempget - -src_modules_temperature_tempget_CPPFLAGS = $(MOD_CPPFLAGS) -src_modules_temperature_tempget_LDADD = $(MOD_LIBS) -src_modules_temperature_tempget_SOURCES = src/modules/temperature/tempget.c - PHONIES += temperature install-temperature -temperature: $(temperaturepkg_LTLIBRARIES) $(temperature_DATA) $(src_modules_temperature_tempget_PROGRAMS) -install-temperature: install-temperatureDATA install-temperaturepkgLTLIBRARIES install-src_modules_temperature_tempgetPROGRAMS +temperature: $(temperaturepkg_LTLIBRARIES) $(temperature_DATA) +install-temperature: install-temperatureDATA install-temperaturepkgLTLIBRARIES endif diff --git a/src/modules/temperature/e_mod_config.c b/src/modules/temperature/e_mod_config.c index 57f5212..597184e 100644 --- a/src/modules/temperature/e_mod_config.c +++ b/src/modules/temperature/e_mod_config.c @@ -37,6 +37,50 @@ static Evas_Object *_basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dia static int _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); static void _cb_display_changed(void *data, Evas_Object *obj EINA_UNUSED); +static Eina_List * +temperature_get_bus_files(const char *bus) +{ + Eina_List *result; + Eina_List *therms; + char path[PATH_MAX]; + char busdir[PATH_MAX]; + char *name; + + result = NULL; + + snprintf(busdir, sizeof(busdir), "/sys/bus/%s/devices", bus); + /* Look through all the devices for the given bus. */ + therms = ecore_file_ls(busdir); + + EINA_LIST_FREE(therms, name) + { +Eina_List *files; +char *file; + +/* Search each device for temp*_input, these should be + * temperature devices. */ +snprintf(path, sizeof(path), "%s/%s", busdir, name); +files = ecore_file_ls(path); +EINA_LIST_FREE(files, file) + { + if ((!strncmp("temp", file, 4)) && + (!strcmp("_input", [strlen(file) - 6]))) + { + char *f; + + snprintf(path, sizeof(path), + "%s/%s/%s", busdir, name, file); + f = strdup(path); + if (f) result = eina_list_append(result, f); + } + free(file); + } +free(name); + } + return result; +} + + void config_temperature_module(Config_Face *inst) { diff --git a/src/modules/temperature/e_mod_main.c b/src/modules/temperature/e_mod_main.c index 345b7e6..41e1c38 100644 --- a/src/modules/temperature/e_mod_main.c +++ b/src/modules/temperature/e_mod_main.c @@ -83,7 +83,7 @@ _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style) o = edje_object_add(gc->evas); e_theme_edje_object_set(o, "base/theme/modules/temperature", - "e/modules/temperature/main"); + "e/modules/temperature/main"); gcc = e_gadcon_client_new(gc, name, id, style, o); gcc->data = inst; @@ -92,37 +92,13 @@ _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style) inst->o_temp = o; inst->module = temperature_config->module; inst->have_temp = EINA_FALSE; -#ifdef HAVE_EEZE - if (inst->backend == TEMPGET) - { -inst->tempget_data_handler = - ecore_event_handler_add(ECORE_EXE_EVENT_DATA, - _temperature_cb_exe_data, inst); -inst->tempget_del_handler = - ecore_event_handler_add(ECORE_EXE_EVENT_DEL, -
[EGIT] [core/efl] master 01/01: ecore exe - handle scope data get null returns when ppl do bad things
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b3361f1aadbbd96be8b7c7a015e15cf6fe681e8c commit b3361f1aadbbd96be8b7c7a015e15cf6fe681e8c Author: Carsten Haitzler (Rasterman)Date: Thu Dec 1 08:48:25 2016 +0900 ecore exe - handle scope data get null returns when ppl do bad things peolpe using ecore_exe in threads... for example. --- src/lib/ecore/ecore_exe_posix.c | 178 +--- src/lib/ecore/ecore_exe_win32.c | 5 ++ 2 files changed, 100 insertions(+), 83 deletions(-) diff --git a/src/lib/ecore/ecore_exe_posix.c b/src/lib/ecore/ecore_exe_posix.c index 14c7d69..d6683a2 100644 --- a/src/lib/ecore/ecore_exe_posix.c +++ b/src/lib/ecore/ecore_exe_posix.c @@ -884,29 +884,32 @@ _ecore_exe_make_sure_its_dead(void *data) dead = data; if (dead) - { - Ecore_Exe *obj = NULL; + { +Ecore_Exe *obj = NULL; - if ((obj = _ecore_exe_is_it_alive(dead->pid))) - { - Ecore_Exe_Data *exe = efl_data_scope_get(obj, MY_CLASS); - if (dead->cmd) - INF("Sending KILL signal to allegedly dead %s (%d).", - dead->cmd, dead->pid); - else - INF("Sending KILL signal to allegedly dead PID %d.", - dead->pid); - exe->doomsday_clock = - ecore_timer_add(10.0, _ecore_exe_make_sure_its_really_dead, - dead); - kill(dead->pid, SIGKILL); - } - else - { - IF_FREE(dead->cmd); - free(dead); - } - } +if ((obj = _ecore_exe_is_it_alive(dead->pid))) + { + Ecore_Exe_Data *exe = efl_data_scope_get(obj, MY_CLASS); + if (exe) + { + if (dead->cmd) +INF("Sending KILL signal to allegedly dead %s (%d).", +dead->cmd, dead->pid); + else +INF("Sending KILL signal to allegedly dead PID %d.", +dead->pid); + exe->doomsday_clock = +ecore_timer_add(10.0, _ecore_exe_make_sure_its_really_dead, +dead); + kill(dead->pid, SIGKILL); + } + } +else + { + IF_FREE(dead->cmd); + free(dead); + } + } return ECORE_CALLBACK_CANCEL; } @@ -917,22 +920,26 @@ _ecore_exe_make_sure_its_really_dead(void *data) dead = data; if (dead) - { - Ecore_Exe *obj = NULL; + { +Ecore_Exe *obj = NULL; - if ((obj = _ecore_exe_is_it_alive(dead->pid))) - { - Ecore_Exe_Data *exe = efl_data_scope_get(obj, MY_CLASS); - ERR("RUN! The zombie wants to eat your brains! And your CPU!"); - if (dead->cmd) - INF("%s (%d) is not really dead.", dead->cmd, dead->pid); - else - INF("PID %d is not really dead.", dead->pid); - exe->doomsday_clock = NULL; - } - IF_FREE(dead->cmd); - free(dead); - } +if ((obj = _ecore_exe_is_it_alive(dead->pid))) + { + Ecore_Exe_Data *exe = efl_data_scope_get(obj, MY_CLASS); + + if (exe) + { + ERR("RUN! The zombie wants to eat your brains! And your CPU!"); + if (dead->cmd) +INF("%s (%d) is not really dead.", dead->cmd, dead->pid); + else +INF("PID %d is not really dead.", dead->pid); + exe->doomsday_clock = NULL; + } + IF_FREE(dead->cmd); + free(dead); + } + } return ECORE_CALLBACK_CANCEL; } @@ -940,6 +947,7 @@ Ecore_Timer * _ecore_exe_doomsday_clock_get(Ecore_Exe *obj) { Ecore_Exe_Data *exe = efl_data_scope_get(obj, MY_CLASS); + if (!exe) return NULL; return exe->doomsday_clock; } @@ -948,6 +956,7 @@ _ecore_exe_doomsday_clock_set(Ecore_Exe *obj, Ecore_Timer *dc) { Ecore_Exe_Data *exe = efl_data_scope_get(obj, MY_CLASS); + if (!exe) return; exe->doomsday_clock = dc; } @@ -1071,6 +1080,7 @@ _ecore_exe_data_generic_handler(void *data, const Efl_Event_Description *eo_event = NULL; Ecore_Exe_Data *exe = efl_data_scope_get(obj, MY_CLASS); + if (!exe) return EINA_FALSE; /* Sort out what sort of handler we are. */ if (flags & ECORE_EXE_PIPE_READ) @@ -1225,26 +1235,28 @@ _ecore_exe_data_write_handler(void *data, Ecore_Exe *obj = data; Ecore_Exe_Data *exe = efl_data_scope_get(obj, MY_CLASS); + if (!exe) return EINA_FALSE; + if ((exe->write_fd_handler) && (ecore_main_fd_handler_active_get - (exe->write_fd_handler, ECORE_FD_WRITE))) +(exe->write_fd_handler, ECORE_FD_WRITE))) _ecore_exe_flush(obj); /* If we have sent all there is to send, and we
[EGIT] [apps/terminology] master 01/01: fix getting lines with the beacon
billiob pushed a commit to branch master. http://git.enlightenment.org/apps/terminology.git/commit/?id=51fe6b3428bc3eb0eb861499f1f67c62b713b86e commit 51fe6b3428bc3eb0eb861499f1f67c62b713b86e Author: Boris FaureDate: Wed Nov 30 23:25:33 2016 +0100 fix getting lines with the beacon add quite some testing that is disabled by default, used to ensure that the beacon is always valid --- src/bin/termpty.c | 83 +-- 1 file changed, 63 insertions(+), 20 deletions(-) diff --git a/src/bin/termpty.c b/src/bin/termpty.c index 32f01b4..845880b 100644 --- a/src/bin/termpty.c +++ b/src/bin/termpty.c @@ -675,10 +675,10 @@ termpty_line_length(const Termcell *cells, ssize_t nb_cells) (>back[(Ty->backsize + ty->backpos - ((Y) - 1 )) % Ty->backsize]) -#if 0 -static void -verify_beacon(Termpty *ty) +static inline void +verify_beacon(Termpty *ty EINA_UNUSED, int verbose EINA_UNUSED) { +#if 0 Termsave *ts; int nb_lines; int backlog_y = ty->backlog_beacon.backlog_y; @@ -688,32 +688,44 @@ verify_beacon(Termpty *ty) assert(ty->backlog_beacon.backlog_y >= 0); assert(ty->backlog_beacon.screen_y >= ty->backlog_beacon.backlog_y); - //ERR("FROM screen_y:%d backlog_y:%d", - //screen_y, backlog_y); + if (verbose) + { +ERR("FROM screen_y:%d backlog_y:%d", +screen_y, backlog_y); + } while (backlog_y > 0) { ts = BACKLOG_ROW_GET(ty, backlog_y); if (!ts->cells) { - ERR("went too far: screen_y:%d backlog_y:%d", - screen_y, backlog_y); + if (verbose) + { + ERR("went too far: screen_y:%d backlog_y:%d", + screen_y, backlog_y); + } return; } nb_lines = (ts->w == 0) ? 1 : (ts->w + ty->w - 1) / ty->w; screen_y -= nb_lines; backlog_y--; -//ERR("nb_lines:%d screen_y:%d backlog_y:%d ts->w:%d ty->w:%d", -//nb_lines, screen_y, backlog_y, ts->w, ty->w); +if (verbose) + { + ERR("nb_lines:%d screen_y:%d backlog_y:%d ts->w:%d ty->w:%d", + nb_lines, screen_y, backlog_y, ts->w, ty->w); + } assert(screen_y >= backlog_y); } - //ERR("TO screen_y:%d backlog_y:%d", - //screen_y, backlog_y); + if (verbose) + { +ERR("TO screen_y:%d backlog_y:%d", +screen_y, backlog_y); + } assert (backlog_y == 0); assert (screen_y == 0); -} #endif +} static void _backlog_remove_latest_nolock(Termpty *ty) @@ -731,6 +743,7 @@ _backlog_remove_latest_nolock(Termpty *ty) /* reset beacon */ ty->backlog_beacon.screen_y = 0; ty->backlog_beacon.backlog_y = 0; + verify_beacon(ty, 1); termpty_save_free(ts); } @@ -746,6 +759,7 @@ termpty_text_save_top(Termpty *ty, Termcell *cells, ssize_t w_max) return; assert(ty->back); + verify_beacon(ty, 0); termpty_backlog_lock(); w = termpty_line_length(cells, w_max); @@ -761,6 +775,7 @@ termpty_text_save_top(Termpty *ty, Termcell *cells, ssize_t w_max) termpty_save_expand(ts, cells, w); ty->backlog_beacon.screen_y += (ts->w + ty->w - 1) / ty->w - (old_len + ty->w - 1) / ty->w; + verify_beacon(ty, 0); return; } } @@ -783,6 +798,7 @@ add_new_ts: ty->backlog_beacon.screen_y = 0; ty->backlog_beacon.backlog_y = 0; } + verify_beacon(ty, 0); } @@ -807,7 +823,9 @@ termpty_backlog_length(Termpty *ty) if (!ty->backsize) return 0; + verify_beacon(ty, 1); + backlog_y++; while (42) { int nb_lines; @@ -818,9 +836,10 @@ termpty_backlog_length(Termpty *ty) return ty->backlog_beacon.screen_y; nb_lines = (ts->w == 0) ? 1 : (ts->w + ty->w - 1) / ty->w; +screen_y += nb_lines; ty->backlog_beacon.screen_y = screen_y; ty->backlog_beacon.backlog_y = backlog_y; -screen_y += nb_lines; +verify_beacon(ty, 1); backlog_y++; } } @@ -831,14 +850,19 @@ termpty_backscroll_adjust(Termpty *ty, int *scroll) int backlog_y = ty->backlog_beacon.backlog_y; int screen_y = ty->backlog_beacon.screen_y; + verify_beacon(ty, 1); if (!ty->backsize || *scroll <= 0) { *scroll = 0; return; } if (*scroll < screen_y) - return; + { +verify_beacon(ty, 1); +return; + } + backlog_y++; while (42) { int nb_lines; @@ -848,15 +872,20 @@ termpty_backscroll_adjust(Termpty *ty, int *scroll) if (!ts->cells || backlog_y >= (int)ty->backsize) { *scroll = ty->backlog_beacon.screen_y; + verify_beacon(ty, 1); return; } nb_lines = (ts->w == 0) ? 1
[EGIT] [core/enlightenment] master 03/03: More aggressively prune keyboard focus list
derekf pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=60617c82d7734f34409ecf61492cbc57da1b3d01 commit 60617c82d7734f34409ecf61492cbc57da1b3d01 Author: Derek ForemanDate: Wed Nov 30 14:46:36 2016 -0600 More aggressively prune keyboard focus list Even if a client is deleted we still need to get its resources off the keyboard focus list. --- src/bin/e_comp_wl.c | 7 ++- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 7d8ae24..c53c6de 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -679,14 +679,12 @@ static void _e_comp_wl_keyboard_leave(E_Client *ec) { struct wl_resource *res; - struct wl_client *wc; Eina_List *l, *ll; uint32_t serial, *k; double t; if (!eina_list_count(e_comp_wl->kbd.resources)) return; if (!ec->comp_data) return; - if (!ec->comp_data->surface) return; if (ec->comp_data->is_xdg_surface) { @@ -701,16 +699,15 @@ _e_comp_wl_keyboard_leave(E_Client *ec) while (ec->parent) ec = ec->parent; } - wc = wl_resource_get_client(ec->comp_data->surface); serial = wl_display_next_serial(e_comp_wl->wl.disp); t = ecore_time_unix_get(); EINA_LIST_FOREACH_SAFE(e_comp_wl->kbd.focused, l, ll, res) { -if (wl_resource_get_client(res) != wc) continue; wl_array_for_each(k, _comp_wl->kbd.keys) wl_keyboard_send_key(res, serial, t, *k, WL_KEYBOARD_KEY_STATE_RELEASED); -wl_keyboard_send_leave(res, serial, ec->comp_data->surface); +if (ec->comp_data->surface) + wl_keyboard_send_leave(res, serial, ec->comp_data->surface); e_comp_wl->kbd.focused = eina_list_remove_list(e_comp_wl->kbd.focused, l); } } --
[EGIT] [core/enlightenment] master 02/03: Fix crash when exiting an xdg shell application
derekf pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ce34c550e7ad8926ec87b89baf5a219b8856aab7 commit ce34c550e7ad8926ec87b89baf5a219b8856aab7 Author: Derek ForemanDate: Wed Nov 30 14:42:01 2016 -0600 Fix crash when exiting an xdg shell application The focus in timer has been firing for deleted clients, this causes a NULL pointer dereference. Then again, maybe the timer should've been disabled by now... --- src/bin/e_comp_wl.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index e1691ce..7d8ae24 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -600,6 +600,8 @@ _e_comp_wl_evas_cb_focus_in_timer(E_Client *ec) Eina_List *l; double t; + if (e_object_is_del(E_OBJECT(ec))) return EINA_FALSE; + ec->comp_data->on_focus_timer = NULL; if (!e_comp_wl->kbd.focused) return EINA_FALSE; --
[EGIT] [core/enlightenment] master 01/03: Fix keyboard tracking when leaving an xdg shell window
derekf pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=8245c1eb7a38a177ba2ff536949b34c00288e18c commit 8245c1eb7a38a177ba2ff536949b34c00288e18c Author: Derek ForemanDate: Wed Nov 30 14:40:11 2016 -0600 Fix keyboard tracking when leaving an xdg shell window _parent_client_contains_pointer() shouldn't return true if there is no parent client. This could result in leaving stale resources in the keyboard focus list and crash the compositor. --- src/bin/e_comp_wl.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 4fc66f6..e1691ce 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -55,6 +55,8 @@ _parent_client_contains_pointer(E_Client *ec) while (top->parent) top = top->parent; + if (top == ec) return EINA_FALSE; + if (top->mouse.in) return EINA_TRUE; EINA_LIST_FOREACH(top->comp_data->sub.list, l, c) --
[EGIT] [core/efl] master 01/01: eina: remove tests, examples and docs for eina_model
bdilly pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=adb95630ef47abd0ea9e55a8e26f9b731e8fcdb1 commit adb95630ef47abd0ea9e55a8e26f9b731e8fcdb1 Author: Bruno DillyDate: Wed Nov 30 18:37:34 2016 -0200 eina: remove tests, examples and docs for eina_model Summary: Since eina_model was dropped some years ago. Also a few other points where related stuff is just commented out. Reviewers: iscaro, barbieri Reviewed By: barbieri Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4442 --- doc/eina_examples.dox | 18 - src/examples/eina/Makefile.am | 22 - src/examples/eina/eina_model_01.c | 235 - src/examples/eina/eina_model_02.c | 61 -- src/examples/eina/eina_model_03.c | 236 - src/examples/eina/eina_model_04_animal.c | 76 -- src/examples/eina/eina_model_04_animal.h | 26 - src/examples/eina/eina_model_04_child.c| 81 -- src/examples/eina/eina_model_04_child.h| 23 - src/examples/eina/eina_model_04_human.c| 157 src/examples/eina/eina_model_04_human.h| 24 - src/examples/eina/eina_model_04_main.c | 110 --- src/examples/eina/eina_model_04_parrot.c | 95 -- src/examples/eina/eina_model_04_parrot.h | 24 - src/examples/eina/eina_model_04_whistler.c | 59 -- src/examples/eina/eina_model_04_whistler.h | 45 - src/lib/eina/Eina.h|1 - src/lib/eina/eina_main.c |9 - src/lib/eina/eina_value.c | 133 +-- src/tests/eina/eina_suite.c|2 - src/tests/eina/eina_test_model.c | 1289 src/tests/eina/eina_test_value.c | 48 -- 22 files changed, 1 insertion(+), 2773 deletions(-) diff --git a/doc/eina_examples.dox b/doc/eina_examples.dox index 33e83de..ad7fcc6 100644 --- a/doc/eina_examples.dox +++ b/doc/eina_examples.dox @@ -30,15 +30,6 @@ * @li @ref eina_log_02.c * @li @ref eina_log_03.c * @li @ref eina_magic_01.c - * @li @ref eina_model_01.c - * @li @ref eina_model_02.c - * @li @ref eina_model_03.c - * @li @ref eina_model_04_animal.c - * @li @ref eina_model_04_child.c - * @li @ref eina_model_04_human.c - * @li @ref eina_model_04_main.c - * @li @ref eina_model_04_parrot.c - * @li @ref eina_model_04_whistler.c * @li @ref eina_simple_xml_parser_01.c * @li @ref eina_str_01.c * @li @ref eina_strbuf_01.c @@ -87,15 +78,6 @@ * @example eina_log_02.c * @example eina_log_03.c * @example eina_magic_01.c - * @example eina_model_01.c - * @example eina_model_02.c - * @example eina_model_03.c - * @example eina_model_04_animal.c - * @example eina_model_04_child.c - * @example eina_model_04_human.c - * @example eina_model_04_main.c - * @example eina_model_04_parrot.c - * @example eina_model_04_whistler.c * @example eina_simple_xml_parser_01.c * @example eina_str_01.c * @example eina_strbuf_01.c diff --git a/src/examples/eina/Makefile.am b/src/examples/eina/Makefile.am index 56eb277..4ce1258 100644 --- a/src/examples/eina/Makefile.am +++ b/src/examples/eina/Makefile.am @@ -58,10 +58,6 @@ eina_magic_01.c \ eina_xattr_01.c \ eina_xattr_02.c -#eina_model_01.c \ -#eina_model_02.c \ -#eina_model_03.c - EXTRA_PROGRAMS = \ eina_accessor_01 \ eina_array_01 \ @@ -103,24 +99,6 @@ eina_inarray_03 \ eina_xattr_01 \ eina_xattr_02 -#eina_model_01 \ -#eina_model_02 \ -#eina_model_03 \ -#eina_model_04 - -#eina_model_04_SOURCES = \ -#eina_model_04_animal.c \ -#eina_model_04_child.c \ -#eina_model_04_human.c \ -#eina_model_04_main.c \ -#eina_model_04_parrot.c \ -#eina_model_04_whistler.c \ -#eina_model_04_animal.h \ -#eina_model_04_child.h \ -#eina_model_04_human.h \ -#eina_model_04_parrot.h \ -#eina_model_04_whistler.h - EXTRA_PROGRAMS += eina_tiler_01 eina_tiler_01_CPPFLAGS = \ diff --git a/src/examples/eina/eina_model_01.c b/src/examples/eina/eina_model_01.c deleted file mode 100644 index 28895aa..000 --- a/src/examples/eina/eina_model_01.c +++ /dev/null @@ -1,235 +0,0 @@ -/* - * Compile with: - * gcc -o eina_model_01 eina_model_01.c `pkg-config --cflags --libs eina` - */ - -/* - * This example demonstrates the usage of Eina Model by implementing - * Bank Account Class, which is inherited from Base Class; - * and Credit Card Class, which is inherited from Bank Account Class. - * - * Base Class(Eina_Model_Type) --> Bank Account Class --> Credit Card Class - * - * Bank Account Class implements "bank_account_data_set()" and "print()" methods; - * Credit Card Class inherits these two and implements "credit_card_data_set()" - * - * - * Bank Account Class::print() calls for "_bank_account_data_print" - * Credit Card Class ::print() is reloaded with "_credit_card_data_print()" - * which calls for parent function "_bank_account_data_print" - * - */ - - -#include -#include - -/* - * Defining type
[EGIT] [core/efl] master 01/03: efl_input_focus: fix typo and code style
bdilly pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8051fa1c3517fd2dda58869cbf2577061732677b commit 8051fa1c3517fd2dda58869cbf2577061732677b Author: Bruno DillyDate: Mon Nov 28 16:14:39 2016 -0200 efl_input_focus: fix typo and code style --- src/lib/evas/canvas/efl_input_focus.eo | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/evas/canvas/efl_input_focus.eo b/src/lib/evas/canvas/efl_input_focus.eo index 5097fde..6c12e1a 100644 --- a/src/lib/evas/canvas/efl_input_focus.eo +++ b/src/lib/evas/canvas/efl_input_focus.eo @@ -1,9 +1,9 @@ class Efl.Input.Focus(Efl.Object, Efl.Input.Event) { - [[Reprents a focus event. @since 1.19]] + [[Represents a focus event. @since 1.19]] methods { @property object { -[[The focused object]] + [[The focused object]] values { object: Efl.Object; [[The focused object. In case this represents a canvas --
[EGIT] [core/efl] master 03/03: evas: add example for multiseat events
bdilly pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=887be4d4e53712c85d6a4860659faedaa497ed29 commit 887be4d4e53712c85d6a4860659faedaa497ed29 Author: Bruno DillyDate: Tue Nov 29 18:23:49 2016 -0200 evas: add example for multiseat events Also useful to make some tests / debugging. --- src/examples/evas/.gitignore | 1 + src/examples/evas/Makefile.am | 5 + src/examples/evas/evas-multiseat-events.c | 300 ++ 3 files changed, 306 insertions(+) diff --git a/src/examples/evas/.gitignore b/src/examples/evas/.gitignore index 31a9d20..ae8e78e 100644 --- a/src/examples/evas/.gitignore +++ b/src/examples/evas/.gitignore @@ -54,6 +54,7 @@ /evas_map_utils /evas_map_utils_eo /evas_multi_touch +/evas_multiseat_events /evas_object_manipulation /evas_object_manipulation-eo /evas_smart_interface diff --git a/src/examples/evas/Makefile.am b/src/examples/evas/Makefile.am index 7f660f7..c4d155d 100644 --- a/src/examples/evas/Makefile.am +++ b/src/examples/evas/Makefile.am @@ -119,6 +119,11 @@ evas_events_SOURCES = evas-events.c evas_events_LDADD = $(ECORE_EVAS_COMMON_LDADD) evas_events_CPPFLAGS = $(ECORE_EVAS_COMMON_CPPFLAGS) +EXTRA_PROGRAMS += evas_multiseat_events +evas_multiseat_events_SOURCES = evas-multiseat-events.c +evas_multiseat_events_LDADD = $(ECORE_EVAS_COMMON_LDADD) +evas_multiseat_events_CPPFLAGS = $(ECORE_EVAS_COMMON_CPPFLAGS) + EXTRA_PROGRAMS += evas_object_manipulation evas_object_manipulation_SOURCES = evas-object-manipulation.c evas_object_manipulation_LDADD = $(ECORE_EVAS_COMMON_LDADD) diff --git a/src/examples/evas/evas-multiseat-events.c b/src/examples/evas/evas-multiseat-events.c new file mode 100644 index 000..986194b --- /dev/null +++ b/src/examples/evas/evas-multiseat-events.c @@ -0,0 +1,300 @@ +/** + * Evas example illustrating how to handle events with multiseat information: + ** mouse events + ** keyboard events + ** focus events + * + * You'll need at least one engine built for it (excluding the buffer + * one) and the png image loader also built. See stdout/stderr for + * output. + * + * @verbatim + * gcc -o evas_multiseat_events evas-multiseat-events.c `pkg-config --libs --cflags evas ecore ecore-evas` + * @endverbatim + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include + +#define WIDTH (400) +#define HEIGHT (200) + +static void +_canvas_focus_in_cb(void *data EINA_UNUSED, const Efl_Event *event) +{ + Efl_Input_Device *seat; + Efl_Input_Focus *ev; + Evas_Object *focused; + + ev = event->info; + seat = efl_input_device_get(ev); + focused = efl_input_focus_object_get(ev); + + fprintf(stdout, "Object %s was focused by seat %s\n", + evas_object_name_get(focused), + efl_input_device_name_get(seat)); +} + +static void +_hold_cb(void *data EINA_UNUSED, const Efl_Event *event) +{ + Efl_Input_Device *seat; + Efl_Input_Hold *ev; + + ev = event->info; + seat = efl_input_device_seat_get(efl_input_device_get(ev)); + + fprintf(stdout, "Hold %s at object %s from seat %s\n", + efl_input_hold_get(ev) ? "on" : "off", + evas_object_name_get(event->object), + efl_input_device_name_get(seat)); +} + +static void +_focus_cb(void *data EINA_UNUSED, const Efl_Event *event) +{ + Efl_Input_Device *seat; + Efl_Input_Focus *ev; + + ev = event->info; + seat = efl_input_device_get(ev); + + fprintf(stdout, "Focus %s at object %s from seat %s\n", + event->desc == EFL_EVENT_FOCUS_IN ? "in" : "out", + evas_object_name_get(event->object), + efl_input_device_name_get(seat)); +} + +static void +_pointer_in_out_cb(void *data EINA_UNUSED, const Efl_Event *event) +{ + Efl_Input_Pointer *ev; + Efl_Input_Device *seat; + + ev = event->info; + seat = efl_input_device_seat_get(efl_input_device_get(ev)); + + fprintf(stdout, "Pointer %s at object %s from seat %s\n", + event->desc == EFL_EVENT_POINTER_IN ? "in" : "out", + evas_object_name_get(event->object), + efl_input_device_name_get(seat)); +} + +static void +_pointer_down_cb(void *data EINA_UNUSED, const Efl_Event *event) +{ + Efl_Input_Pointer *ev; + Efl_Input_Device *seat; + Efl_Pointer_Flags pointer_flags; + char buf[256]; + + ev = event->info; + seat = efl_input_device_seat_get(efl_input_device_get(ev)); + pointer_flags = efl_input_pointer_button_flags_get(ev); + + if (pointer_flags & EFL_POINTER_FLAGS_TRIPLE_CLICK) + snprintf(buf, sizeof(buf), "Triple click with button %i", + efl_input_pointer_button_get(ev)); + else if (pointer_flags & EFL_POINTER_FLAGS_DOUBLE_CLICK) + snprintf(buf, sizeof(buf), "Double click with button %i", + efl_input_pointer_button_get(ev)); + else + { +snprintf(buf, sizeof(buf), "Pointer button %i down", +
[EGIT] [core/efl] master 02/03: examples/evas: sort gitignore
bdilly pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=639e0eeaf5bd7eaff8b78fe3ed3930de43ede3eb commit 639e0eeaf5bd7eaff8b78fe3ed3930de43ede3eb Author: Bruno DillyDate: Tue Nov 29 19:21:49 2016 -0200 examples/evas: sort gitignore --- src/examples/evas/.gitignore | 88 ++-- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/src/examples/evas/.gitignore b/src/examples/evas/.gitignore index e0621bb..31a9d20 100644 --- a/src/examples/evas/.gitignore +++ b/src/examples/evas/.gitignore @@ -1,50 +1,24 @@ -/evas_box -/evas_buffer_simple -/evas_events -/evas_hints -/evas_images -/evas_images2 -/evas_images3 -/evas_images4 -/evas_images5 -/evas_init_shutdown -/evas_object_manipulation -/evas_object_manipulation-eo -/evas_smart_interface -/evas_smart_object -/evas_stacking -/evas_text -/evas_aspect_hints -/evas_map_utils -/evas_map_utils_eo -/evas_table -/evas_multi_touch +/evas_3d_aabb +/evas_3d_blending +/evas_3d_colorpick /evas_3d_cube /evas_3d_cube2 -/evas_3d_md2 -/evas_3d_pick -/evas_3d_colorpick -/evas_3d_proxy -/evas_cxx_rectangle -/evas_3d_aabb -/evas_3d_frustum -/evas_3d_obj -/evas_3d_ply /evas_3d_cube_rotate -/evas_3d_shooter -/evas_gl -/evas_transparent /evas_3d_eet -/saved_Sonic_EET.eet -/evas_3d_blending -/evas_map_aa -/evas_map_aa_eo +/evas_3d_frustum +/evas_3d_md2 /evas_3d_mmap -/evas_3d_shadows -/evas_3d_parallax_occlusion -/evas_vg_simple -/evas_vg_batman /evas_3d_moon_space +/evas_3d_obj +/evas_3d_parallax_occlusion +/evas_3d_pick +/evas_3d_ply +/evas_3d_proxy +/evas_3d_shadows +/evas_3d_shooter +/evas_aspect_hints +/evas_box +/evas_buffer_simple /evas_canvas3d_aabb /evas_canvas3d_blending /evas_canvas3d_colorpick @@ -52,7 +26,9 @@ /evas_canvas3d_cube2 /evas_canvas3d_cube_rotate /evas_canvas3d_eet +/evas_canvas3d_fog /evas_canvas3d_frustum +/evas_canvas3d_hull /evas_canvas3d_md2 /evas_canvas3d_mmap /evas_canvas3d_obj @@ -62,7 +38,31 @@ /evas_canvas3d_proxy /evas_canvas3d_shadows /evas_canvas3d_shooter -/evas_textblock_obstacles -/evas_canvas3d_hull /evas_canvas3d_static_lod -/evas_canvas3d_fog +/evas_cxx_rectangle +/evas_events +/evas_gl +/evas_hints +/evas_images +/evas_images2 +/evas_images3 +/evas_images4 +/evas_images5 +/evas_init_shutdown +/evas_map_aa +/evas_map_aa_eo +/evas_map_utils +/evas_map_utils_eo +/evas_multi_touch +/evas_object_manipulation +/evas_object_manipulation-eo +/evas_smart_interface +/evas_smart_object +/evas_stacking +/evas_table +/evas_text +/evas_textblock_obstacles +/evas_transparent +/evas_vg_batman +/evas_vg_simple +/saved_Sonic_EET.eet --
[EGIT] [core/enlightenment] master 01/01: handle input detection for wl surface grabs more accurately using stacking
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ca5176e6fa13c22d29629a1d9fc2b788b928643a commit ca5176e6fa13c22d29629a1d9fc2b788b928643a Author: Mike BlumenkrantzDate: Wed Nov 30 12:46:54 2016 -0500 handle input detection for wl surface grabs more accurately using stacking this should more accurately handle cases where mouse movements over grabbed surfaces are intercepted by overlapping windows --- src/bin/e_comp_wl.c | 16 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 801e83b..4fc66f6 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -3434,11 +3434,19 @@ e_comp_wl_client_is_grabbed(const E_Client *ec) static Eina_Bool _check_grab_coords(E_Client *ec, int x, int y) { - if (e_comp_object_coords_inside_input_area(ec->frame, x, y)) return EINA_TRUE; - while (ec->parent) + E_Client *tec, *pec; + + E_CLIENT_REVERSE_FOREACH(tec) { -ec = ec->parent; -if (e_comp_object_coords_inside_input_area(ec->frame, x, y)) return EINA_TRUE; +if (!e_comp_object_coords_inside_input_area(tec->frame, x, y)) continue; +if (tec == ec) return EINA_TRUE; +pec = ec->parent; +while (pec) + { + if (tec == pec) return EINA_TRUE; + pec = pec->parent; + } +return EINA_FALSE; } return EINA_FALSE; } --
[EGIT] [core/enlightenment] master 01/02: use correct coords for determining input region calcs on comp objects
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=a3a239c1d0184f38c44f7cba1a4f2ca0dbfaa1e5 commit a3a239c1d0184f38c44f7cba1a4f2ca0dbfaa1e5 Author: Mike BlumenkrantzDate: Wed Nov 30 12:25:58 2016 -0500 use correct coords for determining input region calcs on comp objects --- 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 b6999ca..2751dbd 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -3162,7 +3162,7 @@ e_comp_object_coords_inside_input_area(Evas_Object *obj, int x, int y) API_ENTRY EINA_FALSE; if (cw->input_obj) - return E_INSIDE(x, y, cw->input_rect.x, cw->input_rect.y, cw->input_rect.w, cw->input_rect.h); + return E_INSIDE(x, y, cw->x + cw->input_rect.x, cw->y + cw->input_rect.y, cw->input_rect.w, cw->input_rect.h); return E_INSIDE(x, y, cw->ec->x, cw->ec->y, cw->ec->w, cw->ec->h); } --
[EGIT] [core/enlightenment] master 02/02: move the comp canvas cursor object during wl surface grabs
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=f83045dc62a5bc8039e63f08817db0740d792e4b commit f83045dc62a5bc8039e63f08817db0740d792e4b Author: Mike BlumenkrantzDate: Wed Nov 30 12:31:04 2016 -0500 move the comp canvas cursor object during wl surface grabs the struct member is not guaranteed to be the visible object, so get the ee cursor and move that --- 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 1d0cba7..801e83b 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -3447,6 +3447,8 @@ E_API Eina_Bool e_comp_wl_grab_client_mouse_move(const Ecore_Event_Mouse_Move *ev) { E_Client *ec; + Evas_Object *o; + if (e_comp->comp_type != E_PIXMAP_TYPE_WL) return ECORE_CALLBACK_RENEW; ec = e_client_focused_get(); if (!ec) return ECORE_CALLBACK_RENEW; @@ -3455,7 +3457,8 @@ e_comp_wl_grab_client_mouse_move(const Ecore_Event_Mouse_Move *ev) /* reject mouse moves from outside the popup */ if (_check_grab_coords(ec, ev->x, ev->y)) return ECORE_CALLBACK_RENEW; /* manually move the pointer since we're about to block the event globally */ - evas_object_move(e_comp->pointer->o_ptr, ev->x, ev->y); + ecore_evas_cursor_get(e_comp->ee, , NULL, NULL, NULL); + evas_object_move(o, ev->x, ev->y); return ECORE_CALLBACK_DONE; } --
[EGIT] [core/efl] master 01/01: ecore-wl2: Add warning if a wl_surface_frame callback failes to get created
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=80df180157bc38547c3f696a16f835d4976230d5 commit 80df180157bc38547c3f696a16f835d4976230d5 Author: Chris MichaelDate: Wed Nov 30 12:12:38 2016 -0500 ecore-wl2: Add warning if a wl_surface_frame callback failes to get created There could be situations where wl_surface_frame fails to create a callback. In those cases, we should not be trying to add a wl_callback listener for a non-existant callback. Signed-off-by: Chris Michael --- src/lib/ecore_wl2/ecore_wl2_input.c | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lib/ecore_wl2/ecore_wl2_input.c b/src/lib/ecore_wl2/ecore_wl2_input.c index d272dc4..c6a5ae8 100644 --- a/src/lib/ecore_wl2/ecore_wl2_input.c +++ b/src/lib/ecore_wl2/ecore_wl2_input.c @@ -756,8 +756,11 @@ _pointer_cb_frame(void *data, struct wl_callback *callback, unsigned int timesta if ((!input->cursor.frame_cb) && (input->cursor.surface)) { input->cursor.frame_cb = wl_surface_frame(input->cursor.surface); -wl_callback_add_listener(input->cursor.frame_cb, - &_pointer_surface_listener, input); +if (input->cursor.frame_cb) + wl_callback_add_listener(input->cursor.frame_cb, + &_pointer_surface_listener, input); +else + WRN("Failed to create surface frame callback for cursor surface"); } } --
[EGIT] [core/enlightenment] master 01/01: Fix crash on xdg shell unbind
derekf pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=3313f0f26dfcb90a91dbd6dc4a16a659f9372a7d commit 3313f0f26dfcb90a91dbd6dc4a16a659f9372a7d Author: Derek ForemanDate: Wed Nov 30 10:19:40 2016 -0600 Fix crash on xdg shell unbind Running weston-simple-dmabuf-intel and killing it could crash E in xdg_shell_unbind. --- src/modules/wl_desktop_shell/xdg6.c | 13 - 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/modules/wl_desktop_shell/xdg6.c b/src/modules/wl_desktop_shell/xdg6.c index c6926e9..b323385 100644 --- a/src/modules/wl_desktop_shell/xdg6.c +++ b/src/modules/wl_desktop_shell/xdg6.c @@ -1336,11 +1336,14 @@ _e_xdg_shell_cb_unbind(struct wl_resource *resource) E_Client *ec = wl_resource_get_user_data(res); E_Shell_Data *shd; -if (ec->comp_data->shell.surface) - e_shell_surface_cb_destroy(ec->comp_data->shell.surface); -shd = ec->comp_data->shell.data; -if (shd) - e_shell_surface_cb_destroy(shd->surface); +if (!e_object_is_del(E_OBJECT(ec))) + { + if (ec->comp_data->shell.surface) + e_shell_surface_cb_destroy(ec->comp_data->shell.surface); + shd = ec->comp_data->shell.data; + if (shd) + e_shell_surface_cb_destroy(shd->surface); + } v->surfaces = eina_list_remove_list(v->surfaces, l); } --
[EGIT] [core/enlightenment] master 01/01: use more accurate determination for applying xdg-shell (un)maximize operations
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=f58eb2db7b5ec9c8b7ab9ad09d3ab49f7f42b54b commit f58eb2db7b5ec9c8b7ab9ad09d3ab49f7f42b54b Author: Mike BlumenkrantzDate: Wed Nov 30 11:15:42 2016 -0500 use more accurate determination for applying xdg-shell (un)maximize operations fixes maximizing again --- src/modules/wl_desktop_shell/xdg5.c | 8 +--- src/modules/wl_desktop_shell/xdg6.c | 8 +--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/modules/wl_desktop_shell/xdg5.c b/src/modules/wl_desktop_shell/xdg5.c index 4fd0313..a2191f3 100644 --- a/src/modules/wl_desktop_shell/xdg5.c +++ b/src/modules/wl_desktop_shell/xdg5.c @@ -83,7 +83,7 @@ _xdg_shell_surface_send_configure(struct wl_resource *resource, Eina_Bool fullsc { if (maximized) pending |= STATE_MAXIMIZED; -else if (ec->maximized) +else if (ec->maximized || ec->comp_data->unmax) pending |= STATE_UNMAXIMIZED; } shd->maximized = maximized; @@ -349,13 +349,15 @@ _e_xdg_shell_surface_cb_ack_configure(struct wl_client *client EINA_UNUSED, stru { ec->comp_data->shell.set.maximize = 1; ec->comp_data->shell.set.unmaximize = 0; - ec->comp_data->max = (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_BOTH; + if (!ec->comp_data->max) + ec->comp_data->max = (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_BOTH; } if (ps->state & STATE_UNMAXIMIZED) { ec->comp_data->shell.set.unmaximize = 1; ec->comp_data->shell.set.maximize = 0; - ec->comp_data->unmax = (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_BOTH; + if (!ec->comp_data->unmax) + ec->comp_data->unmax = (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_BOTH; } shd->pending = eina_list_remove_list(shd->pending, l); free(ps); diff --git a/src/modules/wl_desktop_shell/xdg6.c b/src/modules/wl_desktop_shell/xdg6.c index f39f928..c6926e9 100644 --- a/src/modules/wl_desktop_shell/xdg6.c +++ b/src/modules/wl_desktop_shell/xdg6.c @@ -334,7 +334,7 @@ _xdg_shell_surface_send_configure(struct wl_resource *resource, Eina_Bool fullsc { if (maximized) pending |= STATE_MAXIMIZED; -else if (ec->maximized) +else if (ec->maximized || ec->comp_data->unmax) pending |= STATE_UNMAXIMIZED; } shd->maximized = maximized; @@ -479,13 +479,15 @@ _e_xdg_surface_cb_ack_configure(struct wl_client *client EINA_UNUSED, struct wl_ { ec->comp_data->shell.set.maximize = 1; ec->comp_data->shell.set.unmaximize = 0; - ec->comp_data->max = (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_BOTH; + if (!ec->comp_data->max) + ec->comp_data->max = (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_BOTH; } if (ps->state & STATE_UNMAXIMIZED) { ec->comp_data->shell.set.unmaximize = 1; ec->comp_data->shell.set.maximize = 0; - ec->comp_data->unmax = (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_BOTH; + if (!ec->comp_data->unmax) + ec->comp_data->unmax = (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_BOTH; } shd->pending = eina_list_remove_list(shd->pending, l); free(ps); --
Re: [E-devel] Elm Main Menu
I still see I here. Just updated efl and edi. It's not on every keypress but just using the cursor keys particularly around beeline characters seems to trigger it :( No idea where to start... Andy On Wed, 30 Nov 2016 at 02:20, Jean-Philippe Andréwrote: > On 30 November 2016 at 13:55, Jean-Philippe André > wrote: > > Hi Andy, > > On 30 November 2016 at 11:35, Andrew Williams > wrote: > > Hi, > > The mainmenu seems to work fine. > But since updating my edi window seems to shrink vertically after certain > key presses - any chance it's related? > > > Omg indeed. For me it's every key press and even just giving focus to EDI. > > > Not pointing fingers as I've pushed plenty in today but I didn't see it > until I pulled from origin I don't think. > > > You know it's got to be the frenchie's fault. And probably related to the > main menu, too. > I'll have a look at what's going on. > > > And it's magically gone before I could dive deep into this issue. > Please let me know if you still experience it. > > > > :) > > > > Andy > > On Tue, 29 Nov 2016 at 02:05, Jean-Philippe André > wrote: > > Hey Andy, > > I've reverted my revert and tried to fix my original patch. > Let me know if it works fine for you! > > Thanks, > > > On 29 November 2016 at 02:02, Andrew Williams > wrote: > > Great thanks, I love having my tab bar back :) > > Have a great day! > Andy > > On Mon, 28 Nov 2016 at 00:57, Jean-Philippe André > wrote: > > Hi, > > On 28 November 2016 at 11:44, Carsten Haitzler > wrote: > > On Sun, 27 Nov 2016 15:58:42 + Andrew Williams > said: > > > Yup - that's what I see - right in elementary_test. > > > > Not started bisecting as I've not been coding for a few days. Might get a > > chance today. > > But of course the efl build time is quite an issue for this :-p > > it's very likely to do with jpeg's changes tot he elm win/efl ui win and > theme > and csd etc. > > > Yes, of course it was related. After playing a bit with the menu, trying > to place it inside the framespace, I encountered many sizing issues > (elm_menu and efl_ui_win both use custom layout functions). So I reverted > some of my changes and the menu bar is back inside win.edc. For now. > Hopefully I can fix the sizing issues as all the conformant features also > need to move inside the window. > > > > > Andrew > > On Sun, 27 Nov 2016 at 02:57, Carsten Haitzler > wrote: > > > > > On Sun, 27 Nov 2016 07:44:25 +0200 Daniel Zaoui < > daniel.za...@samsung.com> > > > said: > > > > > > > Hi Andrew, > > > > > > > > Do you see any issues in elementary_test? Cause seems ok there. Did > you > > > try > > > > to bisect? > > > > > > > > Exactness doesn't cover main_menu. It should but the scenario has > never > > > been > > > > recorded. > > > > > > > > JackDanielZ > > > > > > elm test does show the b0rk. resize the main menu test vertically. > notice > > > the > > > label will slide underneath the main menu. this is the b0rk. :) > > > > > > > On Sat, 26 Nov 2016 15:20:13 + > > > > Andrew Williams wrote: > > > > > > > > > Hi all, > > > > > > > > > > In the last week (or two) the elm main menu has stopped reserving > its > > > > > own space and has started overlapping content. Does anyone know why > > > > > this might be? > > > > > Have the UI tests stopped being run or did the exactness not cover > > > > > mainmenu layout? (Again, not sure where to look) > > > > > > > > > > Thanks for any tips, > > > > > Andy > > > > > > > > > -- > > > > > ___ > > > > > 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 > > > > > > > > > -- > - 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 > > > > > -- > Jean-Philippe André > > > > > -- >
Re: [E-devel] [EGIT] [core/efl] master 01/02: Menu, Item Interface: Common interface for menu, toolbar and ctxpopup
Hello. On 30/11/16 14:11, Amitesh Singh wrote: > On Nov 30, 2016 15:19, "Stefan Schmidt"wrote: >> >> Hello. >> >> On 30/11/16 10:22, Amitesh Singh wrote: >>> jpeg pushed a commit to branch master. >>> >>> > http://git.enlightenment.org/core/efl.git/commit/?id=a58e2e1a790732428fa09d479fec63d433931f06 >>> >>> commit a58e2e1a790732428fa09d479fec63d433931f06 >>> Author: Amitesh Singh >>> Date: Wed Nov 30 16:18:46 2016 +0900 >>> >>> Menu,Item Interface: Common interface for menu, toolbar and ctxpopup >>> >>> Summary: >>> efl_ui_menu interface provides common functions of menu, toolbar > and ctxpopup. >>> efl_ui_item interface provides common functions of menu_item, > toolbar_item and ctxpopup_item. >>> Also implemented some missing functions like selected_item set/get > in ctxpopup. >>> efl_ui_item interface should be used for other widget items as well. >>> >>> Test Plan: elementary_test >>> >>> Reviewers: jpeg, felipealmeida, raster, SanghyeonLee, cedric, > yashu21985 >>> >>> Subscribers: bu5hm4n >>> >>> Differential Revision: https://phab.enlightenment.org/D3897 >>> --- >>> src/Makefile_Efl.am | 2 + >>> src/bin/elementary/test_ctxpopup.c | 9 ++- >>> src/lib/efl/Efl.h| 2 + >>> src/lib/efl/interfaces/efl_interfaces_main.c | 2 + >>> src/lib/efl/interfaces/efl_ui_item.eo| 49 >>> src/lib/efl/interfaces/efl_ui_menu.eo| 29 +++ >>> src/lib/elementary/elc_ctxpopup.c| 109 > +-- >>> src/lib/elementary/elc_ctxpopup_legacy.h | 77 +++ >>> src/lib/elementary/elm_ctxpopup.eo | 58 ++ >>> src/lib/elementary/elm_ctxpopup_item.eo | 33 +--- >>> src/lib/elementary/elm_dbus_menu.c | 4 +- >>> src/lib/elementary/elm_menu.c| 78 --- >>> src/lib/elementary/elm_menu.eo | 31 ++-- >>> src/lib/elementary/elm_menu_item.eo | 25 ++ >>> src/lib/elementary/elm_menu_legacy.h | 57 ++ >>> src/lib/elementary/elm_toolbar.c | 64 ++-- >>> src/lib/elementary/elm_toolbar.eo| 35 ++--- >>> src/lib/elementary/elm_toolbar_item.eo | 50 +--- >>> src/lib/elementary/elm_toolbar_legacy.h | 86 > + >>> src/lib/elementary/elm_widget_ctxpopup.h | 2 + >>> 20 files changed, 570 insertions(+), 232 deletions(-) >> >> This commit brought two new warnings into the build. Both look serious >> to be taken into account. :) >> >> lib/elementary/elm_dbus_menu.c: In function ‘_root_layout_build’: >> lib/elementary/elm_dbus_menu.c:364:13: warning: assignment from >> incompatible pointer type [-Wincompatible-pointer-types] >> ret = efl_ui_menu_items_get(dbus_menu->menu); >> >> >> >> lib/elementary/elm_toolbar.c: In function >> ‘_elm_toolbar_efl_ui_menu_items_get’: >> lib/elementary/elm_toolbar.c:3257:34: warning: passing argument 1 of >> ‘eina_list_iterator_new’ from incompatible pointer type >> [-Wincompatible-pointer-types] >> return eina_list_iterator_new(sd->items); >>^ >> In file included from ../src/lib/eina/Eina.h:223:0, >> from ../src/lib/elementary/Elementary.h:57, >> from lib/elementary/elm_toolbar.c:10: >> ../src/lib/eina/eina_list.h:1302:56: note: expected ‘const Eina_List * >> {aka const struct _Eina_List *}’ but argument is of type ‘Eina_Inlist * >> {aka struct _Eina_Inlist *}’ >> EAPI Eina_Iterator*eina_list_iterator_new(const Eina_List >> *list) EINA_MALLOC EINA_WARN_UNUSED_RESULT; >> > Thanks stefan. Fixed it. These warnings were serious problems. Thanks for fixing. > I should not cook code on an empty stomach. :/ Always have a small appetizer before crunching down some heavy code bites :) 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: Menu, Item Interface: Common interface for menu, toolbar and ctxpopup
On Nov 30, 2016 15:19, "Stefan Schmidt"wrote: > > Hello. > > On 30/11/16 10:22, Amitesh Singh wrote: > > jpeg pushed a commit to branch master. > > > > http://git.enlightenment.org/core/efl.git/commit/?id=a58e2e1a790732428fa09d479fec63d433931f06 > > > > commit a58e2e1a790732428fa09d479fec63d433931f06 > > Author: Amitesh Singh > > Date: Wed Nov 30 16:18:46 2016 +0900 > > > > Menu,Item Interface: Common interface for menu, toolbar and ctxpopup > > > > Summary: > > efl_ui_menu interface provides common functions of menu, toolbar and ctxpopup. > > efl_ui_item interface provides common functions of menu_item, toolbar_item and ctxpopup_item. > > Also implemented some missing functions like selected_item set/get in ctxpopup. > > efl_ui_item interface should be used for other widget items as well. > > > > Test Plan: elementary_test > > > > Reviewers: jpeg, felipealmeida, raster, SanghyeonLee, cedric, yashu21985 > > > > Subscribers: bu5hm4n > > > > Differential Revision: https://phab.enlightenment.org/D3897 > > --- > > src/Makefile_Efl.am | 2 + > > src/bin/elementary/test_ctxpopup.c | 9 ++- > > src/lib/efl/Efl.h| 2 + > > src/lib/efl/interfaces/efl_interfaces_main.c | 2 + > > src/lib/efl/interfaces/efl_ui_item.eo| 49 > > src/lib/efl/interfaces/efl_ui_menu.eo| 29 +++ > > src/lib/elementary/elc_ctxpopup.c| 109 +-- > > src/lib/elementary/elc_ctxpopup_legacy.h | 77 +++ > > src/lib/elementary/elm_ctxpopup.eo | 58 ++ > > src/lib/elementary/elm_ctxpopup_item.eo | 33 +--- > > src/lib/elementary/elm_dbus_menu.c | 4 +- > > src/lib/elementary/elm_menu.c| 78 --- > > src/lib/elementary/elm_menu.eo | 31 ++-- > > src/lib/elementary/elm_menu_item.eo | 25 ++ > > src/lib/elementary/elm_menu_legacy.h | 57 ++ > > src/lib/elementary/elm_toolbar.c | 64 ++-- > > src/lib/elementary/elm_toolbar.eo| 35 ++--- > > src/lib/elementary/elm_toolbar_item.eo | 50 +--- > > src/lib/elementary/elm_toolbar_legacy.h | 86 + > > src/lib/elementary/elm_widget_ctxpopup.h | 2 + > > 20 files changed, 570 insertions(+), 232 deletions(-) > > This commit brought two new warnings into the build. Both look serious > to be taken into account. :) > > lib/elementary/elm_dbus_menu.c: In function ‘_root_layout_build’: > lib/elementary/elm_dbus_menu.c:364:13: warning: assignment from > incompatible pointer type [-Wincompatible-pointer-types] > ret = efl_ui_menu_items_get(dbus_menu->menu); > > > > lib/elementary/elm_toolbar.c: In function > ‘_elm_toolbar_efl_ui_menu_items_get’: > lib/elementary/elm_toolbar.c:3257:34: warning: passing argument 1 of > ‘eina_list_iterator_new’ from incompatible pointer type > [-Wincompatible-pointer-types] > return eina_list_iterator_new(sd->items); >^ > In file included from ../src/lib/eina/Eina.h:223:0, > from ../src/lib/elementary/Elementary.h:57, > from lib/elementary/elm_toolbar.c:10: > ../src/lib/eina/eina_list.h:1302:56: note: expected ‘const Eina_List * > {aka const struct _Eina_List *}’ but argument is of type ‘Eina_Inlist * > {aka struct _Eina_Inlist *}’ > EAPI Eina_Iterator*eina_list_iterator_new(const Eina_List > *list) EINA_MALLOC EINA_WARN_UNUSED_RESULT; > Thanks stefan. Fixed it. These warnings were serious problems. I should not cook code on an empty stomach. :/ > 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
[EGIT] [core/efl] master 01/01: elm: fix compliation warnings in dbus menu & toolbar
ami pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=1f3f66b662a88ca38458a64200d9586830525389 commit 1f3f66b662a88ca38458a64200d9586830525389 Author: Amitesh SinghDate: Wed Nov 30 18:33:59 2016 +0530 elm: fix compliation warnings in dbus menu & toolbar These warnings were serious problems. Thanks to stefan for reporting. --- src/lib/elementary/elm_dbus_menu.c | 9 - src/lib/elementary/elm_toolbar.c | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/lib/elementary/elm_dbus_menu.c b/src/lib/elementary/elm_dbus_menu.c index d649a24..9610a0b 100644 --- a/src/lib/elementary/elm_dbus_menu.c +++ b/src/lib/elementary/elm_dbus_menu.c @@ -333,9 +333,8 @@ _root_layout_build(Elm_DBus_Menu *dbus_menu, Eina_List *property_list, { char *property; Eldbus_Message_Iter *layout, *array, *pair, *variant; - const Eina_List *ret = NULL; - Eina_List *items; Eina_List *l; + Eina_Iterator *it = NULL; Elm_Object_Item *obj_item; layout = eldbus_message_iter_container_new(iter, 'r', NULL); @@ -361,9 +360,8 @@ _root_layout_build(Elm_DBus_Menu *dbus_menu, Eina_List *property_list, if (recursion_depth > 0) { -ret = efl_ui_menu_items_get(dbus_menu->menu); -items = (Eina_List *)ret; -EINA_LIST_FOREACH (items, l, obj_item) +it = efl_ui_menu_items_get(dbus_menu->menu); +EINA_ITERATOR_FOREACH (it, obj_item) { variant = eldbus_message_iter_container_new(array, 'v', "(ia{sv}av)"); @@ -372,6 +370,7 @@ _root_layout_build(Elm_DBus_Menu *dbus_menu, Eina_List *property_list, recursion_depth - 1, variant); eldbus_message_iter_container_close(array, variant); } +eina_iterator_free(it); } eldbus_message_iter_container_close(layout, array); diff --git a/src/lib/elementary/elm_toolbar.c b/src/lib/elementary/elm_toolbar.c index 9052c29..f88998c 100644 --- a/src/lib/elementary/elm_toolbar.c +++ b/src/lib/elementary/elm_toolbar.c @@ -3254,7 +3254,7 @@ _elm_toolbar_efl_ui_menu_last_item_get(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd EOLIAN static Eina_Iterator* _elm_toolbar_efl_ui_menu_items_get(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd) { - return eina_list_iterator_new(sd->items); + return eina_inlist_iterator_new(sd->items); } EOLIAN static Elm_Object_Item * --
[EGIT] [apps/eruler] master 01/01: main: Fix crash on shutdown
jpeg pushed a commit to branch master. http://git.enlightenment.org/apps/eruler.git/commit/?id=ef5c03207c0985a3b42f96d77fcbef995ea86298 commit ef5c03207c0985a3b42f96d77fcbef995ea86298 Author: Jean-Philippe AndreDate: Wed Nov 30 21:18:02 2016 +0900 main: Fix crash on shutdown Don't let _event_del access an already freed zone. --- src/bin/main.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/bin/main.c b/src/bin/main.c index 7df9f04..5ccad6a 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -2393,6 +2393,9 @@ zone_del(Zone *zone) * their lists. */ + evas_object_event_callback_del_full(zone->event, EVAS_CALLBACK_DEL, _event_del, zone); + + free(zone); zones = eina_list_remove(zones, zone); } --
Re: [E-devel] [GIT] : ecore_file: use win api for delete folder
I check this commit and you are right, this is useless patch. Revert. Thank you, Vincent On 11/24/16 10:18, Vincent Torri wrote: > hello > > about commit 5e25b8037ca8858412627d76b6fe72e9c7279021 > > what is the problem with rmdir ? rm does exactly the same thing, > except that RemoveDirectory() will not remove the directory until the > last handle to the directory is closed > > if there is a problem with rmdir, check errno > > Vincent > > -- > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Viacheslav Reutskiy (rimmed) -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: Revert "ecore_file: use win api for delete folder"
rimmed pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=67d228230a2f20ec78b4aa66a22a4827fe1931fb commit 67d228230a2f20ec78b4aa66a22a4827fe1931fb Author: Vyacheslav ReutskiyDate: Wed Nov 30 14:02:45 2016 +0200 Revert "ecore_file: use win api for delete folder" It was mistake, rmdir work correct, problem was fixed in commit 56c202614b73f0e4c34d7a5cd070fe2b24d9217f This reverts commit 5e25b8037ca8858412627d76b6fe72e9c7279021. --- src/lib/ecore_file/ecore_file.c | 4 1 file changed, 4 deletions(-) diff --git a/src/lib/ecore_file/ecore_file.c b/src/lib/ecore_file/ecore_file.c index f2b5de1..dd53db1 100644 --- a/src/lib/ecore_file/ecore_file.c +++ b/src/lib/ecore_file/ecore_file.c @@ -296,11 +296,7 @@ ecore_file_mksubdirs(const char *base, const char **subdirs) EAPI Eina_Bool ecore_file_rmdir(const char *dir) { -#ifdef _WIN32 - if (RemoveDirectory(dir) < 0) return EINA_FALSE; -#else if (rmdir(dir) < 0) return EINA_FALSE; -#endif /* _WIN32 */ return EINA_TRUE; } --
[EGIT] [core/enlightenment] annotated tag v0.21.4 created (now 4264fc2)
This is an automated email from the git hooks/post-receive script. simotek pushed a change to annotated tag v0.21.4 in repository core/enlightenment. at 4264fc2 (tag) tagging 43b92583766f57830833b52677fb1644afd59382 (commit) replaces v0.21.3 tagged by Simon Lees on Wed Nov 30 21:02:06 2016 +1030 - Log - 0.21.4 Release Al Poole (2): efm - fix popup if file is a fifo Add temperature support for DragonFly BSD. Alexander Pyhalov (1): actually check if PIE is supported for SUID Carsten Haitzler (3): e fm - fix popup to not crash by referring to possibly deleted data cpufreq - move cpuinfo polling into thread to not block mainloop ever wizard - do not set scale to 1.2 forcibly. use dpi as the def prof says Christopher Michael (2): check if a client is internal or not before deleting fix missing definition of DRM_FORMAT_XRGB Derek Foreman (6): Block session recovery for internal windows Remove EVAS_CALLBACK_HIDE on shelf when freeing Increase area of tilers for regions Fix massive wayland input region brokenness Fix wayland opaque regions Stop passing dimensions to _e_comp_wl_surface_state_init Joshua McBeth (1): add dbus message 'org.enlightenment.wm.Window.SendToDesktop' Marcel Hollerbach (5): wizard: make page 065 translatable mixer: we changed that name when we merged the mixer in update german translation The potfile has changed, mixer: do not set back the value from emix once the drag is finished Massimo Maiurana (1): Updating italian translation Michaël Bouchaud (yoz) (2): mixer: fix the volume conversion calc into pulseaudio backend Revert "mixer: lock up the slider for the case a drag is in progress" Mike Blumenkrantz (80): enforce bryce resizing when orientation changes add EINTERN function for renaming gadget sites fix bryce check for shelf existence on orientation/anchor to break when expected add zone number to bryce names do not check for shelf/bryce existence in opposing anchorages during bryce wizard further improve bryce portability across zones also do full bryce rename when moving between zones add new flag for zone edge objects to allow shape cutting while repeating events force bryce visibility during editor activity add gadget_site_(un)locked smart callbacks for forcing gadget site visibility call gadget_popup smart callback when configuring gadgets handle gadget_popup smart callback on gadget's display object set ON_HOLD flag when triggering gadget mouse buttion actions remove unused attribute from used param trigger bryce menus from right click if event has not been consumed fix bryce upgrade path from 0 -> 2 re:naming set ON_HOLD flag more accurately when activating gadget actions avoid extra recalc when resizing a bryce on its oriented axis add gadget site sizing workaround to avoid elm box sizing desync rename bryces when changing anchors loop bryce autosize recalc when gadget site has not yet calculated its size only find the session recovery remember if ec->remember is not it apply non-session recovery remember to client when creating recovery remember correctly handle applying of non-SR remember in remember config reject successive zone_geometry_dirty() calls trigger zone geometry events when updating zone/desk obstacles force min size on wireless popup during show add workarounds for ctxpopup geometry for use in input shape tiling force recalc on bryce scroller when doing recalc on gadget site handle no-orient gadget visibility based on site->events visibility force gadget site recalc on gadget object creation to ensure sizing copy gadget position from pointer gadget -> drop gadget when executing drop calc new gadget size based on ratio of size:target site size allow client frame changes when switching from frame -> no frame optimize out re-applying of borderless client theme block remembers of e_sys windows use eina_streq for string comparison in e_zone_for_id_get() fix use after free when renaming a bryce clamp bryce position to its parent zone avoid potential divide by zero during bryce startup do not modify bryce zone/name during startup center desktop gadget editor popups upon the zone they have activated attempt to handle non-orient gadget resizes based on anchor corners allow scaling gadgets using wheel events during initial placement attempt to recalc gadgets which overflow their container do not apply efx anchoring to move effects if a resize effect is not active do not return early from _bryce_position() add bool return for
[EGIT] [core/enlightenment] enlightenment-0.21 01/02: 21.4 Release
simotek pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=39e6605bf1d1f94c9b376e40a30dde3cc77aa95f commit 39e6605bf1d1f94c9b376e40a30dde3cc77aa95f Author: Simon LeesDate: Tue Nov 29 11:29:54 2016 +1030 21.4 Release --- configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 3398aea..a3a2ec6 100644 --- a/configure.ac +++ b/configure.ac @@ -2,11 +2,11 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [0]) m4_define([v_min], [21]) -m4_define([v_mic], [3]) +m4_define([v_mic], [4]) m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n']))dnl ##-- When released, remove the dnl on the below line m4_undefine([v_rev]) -m4_define([relname], [0.21.3]) +m4_define([relname], [0.21.4]) ##-- When doing snapshots - change soname. remove dnl on below line m4_define([relname], [ver-0.21]) dnl m4_define([v_rel], [-release relname]) --
[EGIT] [core/enlightenment] enlightenment-0.21 02/02: 21.4 NEWS Updates
simotek pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=43b92583766f57830833b52677fb1644afd59382 commit 43b92583766f57830833b52677fb1644afd59382 Author: Simon LeesDate: Tue Nov 29 11:39:15 2016 +1030 21.4 NEWS Updates --- NEWS | 135 +++ 1 file changed, 135 insertions(+) diff --git a/NEWS b/NEWS index 4f983f7..9145f6b 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,138 @@ +Release 0.21.4: +- +Al Poole (1): + efm - fix popup if file is a fifo + +Alexander Pyhalov (1): + actually check if PIE is supported for SUID + +Carsten Haitzler (3): + e fm - fix popup to not crash by referring to possibly deleted data + cpufreq - move cpuinfo polling into thread to not block mainloop ever + wizard - do not set scale to 1.2 forcibly. use dpi as the def prof says + +Christopher Michael (2): + check if a client is internal or not before deleting + fix missing definition of DRM_FORMAT_XRGB + +Derek Foreman (6): + Block session recovery for internal windows + Remove EVAS_CALLBACK_HIDE on shelf when freeing + Increase area of tilers for regions + Fix massive wayland input region brokenness + Fix wayland opaque regions + Stop passing dimensions to _e_comp_wl_surface_state_init + +Joshua McBeth (1): + add dbus message 'org.enlightenment.wm.Window.SendToDesktop' + +Marcel Hollerbach (5): + wizard: make page 065 translatable + mixer: we changed that name when we merged the mixer in + update german translation + The potfile has changed, + mixer: do not set back the value from emix once the drag is finished + +Massimo Maiurana (1): + Updating italian translation + +Michaël Bouchaud (yoz) (2): + mixer: fix the volume conversion calc into pulseaudio backend + Revert "mixer: lock up the slider for the case a drag is in progress" + +Mike Blumenkrantz (80): + enforce bryce resizing when orientation changes + add EINTERN function for renaming gadget sites + fix bryce check for shelf existence on orientation/anchor to break when expected + add zone number to bryce names + do not check for shelf/bryce existence in opposing anchorages during bryce wizard + further improve bryce portability across zones + also do full bryce rename when moving between zones + add new flag for zone edge objects to allow shape cutting while repeating events + force bryce visibility during editor activity + add gadget_site_(un)locked smart callbacks for forcing gadget site visibility + call gadget_popup smart callback when configuring gadgets + handle gadget_popup smart callback on gadget's display object + set ON_HOLD flag when triggering gadget mouse buttion actions + remove unused attribute from used param + trigger bryce menus from right click if event has not been consumed + fix bryce upgrade path from 0 -> 2 re:naming + set ON_HOLD flag more accurately when activating gadget actions + avoid extra recalc when resizing a bryce on its oriented axis + add gadget site sizing workaround to avoid elm box sizing desync + rename bryces when changing anchors + loop bryce autosize recalc when gadget site has not yet calculated its size + only find the session recovery remember if ec->remember is not it + apply non-session recovery remember to client when creating recovery remember + correctly handle applying of non-SR remember in remember config + reject successive zone_geometry_dirty() calls + trigger zone geometry events when updating zone/desk obstacles + force min size on wireless popup during show + add workarounds for ctxpopup geometry for use in input shape tiling + force recalc on bryce scroller when doing recalc on gadget site + handle no-orient gadget visibility based on site->events visibility + force gadget site recalc on gadget object creation to ensure sizing + copy gadget position from pointer gadget -> drop gadget when executing drop + calc new gadget size based on ratio of size:target site size + allow client frame changes when switching from frame -> no frame + optimize out re-applying of borderless client theme + block remembers of e_sys windows + use eina_streq for string comparison in e_zone_for_id_get() + fix use after free when renaming a bryce + clamp bryce position to its parent zone + avoid potential divide by zero during bryce startup + do not modify bryce zone/name during startup + center desktop gadget editor popups upon the zone they have activated + attempt to handle non-orient gadget resizes based on anchor corners + allow scaling gadgets using wheel events during initial placement + attempt to recalc gadgets which overflow their
[EGIT] [website/www-content] master 01/01: Wiki page e-0.21.4-release changed with summary [created] by Simon
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=c78b389a0ae5486964012cb4a4f77f3347e8ff35 commit c78b389a0ae5486964012cb4a4f77f3347e8ff35 Author: SimonDate: Wed Nov 30 03:10:32 2016 -0800 Wiki page e-0.21.4-release changed with summary [created] by Simon --- pages/news/e-0.21.4-release.txt | 176 1 file changed, 176 insertions(+) diff --git a/pages/news/e-0.21.4-release.txt b/pages/news/e-0.21.4-release.txt new file mode 100644 index 000..62b6aa9 --- /dev/null +++ b/pages/news/e-0.21.4-release.txt @@ -0,0 +1,176 @@ +Enlightenment DR 0.21.4 Release + * //2016-11-30 - by Simon Lees// + +This is another bugfix and stability release for the Enlightenment 21 Release series. It addresses a number of issues as listed below. While there has been many changes since the last release most changes are related to bryce and wayland as such they won't affect most users + +== Tickets Addressed == + * https://phab.enlightenment.org/T2879 + * https://phab.enlightenment.org/T4358 + * https://phab.enlightenment.org/T4479 + * https://phab.enlightenment.org/T4512 + * https://phab.enlightenment.org/T4522 + * https://phab.enlightenment.org/T4687 + * https://phab.enlightenment.org/T4716 + * https://phab.enlightenment.org/T4732 + * https://phab.enlightenment.org/T4747 + * https://phab.enlightenment.org/T4784 + * https://phab.enlightenment.org/T4797 + * https://phab.enlightenment.org/T4798 + * https://phab.enlightenment.org/T4809 + * https://phab.enlightenment.org/T4810 + * https://phab.enlightenment.org/T4815 + * https://phab.enlightenment.org/T4819 + * https://phab.enlightenment.org/T4826 + +== Changes == +Al Poole (1): + * efm - fix popup if file is a fifo + +Alexander Pyhalov (1): + * actually check if PIE is supported for SUID + +Carsten Haitzler (3): + * e fm - fix popup to not crash by referring to possibly deleted data + * cpufreq - move cpuinfo polling into thread to not block mainloop ever + * wizard - do not set scale to 1.2 forcibly. use dpi as the def prof says + +Christopher Michael (2): + * check if a client is internal or not before deleting + * fix missing definition of DRM_FORMAT_XRGB + +Derek Foreman (6): + * Block session recovery for internal windows + * Remove EVAS_CALLBACK_HIDE on shelf when freeing + * Increase area of tilers for regions + * Fix massive wayland input region brokenness + * Fix wayland opaque regions + * Stop passing dimensions to _e_comp_wl_surface_state_init + +Joshua McBeth (1): + * add dbus message 'org.enlightenment.wm.Window.SendToDesktop' + +Marcel Hollerbach (5): + * wizard: make page 065 translatable + * mixer: we changed that name when we merged the mixer in + * update german translation + * The potfile has changed, + * mixer: do not set back the value from emix once the drag is finished + +Massimo Maiurana (1): + * Updating italian translation + +Michaël Bouchaud (yoz) (2): + * mixer: fix the volume conversion calc into pulseaudio backend + * Revert "mixer: lock up the slider for the case a drag is in progress" + +Mike Blumenkrantz (80): + * enforce bryce resizing when orientation changes + * add EINTERN function for renaming gadget sites + * fix bryce check for shelf existence on orientation/anchor to break when expected + * add zone number to bryce names + * do not check for shelf/bryce existence in opposing anchorages during bryce wizard + * further improve bryce portability across zones + * also do full bryce rename when moving between zones + * add new flag for zone edge objects to allow shape cutting while repeating events + * force bryce visibility during editor activity + * add gadget_site_(un)locked smart callbacks for forcing gadget site visibility + * call gadget_popup smart callback when configuring gadgets + * handle gadget_popup smart callback on gadget's display object + * set ON_HOLD flag when triggering gadget mouse buttion actions + * remove unused attribute from used param + * trigger bryce menus from right click if event has not been consumed + * fix bryce upgrade path from 0 -> 2 re:naming + * set ON_HOLD flag more accurately when activating gadget actions + * avoid extra recalc when resizing a bryce on its oriented axis + * add gadget site sizing workaround to avoid elm box sizing desync + * rename bryces when changing anchors + * loop bryce autosize recalc when gadget site has not yet calculated its size + * only find the session recovery remember if ec->remember is not it + * apply non-session recovery remember to client when creating recovery remember + * correctly handle applying of non-SR remember in remember config + * reject successive zone_geometry_dirty() calls + * trigger zone geometry events when updating zone/desk obstacles + * force min size on wireless popup during show + * add workarounds for ctxpopup geometry for use
[EGIT] [website/www-content] master 01/01: Wiki page e-0.21.3-release changed with summary [] by Simon
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=656260f605bc9ec9eb3e8c9c340ed837e281dc2d commit 656260f605bc9ec9eb3e8c9c340ed837e281dc2d Author: SimonDate: Wed Nov 30 02:51:30 2016 -0800 Wiki page e-0.21.3-release changed with summary [] by Simon --- pages/news/e-0.21.3-release.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/news/e-0.21.3-release.txt b/pages/news/e-0.21.3-release.txt index fbdb708..5467179 100644 --- a/pages/news/e-0.21.3-release.txt +++ b/pages/news/e-0.21.3-release.txt @@ -97,8 +97,8 @@ YeongJong Lee (1): == Download == ^ ** LINK ** ^ ** SHA256 ** ^ -| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.3.tar.gz | Enlightenment DR 0.21.2 GZIP]]| ''56c2690b67a499d8334403e5529f7f5d338078b9897716256957fe17d06f33fb'' | -| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.3.tar.xz | Enlightenment DR 0.21.2 XZ]] | ''b90517d3de780023043b6e3ade30f686bd2cdcf5b66d24155b50da720e665fd2'' | +| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.3.tar.gz | Enlightenment DR 0.21.3 GZIP]]| ''56c2690b67a499d8334403e5529f7f5d338078b9897716256957fe17d06f33fb'' | +| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.3.tar.xz | Enlightenment DR 0.21.3 XZ]] | ''b90517d3de780023043b6e3ade30f686bd2cdcf5b66d24155b50da720e665fd2'' | //Not known to cure Jetlag.// --
[EGIT] [core/efl] master 02/03: docs: efl_ui: fill gaps in newly introduced eo files
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=33f5074206f7675574e0299432e4e48711e67c10 commit 33f5074206f7675574e0299432e4e48711e67c10 Author: Stefan SchmidtDate: Wed Nov 30 11:01:39 2016 +0100 docs: efl_ui: fill gaps in newly introduced eo files These two eo files have been introduced by commit a58e2e1a790732428fa09d479fec63d433931f06 Sadly three items have been left undocumented. With this patch we are back to 100% doc coverage. --- src/lib/efl/interfaces/efl_ui_item.eo | 1 + src/lib/efl/interfaces/efl_ui_menu.eo | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/efl/interfaces/efl_ui_item.eo b/src/lib/efl/interfaces/efl_ui_item.eo index 0ca8fbc..49ef31b 100644 --- a/src/lib/efl/interfaces/efl_ui_item.eo +++ b/src/lib/efl/interfaces/efl_ui_item.eo @@ -1,4 +1,5 @@ interface Efl.Ui.Item { + [[Efl UI item interface]] legacy_prefix: null; methods { @property prev { diff --git a/src/lib/efl/interfaces/efl_ui_menu.eo b/src/lib/efl/interfaces/efl_ui_menu.eo index 1ebe083..867303e 100644 --- a/src/lib/efl/interfaces/efl_ui_menu.eo +++ b/src/lib/efl/interfaces/efl_ui_menu.eo @@ -1,4 +1,5 @@ interface Efl.Ui.Menu { + [[Efl UI menu interface]] legacy_prefix: null; methods { @property selected_item { @@ -28,7 +29,7 @@ interface Efl.Ui.Menu { @property items { get { [[Returns a list of the widget item.]] -return: free(own(iterator), eina_iterator_free) @warn_unused; +return: free(own(iterator), eina_iterator_free) @warn_unused; [[Iterator to widget items]] } } } --
[EGIT] [core/efl] master 01/03: build: eeze: remove non existing header file from SOURCES
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=64bc872e6eb0deceae6b48abb4467354a3f2eff4 commit 64bc872e6eb0deceae6b48abb4467354a3f2eff4 Author: Stefan SchmidtDate: Wed Nov 30 10:57:12 2016 +0100 build: eeze: remove non existing header file from SOURCES This header file does simply not exist in tree. Removing it from the SOURCES allows to pass distcheck. --- src/Makefile_Eeze.am | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Makefile_Eeze.am b/src/Makefile_Eeze.am index 0fbdf16..5a025ad 100644 --- a/src/Makefile_Eeze.am +++ b/src/Makefile_Eeze.am @@ -152,8 +152,7 @@ bin_eeze_eeze_scanner_LDADD = @USE_EEZE_LIBS@ bin_eeze_eeze_scanner_DEPENDENCIES = @USE_EEZE_INTERNAL_LIBS@ bin_eeze_eeze_scanner_monitor_SOURCES = \ -bin/eeze/eeze_scanner_monitor.c \ -bin/eeze/eeze_scanner_monitor.h +bin/eeze/eeze_scanner_monitor.c bin_eeze_eeze_scanner_monitor_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EEZE_CFLAGS@ bin_eeze_eeze_scanner_monitor_LDADD = @USE_EEZE_LIBS@ bin_eeze_eeze_scanner_monitor_DEPENDENCIES = @USE_EEZE_INTERNAL_LIBS@ --
[EGIT] [core/efl] master 03/03: build: ector: make sure the triangular header files end up in dist
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=502f10880a82f8f48da6d307278aa04a1bc03078 commit 502f10880a82f8f48da6d307278aa04a1bc03078 Author: Stefan SchmidtDate: Wed Nov 30 11:10:11 2016 +0100 build: ector: make sure the triangular header files end up in dist In commit 98b0408a4eed5c2beafd4f396b64ca54fb00270f the new triangulator static_lib was introduced with ector as user. The ector Makefiles missed to also include the header files as deps so they never ended up in the dist failing distcheck. --- src/Makefile_Ector.am | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Makefile_Ector.am b/src/Makefile_Ector.am index 0f8a0a5..3eadc46 100644 --- a/src/Makefile_Ector.am +++ b/src/Makefile_Ector.am @@ -111,7 +111,9 @@ static_libs/rg_etc/etc2_encoder.c # Triangulator static lib triangulator_sources = \ static_libs/triangulator/triangulator_stroker.c \ +static_libs/triangulator/triangulator_stroker.h \ static_libs/triangulator/triangulator_simple.c \ +static_libs/triangulator/triangulator_simple.h \ $(NULL) # And the default software backend --
[EGIT] [website/www-content] master 01/01: Wiki page e-0.21.3-release changed with summary [] by Simon
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=d471beef1fabd173a7e98827a63eeb2897d4f51e commit d471beef1fabd173a7e98827a63eeb2897d4f51e Author: SimonDate: Wed Nov 30 02:30:29 2016 -0800 Wiki page e-0.21.3-release changed with summary [] by Simon --- pages/news/e-0.21.3-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/news/e-0.21.3-release.txt b/pages/news/e-0.21.3-release.txt index 948e2cf..fbdb708 100644 --- a/pages/news/e-0.21.3-release.txt +++ b/pages/news/e-0.21.3-release.txt @@ -1,4 +1,4 @@ -Enlightenment DR 0.21.3 Release +=== Enlightenment DR 0.21.3 Release === * //2016-10-12 - by Simon Lees// This is another bugfix and stability release for the Enlightenment 21 Release series. It addresses a number of issues as listed below. --
Re: [E-devel] [EGIT] [core/efl] master 01/02: Menu, Item Interface: Common interface for menu, toolbar and ctxpopup
Hello. On 30/11/16 10:22, Amitesh Singh wrote: > jpeg pushed a commit to branch master. > > http://git.enlightenment.org/core/efl.git/commit/?id=a58e2e1a790732428fa09d479fec63d433931f06 > > commit a58e2e1a790732428fa09d479fec63d433931f06 > Author: Amitesh Singh> Date: Wed Nov 30 16:18:46 2016 +0900 > > Menu,Item Interface: Common interface for menu, toolbar and ctxpopup > > Summary: > efl_ui_menu interface provides common functions of menu, toolbar and > ctxpopup. > efl_ui_item interface provides common functions of menu_item, > toolbar_item and ctxpopup_item. > Also implemented some missing functions like selected_item set/get in > ctxpopup. > efl_ui_item interface should be used for other widget items as well. > > Test Plan: elementary_test > > Reviewers: jpeg, felipealmeida, raster, SanghyeonLee, cedric, yashu21985 > > Subscribers: bu5hm4n > > Differential Revision: https://phab.enlightenment.org/D3897 > --- > src/Makefile_Efl.am | 2 + > src/bin/elementary/test_ctxpopup.c | 9 ++- > src/lib/efl/Efl.h| 2 + > src/lib/efl/interfaces/efl_interfaces_main.c | 2 + > src/lib/efl/interfaces/efl_ui_item.eo| 49 > src/lib/efl/interfaces/efl_ui_menu.eo| 29 +++ > src/lib/elementary/elc_ctxpopup.c| 109 > +-- > src/lib/elementary/elc_ctxpopup_legacy.h | 77 +++ > src/lib/elementary/elm_ctxpopup.eo | 58 ++ > src/lib/elementary/elm_ctxpopup_item.eo | 33 +--- > src/lib/elementary/elm_dbus_menu.c | 4 +- > src/lib/elementary/elm_menu.c| 78 --- > src/lib/elementary/elm_menu.eo | 31 ++-- > src/lib/elementary/elm_menu_item.eo | 25 ++ > src/lib/elementary/elm_menu_legacy.h | 57 ++ > src/lib/elementary/elm_toolbar.c | 64 ++-- > src/lib/elementary/elm_toolbar.eo| 35 ++--- > src/lib/elementary/elm_toolbar_item.eo | 50 +--- > src/lib/elementary/elm_toolbar_legacy.h | 86 + > src/lib/elementary/elm_widget_ctxpopup.h | 2 + > 20 files changed, 570 insertions(+), 232 deletions(-) This commit brought two new warnings into the build. Both look serious to be taken into account. :) lib/elementary/elm_dbus_menu.c: In function ‘_root_layout_build’: lib/elementary/elm_dbus_menu.c:364:13: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types] ret = efl_ui_menu_items_get(dbus_menu->menu); lib/elementary/elm_toolbar.c: In function ‘_elm_toolbar_efl_ui_menu_items_get’: lib/elementary/elm_toolbar.c:3257:34: warning: passing argument 1 of ‘eina_list_iterator_new’ from incompatible pointer type [-Wincompatible-pointer-types] return eina_list_iterator_new(sd->items); ^ In file included from ../src/lib/eina/Eina.h:223:0, from ../src/lib/elementary/Elementary.h:57, from lib/elementary/elm_toolbar.c:10: ../src/lib/eina/eina_list.h:1302:56: note: expected ‘const Eina_List * {aka const struct _Eina_List *}’ but argument is of type ‘Eina_Inlist * {aka struct _Eina_Inlist *}’ EAPI Eina_Iterator*eina_list_iterator_new(const Eina_List *list) EINA_MALLOC EINA_WARN_UNUSED_RESULT; 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 10/12: evas render - evas_object_clip_recalc - dont call uselessly
Hello. On 28/11/16 13:42, Stefan Schmidt wrote: > Hello. > > On 27/11/16 11:32, Carsten Haitzler wrote: >> raster pushed a commit to branch master. >> >> http://git.enlightenment.org/core/efl.git/commit/?id=bba368cf79acb5221d108cd257701523bd50ae2a >> >> commit bba368cf79acb5221d108cd257701523bd50ae2a >> Author: Carsten Haitzler (Rasterman)>> Date: Sun Nov 27 12:05:26 2016 +0900 >> >> evas render - evas_object_clip_recalc - dont call uselessly >> >> evas_object_clip_recalc was already called ... multiple times in >> pending and phase1 on all objects, so there is no value in calling it >> again and again in later evbas render phases when it's already been >> done. >> >> this and moving this to a real func sees evas_object_clip_recalc usage >> in perf drop from 1.8% to 1.4% or so of total perf sample time. tiny >> win, but we're at the point where i can't find big meaty wins, so i'm >> looking for a string of small wins to add up. >> >> @optimize > > This change breaks the evas test suite. Bisecting brought me here and > reverting this commit does indeed let the test suite run through again. > > Failing test case: > tests/evas/evas_test_mask.c:223:F:Masking:evas_mask_test_compare_clip:0: > Failure '_bgra_compare(data, refdata[1], W, H)' occurred > > I see this here locally as well as on Jenkins. Thanks for the revert. I can confirm that the test suite works again locally and on Jenkins after it. regards Stefan Schmidt -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 02/02: menu: Fix crash in main menu and eo files
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ad250d0ffb6718b87ce1ae539bcd6ab7eb813880 commit ad250d0ffb6718b87ce1ae539bcd6ab7eb813880 Author: Jean-Philippe AndreDate: Wed Nov 30 17:12:43 2016 +0900 menu: Fix crash in main menu and eo files This amends the previous commit to avoid a crash in the main menu, and adjust the eo files formatting. --- src/lib/efl/interfaces/efl_ui_item.eo | 28 src/lib/efl/interfaces/efl_ui_menu.eo | 12 +--- src/lib/elementary/elm_dbus_menu.c| 10 +- 3 files changed, 30 insertions(+), 20 deletions(-) diff --git a/src/lib/efl/interfaces/efl_ui_item.eo b/src/lib/efl/interfaces/efl_ui_item.eo index 8b5710d..0ca8fbc 100644 --- a/src/lib/efl/interfaces/efl_ui_item.eo +++ b/src/lib/efl/interfaces/efl_ui_item.eo @@ -3,46 +3,50 @@ interface Efl.Ui.Item { methods { @property prev { get { -[[Get the item before $ it in the widget's internal list of - items. +[[Get the item before this one in the widget's list of items. - See also \@ref efl_ui_item_next_get. + See also @.next. ]] } values { - item: Efl.Ui.Item; [[The item before the object in its parent's list. If there is no previous item for $ it or there's an error, $null is returned.]] +item: Efl.Ui.Item; [[The item before the object in its parent's +list. If there is no previous item or in case +of error, $null is returned.]] } } @property next { get { -[[Get the item after $ it in the widget's - internal list of items. +[[Get the item after this one in the widget's list of items. - See also \@ref efl_ui_item_prev_get. + See also @.prev. ]] } values { - item: Efl.Ui.Item; [[The item after the object in its parent's list. If there is no previous item for $ it or there's an error, $null is returned.]] +item: Efl.Ui.Item; [[The item after the object in its parent's +list. If there is no next item or in case +of error, $null is returned.]] } } @property selected { + [[Indicates whether this item is currently selected.]] get { - [[Get the selected state of $item.]] +[[Get the selected state of this item.]] } set { [[Set the selected state of $item. + This sets the selected state of the given item $it. $true for selected, $false for not selected. If a new item is selected the previously selected will - be unselected. Previously selected item can be get with - function @Efl.Ui.Menu.selected_item.get. + be unselected. Previously selected item can be retrieved + with @Efl.Ui.Menu.selected_item.get. Selected items will be highlighted. ]] } values { - selected: bool; [[The selection state.]] +selected: bool; [[The selection state.]] } } } diff --git a/src/lib/efl/interfaces/efl_ui_menu.eo b/src/lib/efl/interfaces/efl_ui_menu.eo index 3d61de1..1ebe083 100644 --- a/src/lib/efl/interfaces/efl_ui_menu.eo +++ b/src/lib/efl/interfaces/efl_ui_menu.eo @@ -4,19 +4,25 @@ interface Efl.Ui.Menu { @property selected_item { get { [[Get the selected item in the widget.]] -return: Efl.Ui.Item; [[The selected item or $null.]] + } + values { +item: Efl.Ui.Item; [[The selected item or $null.]] } } @property first_item { get { [[Get the first item in the widget.]] -return: Efl.Ui.Item; + } + values { +item: Efl.Ui.Item; [[The first item or $null.]] } } @property last_item { get { [[Get the last item in the widget.]] -return: Efl.Ui.Item; + } + values { +item: Efl.Ui.Item; [[The last item or $null.]] } } @property items { diff --git a/src/lib/elementary/elm_dbus_menu.c b/src/lib/elementary/elm_dbus_menu.c index 44f04ef..d649a24 100644 --- a/src/lib/elementary/elm_dbus_menu.c +++ b/src/lib/elementary/elm_dbus_menu.c @@ -423,9 +423,8 @@ static Elm_DBus_Menu * _elm_dbus_menu_add(Eo *menu) { Elm_DBus_Menu *dbus_menu; - const Eina_List *ret = NULL; - Eina_List *items, *l; Elm_Object_Item *obj_item; + Eina_Iterator *it = NULL; ELM_MENU_CHECK(menu) NULL; @@ -445,9 +444,8 @@ _elm_dbus_menu_add(Eo *menu)
[EGIT] [core/efl] master 01/02: Menu, Item Interface: Common interface for menu, toolbar and ctxpopup
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a58e2e1a790732428fa09d479fec63d433931f06 commit a58e2e1a790732428fa09d479fec63d433931f06 Author: Amitesh SinghDate: Wed Nov 30 16:18:46 2016 +0900 Menu,Item Interface: Common interface for menu, toolbar and ctxpopup Summary: efl_ui_menu interface provides common functions of menu, toolbar and ctxpopup. efl_ui_item interface provides common functions of menu_item, toolbar_item and ctxpopup_item. Also implemented some missing functions like selected_item set/get in ctxpopup. efl_ui_item interface should be used for other widget items as well. Test Plan: elementary_test Reviewers: jpeg, felipealmeida, raster, SanghyeonLee, cedric, yashu21985 Subscribers: bu5hm4n Differential Revision: https://phab.enlightenment.org/D3897 --- src/Makefile_Efl.am | 2 + src/bin/elementary/test_ctxpopup.c | 9 ++- src/lib/efl/Efl.h| 2 + src/lib/efl/interfaces/efl_interfaces_main.c | 2 + src/lib/efl/interfaces/efl_ui_item.eo| 49 src/lib/efl/interfaces/efl_ui_menu.eo| 29 +++ src/lib/elementary/elc_ctxpopup.c| 109 +-- src/lib/elementary/elc_ctxpopup_legacy.h | 77 +++ src/lib/elementary/elm_ctxpopup.eo | 58 ++ src/lib/elementary/elm_ctxpopup_item.eo | 33 +--- src/lib/elementary/elm_dbus_menu.c | 4 +- src/lib/elementary/elm_menu.c| 78 --- src/lib/elementary/elm_menu.eo | 31 ++-- src/lib/elementary/elm_menu_item.eo | 25 ++ src/lib/elementary/elm_menu_legacy.h | 57 ++ src/lib/elementary/elm_toolbar.c | 64 ++-- src/lib/elementary/elm_toolbar.eo| 35 ++--- src/lib/elementary/elm_toolbar_item.eo | 50 +--- src/lib/elementary/elm_toolbar_legacy.h | 86 + src/lib/elementary/elm_widget_ctxpopup.h | 2 + 20 files changed, 570 insertions(+), 232 deletions(-) diff --git a/src/Makefile_Efl.am b/src/Makefile_Efl.am index 1548bf3..79f4661 100644 --- a/src/Makefile_Efl.am +++ b/src/Makefile_Efl.am @@ -53,6 +53,8 @@ efl_eolian_files = \ lib/efl/interfaces/efl_io_queue.eo \ lib/efl/interfaces/efl_observer.eo \ lib/efl/interfaces/efl_observable.eo \ + lib/efl/interfaces/efl_ui_item.eo \ + lib/efl/interfaces/efl_ui_menu.eo \ $(efl_eolian_legacy_files) \ $(NULL) diff --git a/src/bin/elementary/test_ctxpopup.c b/src/bin/elementary/test_ctxpopup.c index 187dba8..0c11412 100644 --- a/src/bin/elementary/test_ctxpopup.c +++ b/src/bin/elementary/test_ctxpopup.c @@ -46,10 +46,12 @@ _btn_clicked_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, } static void -_ctxpopup_item_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info) +_ctxpopup_item_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info) { + printf("Item selected status: %d\n", efl_ui_item_selected_get(event_info)); + printf("ctxpopup item selected: %s\n", - elm_object_item_text_get(event_info)); + elm_object_item_text_get(efl_ui_menu_selected_item_get(obj))); elm_ctxpopup_dismiss(obj); } @@ -94,7 +96,8 @@ _list_item_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UN _ctxpopup_item_new(ctxpopup, "Go to home folder", "home"); _ctxpopup_item_new(ctxpopup, "Save file", "file"); - _ctxpopup_item_new(ctxpopup, "Delete file", "delete"); + it = _ctxpopup_item_new(ctxpopup, "Delete file", "delete"); + efl_ui_item_selected_set(it, EINA_TRUE); it = _ctxpopup_item_new(ctxpopup, "Navigate to folder", "folder"); elm_object_item_disabled_set(it, EINA_TRUE); _ctxpopup_item_new(ctxpopup, "Edit entry", "edit"); diff --git a/src/lib/efl/Efl.h b/src/lib/efl/Efl.h index 13e91f9..0aac837 100644 --- a/src/lib/efl/Efl.h +++ b/src/lib/efl/Efl.h @@ -86,6 +86,8 @@ typedef Efl_Gfx_Path_Command_Type Efl_Gfx_Path_Command; #include "interfaces/efl_flipable.eo.h" #include "interfaces/efl_ui_spin.eo.h" #include "interfaces/efl_ui_progress.eo.h" +#include "interfaces/efl_ui_item.eo.h" +#include "interfaces/efl_ui_menu.eo.h" #include "interfaces/efl_screen.eo.h" diff --git a/src/lib/efl/interfaces/efl_interfaces_main.c b/src/lib/efl/interfaces/efl_interfaces_main.c index c16c8db..4251ea3 100644 --- a/src/lib/efl/interfaces/efl_interfaces_main.c +++ b/src/lib/efl/interfaces/efl_interfaces_main.c @@ -53,6 +53,8 @@ EAPI const Efl_Event_Description _EFL_GFX_PATH_CHANGED = #include "interfaces/efl_flipable.eo.c" #include "interfaces/efl_ui_spin.eo.c" #include "interfaces/efl_ui_progress.eo.c" +#include "interfaces/efl_ui_menu.eo.c" +#include "interfaces/efl_ui_item.eo.c" EAPI void
[EGIT] [core/efl] master 01/01: Revert "evas render - evas_object_clip_recalc - dont call uselessly"
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=496f2ed4277dbc03740494a7185a67060f7b2198 commit 496f2ed4277dbc03740494a7185a67060f7b2198 Author: Carsten Haitzler (Rasterman)Date: Wed Nov 30 17:36:42 2016 +0900 Revert "evas render - evas_object_clip_recalc - dont call uselessly" This reverts commit bba368cf79acb5221d108cd257701523bd50ae2a. if this is causing test suite fails ( i saw no actual visual problems tho in apps or e etc.)... then revert. sadness. :( --- src/lib/evas/canvas/evas_render.c | 32 ++-- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index 8212b11..23e63a3 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -398,11 +398,10 @@ _evas_render_phase1_direct(Evas_Public_Data *e, RD(0, " [--- PHASE 1 DIRECT\n"); for (i = 0; i < active_objects->len; i++) { -Evas_Active_Entry *ent; -Evas_Object_Protected_Data *obj; +Evas_Active_Entry *ent = eina_inarray_nth(active_objects, i); +Evas_Object_Protected_Data *obj = ent->obj; -ent = eina_inarray_nth(active_objects, i); -obj = ent->obj; +EINA_PREFETCH(&(obj->cur->clipper)); if (obj->changed) evas_object_clip_recalc(obj); if (obj->proxy->proxies || obj->proxy->proxy_textures) @@ -1026,6 +1025,8 @@ _evas_render_phase1_object_process(Phase1_Context *p1ctx, Eina_Bool map, hmap, can_map, map_not_can_map, obj_changed, is_active; Evas_Object *eo_obj = obj->object; + EINA_PREFETCH(&(obj->cur->clipper)); + obj->rect_del = EINA_FALSE; obj->render_pre = EINA_FALSE; @@ -1207,15 +1208,16 @@ _evas_render_check_pending_objects(Eina_Array *pending_objects, Evas *eo_e EINA_ for (i = 0; i < pending_objects->count; ++i) { Evas_Object *eo_obj; -Evas_Object_Protected_Data *obj; int is_active; Eina_Bool ok = EINA_FALSE; -obj = eina_array_data_get(pending_objects, i); +Evas_Object_Protected_Data *obj = eina_array_data_get(pending_objects, i); eo_obj = obj->object; if (!obj->layer) goto clean_stuff; +EINA_PREFETCH(&(obj->cur->clipper)); +EINA_PREFETCH(&(obj->cur->cache.clip)); //If the children are in active objects, They should be cleaned up. if (EINA_UNLIKELY((obj->changed_map) && (_evas_render_has_map(obj)) && @@ -1682,6 +1684,8 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object *eo_obj, else proxy_src_clip = proxy_render_data->source_clip; + evas_object_clip_recalc(obj); + /* leave early if clipper is not visible */ if ((obj->cur->clipper) && (!obj->cur->clipper->cur->visible)) return clean_them; @@ -1973,6 +1977,8 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object *eo_obj, if (obj->cur->clipper) { + evas_object_clip_recalc(obj); + if (obj->is_smart) { EINA_COW_STATE_WRITE_BEGIN(obj, state_write, cur) @@ -2050,6 +2056,8 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object *eo_obj, // This path can be hit when we're multiplying masks on top of each other... Evas_Object_Protected_Data *mask = obj->cur->clipper; + evas_object_clip_recalc(obj); + RD(level, " has mask: [%p%s%s] redraw:%d sfc:%p\n", mask, mask->name?":":"", mask->name?mask->name:"", mask->mask->redraw, mask->mask->surface); @@ -2115,6 +2123,9 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object *eo_obj, { if (proxy_src_clip) { + if ((_evas_render_has_map(obj) && !_evas_render_can_map(obj)) || + _evas_render_object_is_mask(obj->cur->clipper)) + evas_object_clip_recalc(obj); _evas_render_mapped_context_clip_set(evas, eo_obj, obj, ctx, proxy_render_data, off_x, off_y); @@ -2179,6 +2190,9 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object *eo_obj, if (proxy_src_clip) { + if ((_evas_render_has_map(obj) && !_evas_render_can_map(obj)) || + _evas_render_object_is_mask(obj->cur->clipper)) + evas_object_clip_recalc(obj); x = obj->cur->cache.clip.x; y =