[EGIT] [core/efl] master 01/01: po: elm_container.c is removewd from the tree thus also remove it from POTFILES
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=49dde632bc0c4b98609d85f1f46587b292778b16 commit 49dde632bc0c4b98609d85f1f46587b292778b16 Author: Stefan Schmidt Date: Tue Apr 26 08:53:27 2016 +0200 po: elm_container.c is removewd from the tree thus also remove it from POTFILES File was removed in 902950018be3682c0549174fc0c6d1c04141cd39. --- po/POTFILES.in | 1 - 1 file changed, 1 deletion(-) diff --git a/po/POTFILES.in b/po/POTFILES.in index c5c80bd..66f2366 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -113,7 +113,6 @@ src/lib/elementary/elm_cnp.c src/lib/elementary/elm_colorselector.c src/lib/elementary/elm_config.c src/lib/elementary/elm_conform.c -src/lib/elementary/elm_container.c src/lib/elementary/elm_datetime.c src/lib/elementary/elm_dayselector.c src/lib/elementary/elm_dbus_menu.c --
[EGIT] [core/efl] master 01/01: Efl: Rename some packing functions and return bool
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ff8ee0143223681cb55ce5386b8fb8f126bf2b90 commit ff8ee0143223681cb55ce5386b8fb8f126bf2b90 Author: Jean-Philippe Andre Date: Tue Apr 26 15:21:21 2016 +0900 Efl: Rename some packing functions and return bool This renames some APIs from Efl.Pack in order to try and make them more sensible. Feedback welcome. Also, most APIs now return bool, where false is quite unlikely to happen. --- src/bin/elementary/test_ui_grid.c | 6 +- src/lib/edje/edje_containers.c | 79 --- src/lib/edje/efl_canvas_layout_internal_box.eo | 10 +- src/lib/edje/efl_canvas_layout_internal_table.eo | 6 +- src/lib/efl/interfaces/efl_pack.eo | 5 +- src/lib/efl/interfaces/efl_pack_grid.eo| 14 +-- src/lib/efl/interfaces/efl_pack_linear.eo | 74 +++--- src/lib/elementary/efl_ui_box.c| 106 + src/lib/elementary/efl_ui_box.eo | 13 ++- src/lib/elementary/efl_ui_grid.c | 61 +--- src/lib/elementary/efl_ui_grid.eo | 15 ++- src/lib/elementary/efl_ui_layout_internal_box.eo | 10 +- src/lib/elementary/efl_ui_layout_internal_table.eo | 6 +- src/lib/elementary/elm_layout.c| 2 +- src/lib/elementary/elm_layout_pack.c | 60 ++-- src/lib/elementary/elm_win.c | 4 +- src/tests/edje/edje_test_edje.c| 14 +-- 17 files changed, 229 insertions(+), 256 deletions(-) diff --git a/src/bin/elementary/test_ui_grid.c b/src/bin/elementary/test_ui_grid.c index 956c676..59a1da9 100644 --- a/src/bin/elementary/test_ui_grid.c +++ b/src/bin/elementary/test_ui_grid.c @@ -136,7 +136,7 @@ child_evt_cb(void *data, const Eo_Event *event) int col, row, colspan, rowspan; char buf[64]; - efl_pack_grid_content_position_get(event->obj, it, &col, &row, &colspan, &rowspan); + efl_pack_grid_position_get(event->obj, it, &col, &row, &colspan, &rowspan); if (event->desc == EFL_CONTAINER_EVENT_CONTENT_ADDED) sprintf(buf, "pack %d,%d %dx%d", col, row, colspan, rowspan); else @@ -169,7 +169,7 @@ _custom_engine_layout_do(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED, it = efl_content_iterate(pack); EINA_ITERATOR_FOREACH(it, item) { -if (efl_pack_grid_content_position_get(pack, item, &c, &r, &cs, &rs)) +if (efl_pack_grid_position_get(pack, item, &c, &r, &cs, &rs)) { int x, y, mw, mh; @@ -615,7 +615,7 @@ test_ui_grid_linear(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, efl_gfx_visible_set(f, 1); efl_pack_grid_columns_set(grid, 4); - efl_pack_directions_set(grid, EFL_ORIENT_RIGHT, EFL_ORIENT_DOWN); + efl_pack_grid_directions_set(grid, EFL_ORIENT_RIGHT, EFL_ORIENT_DOWN); evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_object_content_set(f, grid); evas_object_show(grid); diff --git a/src/lib/edje/edje_containers.c b/src/lib/edje/edje_containers.c index 89bf2f7..75d61c4 100644 --- a/src/lib/edje/edje_containers.c +++ b/src/lib/edje/edje_containers.c @@ -70,16 +70,16 @@ _efl_canvas_layout_internal_box_eo_base_finalize(Eo *obj, Edje_Box_Data *pd) /* Legacy features */ -EOLIAN static void +EOLIAN static Eina_Bool _efl_canvas_layout_internal_box_efl_pack_pack_clear(Eo *obj EINA_UNUSED, Edje_Box_Data *pd) { - _edje_part_box_remove_all(pd->ed, pd->part, EINA_TRUE); + return _edje_part_box_remove_all(pd->ed, pd->part, EINA_TRUE); } -EOLIAN static void +EOLIAN static Eina_Bool _efl_canvas_layout_internal_box_efl_pack_unpack_all(Eo *obj EINA_UNUSED, Edje_Box_Data *pd) { - _edje_part_box_remove_all(pd->ed, pd->part, EINA_FALSE); + return _edje_part_box_remove_all(pd->ed, pd->part, EINA_FALSE); } EOLIAN static Eina_Bool @@ -90,22 +90,22 @@ _efl_canvas_layout_internal_box_efl_pack_unpack(Eo *obj EINA_UNUSED, Edje_Box_Da return (removed == subobj); } -EOLIAN static void +EOLIAN static Eina_Bool _efl_canvas_layout_internal_box_efl_pack_pack(Eo *obj EINA_UNUSED, Edje_Box_Data *pd, Efl_Gfx_Base *subobj) { - _edje_part_box_append(pd->ed, pd->part, subobj); + return _edje_part_box_append(pd->ed, pd->part, subobj); } -EOLIAN static void +EOLIAN static Eina_Bool _efl_canvas_layout_internal_box_efl_pack_linear_pack_begin(Eo *obj EINA_UNUSED, Edje_Box_Data *pd, Efl_Gfx_Base *subobj) { - _edje_part_box_prepend(pd->ed, pd->part, subobj); + return _edje_part_box_prepend(pd->ed, pd->part, subobj); } -EOLIAN static void +EOLIAN static Eina_Bool _efl_canvas_layout_internal_box_efl_pack_linear_pack_end(Eo *obj EINA_UNUSED, Edje_Box_Data *pd, Efl_Gfx_Base *subobj) { - _edje_part_box_append(pd->ed, pd->part, subobj); + return _edje_part_box_append(pd->ed, pd->part, subobj); } EOLIAN
[EGIT] [core/efl] master 01/01: elm_icon: move lookup_order and standard feature from eo to legacy
jypark pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3279d4fae8cd6c0d7981672fc77d58c000cf0c90 commit 3279d4fae8cd6c0d7981672fc77d58c000cf0c90 Author: Ji-Youn Park Date: Tue Apr 26 17:24:51 2016 +0830 elm_icon: move lookup_order and standard feature from eo to legacy --- src/lib/elementary/elm_icon.c | 95 + src/lib/elementary/elm_icon.eo | 73 - src/lib/elementary/elm_icon_legacy.h| 79 ++- src/lib/elementary/elm_toolbar.c| 26 - src/lib/elementary/elm_toolbar.eo | 16 -- src/lib/elementary/elm_toolbar_item.eo | 4 +- src/lib/elementary/elm_toolbar_legacy.h | 25 + 7 files changed, 168 insertions(+), 150 deletions(-) diff --git a/src/lib/elementary/elm_icon.c b/src/lib/elementary/elm_icon.c index 0e3fc43..b68d5b9 100644 --- a/src/lib/elementary/elm_icon.c +++ b/src/lib/elementary/elm_icon.c @@ -644,6 +644,13 @@ _elm_icon_eo_base_constructor(Eo *obj, Elm_Icon_Data *sd) return obj; } +static void +_elm_icon_class_constructor(Eo_Class *klass) +{ + evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass); +} + +/* Legacy deprecated functions */ EAPI Eina_Bool elm_icon_memfile_set(Evas_Object *obj, const void *img, @@ -731,45 +738,6 @@ elm_icon_animated_play_get(const Evas_Object *obj) return elm_image_animated_play_get(obj); } -EOLIAN static Eina_Bool -_elm_icon_standard_set(Eo *obj, Elm_Icon_Data *_pd EINA_UNUSED, const char *name) -{ - Eina_Bool fdo = EINA_FALSE; - - if (!name) return EINA_FALSE; - - evas_object_event_callback_del_full - (obj, EVAS_CALLBACK_RESIZE, _elm_icon_standard_resize_cb, obj); - - Eina_Bool int_ret = _internal_elm_icon_standard_set(obj, name, &fdo); - - if (fdo) - evas_object_event_callback_add - (obj, EVAS_CALLBACK_RESIZE, _elm_icon_standard_resize_cb, obj); - - return int_ret; -} - -EOLIAN static const char* -_elm_icon_standard_get(Eo *obj EINA_UNUSED, Elm_Icon_Data *sd) -{ - - return sd->stdicon; -} - -EINA_DEPRECATED EOLIAN static void -_elm_icon_order_lookup_set(Eo *obj EINA_UNUSED, Elm_Icon_Data *sd EINA_UNUSED, - Elm_Icon_Lookup_Order order EINA_UNUSED) -{ - // this method's behaviour has been overridden by elm_config_icon_theme_set -} - -EINA_DEPRECATED EOLIAN static Elm_Icon_Lookup_Order -_elm_icon_order_lookup_get(Eo *obj EINA_UNUSED, Elm_Icon_Data *sd EINA_UNUSED) -{ - return ELM_ICON_LOOKUP_FDO_THEME; -} - EAPI void elm_icon_smooth_set(Evas_Object *obj, Eina_Bool smooth) @@ -902,12 +870,6 @@ elm_icon_aspect_fixed_get(const Evas_Object *obj) return elm_image_aspect_fixed_get(obj); } -static void -_elm_icon_class_constructor(Eo_Class *klass) -{ - evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass); -} - EAPI void elm_icon_thumb_set(Evas_Object *obj, const char *file, const char *group) { @@ -938,4 +900,47 @@ elm_icon_thumb_set(Evas_Object *obj, const char *file, const char *group) } } +EAPI Eina_Bool +elm_icon_standard_set(Evas_Object *obj, const char *name) +{ + Eina_Bool fdo = EINA_FALSE; + + ELM_ICON_CHECK(obj) EINA_FALSE; + + if (!name) return EINA_FALSE; + + evas_object_event_callback_del_full + (obj, EVAS_CALLBACK_RESIZE, _elm_icon_standard_resize_cb, obj); + + Eina_Bool int_ret = _internal_elm_icon_standard_set(obj, name, &fdo); + + if (fdo) + evas_object_event_callback_add + (obj, EVAS_CALLBACK_RESIZE, _elm_icon_standard_resize_cb, obj); + + return int_ret; +} + +EAPI const char* +elm_icon_standard_get(const Evas_Object *obj) +{ + ELM_ICON_CHECK(obj) NULL; + ELM_ICON_DATA_GET(obj, sd); + + return sd->stdicon; +} + +EAPI void +elm_icon_order_lookup_set(Evas_Object *obj EINA_UNUSED, + Elm_Icon_Lookup_Order order EINA_UNUSED) +{ + // this method's behaviour has been overridden by elm_config_icon_theme_set +} + +EAPI Elm_Icon_Lookup_Order +elm_icon_order_lookup_get(const Evas_Object *obj EINA_UNUSED) +{ + return ELM_ICON_LOOKUP_FDO_THEME; +} + #include "elm_icon.eo.c" diff --git a/src/lib/elementary/elm_icon.eo b/src/lib/elementary/elm_icon.eo index e783d76..bd007b7 100644 --- a/src/lib/elementary/elm_icon.eo +++ b/src/lib/elementary/elm_icon.eo @@ -6,83 +6,10 @@ enum Elm.Icon.Type standard } -enum Elm.Icon.Lookup_Order -{ - [[Lookup order used by elm_icon_standard_set(). Should look for icons in - the theme, FDO paths, or both? - - Warning: This enum will be removed as the lookup_order is deprecated. - ]] - legacy: elm_icon_lookup; - fdo_theme, [[Icon look up order: freedesktop, theme.]] - theme_fdo, [[Icon look up order: theme, freedesktop.]] - fdo, [[Icon look up order: freedesktop.]] - theme [[Icon look up order: theme.]] -} - - class Elm.Icon (Elm.Image) { eo_prefix: elm_obj_icon; methods { - @property order_lookup {
[EGIT] [tools/enventor] master 01/01: fix unexpected close on edc navigator.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=d271175953c132f5cbe92b62d92d8a14a33cd90d commit d271175953c132f5cbe92b62d92d8a14a33cd90d Author: Hermet Park Date: Tue Apr 26 20:39:44 2016 +0900 fix unexpected close on edc navigator. if edj view failed to load a edj, edje_edit apis will occur crashes. we could avoid this crash in enventor side. @fix T3510 --- src/bin/main.c | 1 - src/lib/edj_viewer.c | 14 -- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/bin/main.c b/src/bin/main.c index a0004c5..1e57ca1 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -506,7 +506,6 @@ enventor_live_view_updated_cb(void *data, Evas_Object *obj, ad->lazy_save = EINA_FALSE; ad->on_saving = EINA_FALSE; } -printf("%s\n", __func__); base_edc_navigator_group_update(); } diff --git a/src/lib/edj_viewer.c b/src/lib/edj_viewer.c index f474927..0e24117 100644 --- a/src/lib/edj_viewer.c +++ b/src/lib/edj_viewer.c @@ -377,6 +377,7 @@ update_edj_file_internal(view_data *vd) view_obj_parts_callbacks_set(vd); vd->edj_reload_need = EINA_FALSE; + vd->file_set_finished = EINA_TRUE; evas_object_smart_callback_call(vd->enventor, SIG_LIVE_VIEW_UPDATED, edj_mgr_obj_get()); @@ -420,6 +421,7 @@ exe_del_event_cb(void *data, int type EINA_UNUSED, void *event EINA_UNUSED) { dummy_obj_update(vd->layout); ecore_timer_del(vd->update_edj_timer); +vd->file_set_finished = EINA_FALSE; vd->update_edj_timer = ecore_timer_add(0.25, update_edj_file, vd); return ECORE_CALLBACK_PASS_ON; } @@ -824,42 +826,42 @@ view_size_get(view_data *vd, Evas_Coord *w, Evas_Coord *h) Eina_List * view_parts_list_get(view_data *vd) { - if (!vd->file_set_finished) return NULL; + if (!vd || !vd->file_set_finished) return NULL; return edje_edit_parts_list_get(vd->layout); } Eina_List * view_images_list_get(view_data *vd) { - if (!vd->file_set_finished) return NULL; + if (!vd || !vd->file_set_finished) return NULL; return edje_edit_images_list_get(vd->layout); } Eina_List * view_programs_list_get(view_data *vd) { - if (!vd->file_set_finished) return NULL; + if (!vd || !vd->file_set_finished) return NULL; return edje_edit_programs_list_get(vd->layout); } Edje_Part_Type view_part_type_get(view_data *vd, const char *part) { - if (!vd->file_set_finished) return EDJE_PART_TYPE_NONE; + if (!vd || !vd->file_set_finished) return EDJE_PART_TYPE_NONE; return edje_edit_part_type_get(vd->layout, part); } Eina_List * view_part_states_list_get(view_data *vd, const char *part) { - if (!vd->file_set_finished) return NULL; + if (!vd || !vd->file_set_finished) return NULL; return edje_edit_part_states_list_get(vd->layout, part); } Eina_List * view_program_targets_get(view_data *vd, const char *prog) { - if (!vd->file_set_finished) return NULL; + if (!vd || !vd->file_set_finished) return NULL; return edje_edit_program_targets_get(vd->layout, prog); } --
[EGIT] [core/efl] master 02/07: docs: evas: description for various surface classes
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9c3d34ca4db43e65b51407450b01d934df0821c2 commit 9c3d34ca4db43e65b51407450b01d934df0821c2 Author: Stefan Schmidt Date: Tue Apr 26 10:30:50 2016 +0200 docs: evas: description for various surface classes Describing surfaces classes for Wayland, TBM and X11. --- src/lib/evas/canvas/efl_canvas_surface_tbm.eo | 2 ++ src/lib/evas/canvas/efl_canvas_surface_wayland.eo | 2 ++ src/lib/evas/canvas/efl_canvas_surface_x11.eo | 2 ++ 3 files changed, 6 insertions(+) diff --git a/src/lib/evas/canvas/efl_canvas_surface_tbm.eo b/src/lib/evas/canvas/efl_canvas_surface_tbm.eo index 9d16dc8..546cb21 100644 --- a/src/lib/evas/canvas/efl_canvas_surface_tbm.eo +++ b/src/lib/evas/canvas/efl_canvas_surface_tbm.eo @@ -1,5 +1,7 @@ class Efl.Canvas.Surface_Tbm (Efl.Canvas.Surface) { + [[Native Tizen Buffer Manager surface for Efl canvas]] + legacy_prefix: null; implements { Eo.Base.constructor; diff --git a/src/lib/evas/canvas/efl_canvas_surface_wayland.eo b/src/lib/evas/canvas/efl_canvas_surface_wayland.eo index 9cf9114..4734ef0 100644 --- a/src/lib/evas/canvas/efl_canvas_surface_wayland.eo +++ b/src/lib/evas/canvas/efl_canvas_surface_wayland.eo @@ -1,5 +1,7 @@ class Efl.Canvas.Surface_Wayland (Efl.Canvas.Surface) { + [[Native Wayland surface for Efl canvas]] + legacy_prefix: null; implements { Eo.Base.constructor; diff --git a/src/lib/evas/canvas/efl_canvas_surface_x11.eo b/src/lib/evas/canvas/efl_canvas_surface_x11.eo index 3b1c979..ea235a0 100644 --- a/src/lib/evas/canvas/efl_canvas_surface_x11.eo +++ b/src/lib/evas/canvas/efl_canvas_surface_x11.eo @@ -7,6 +7,8 @@ struct Efl.Canvas.Surface.X11_Pixmap class Efl.Canvas.Surface_X11 (Efl.Canvas.Surface) { + [[Native X11 surface for Efl canvas]] + legacy_prefix: null; methods { @property pixmap { --
[EGIT] [core/efl] master 03/07: docs: efl_network: enhance documentation in base class
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9897cf495b8972dec12f1177b7d91a448eb30b90 commit 9897cf495b8972dec12f1177b7d91a448eb30b90 Author: Stefan Schmidt Date: Tue Apr 26 11:08:18 2016 +0200 docs: efl_network: enhance documentation in base class Fix some of the existing documentation and add some for events and the class. --- src/lib/ecore_con/efl_network_base.eo | 18 ++ 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/lib/ecore_con/efl_network_base.eo b/src/lib/ecore_con/efl_network_base.eo index 80b2817..98dbd08 100644 --- a/src/lib/ecore_con/efl_network_base.eo +++ b/src/lib/ecore_con/efl_network_base.eo @@ -30,6 +30,8 @@ enum Ecore.Con.Type } abstract Efl.Network.Base (Eo.Base) { + [[Abstract base class for all EFL.Network classes]] + legacy_prefix: ecore_con; eo_prefix: efl_network_base; data: null; @@ -37,7 +39,7 @@ abstract Efl.Network.Base (Eo.Base) { @property ip { [[Control the IP address of a server that has been connected to. - The param is a pointer to an internal string that contains the IP + The parameter is a pointer to an internal string that contains the IP address of the connected server in the form "XXX.YYY.ZZZ.AAA" IP notation. This string should not be modified or trusted to stay valid after deletion for the svr object. If no IP is known @@ -54,7 +56,7 @@ abstract Efl.Network.Base (Eo.Base) { [[Check how long the object has been connected This function is used to find out how long a client has been - connected for. + connected. ]] get { legacy: null; @@ -64,7 +66,7 @@ abstract Efl.Network.Base (Eo.Base) { } } @property port { - [[Return the port that the obj is connected to]] + [[The port that the obj is connected to]] set { legacy: null; } @@ -72,7 +74,7 @@ abstract Efl.Network.Base (Eo.Base) { legacy: null; } values { -port: int; [[The The port that obj is connected to, or -1 on error.]] +port: int; [[The port that obj is connected to, or -1 on error.]] } } @property fd { @@ -110,7 +112,7 @@ abstract Efl.Network.Base (Eo.Base) { disconnected. This function is used by the server to set the default idle timeout - on clients. If the any of the clients becomes idle for a time higher + on clients. If any of the clients becomes idle for a time higher than this value, it will be disconnected. A value of < 1 disables the idle timeout. @@ -186,15 +188,15 @@ abstract Efl.Network.Base (Eo.Base) { @virtual .send; } events { -data,received: Ecore_Con_Event_Data_Received; +data,received: Ecore_Con_Event_Data_Received; [[Data received on connection]] connection,upgraded; -connection,error: const(char) *; +connection,error: const(char) *; [[Error received on connection]] } } /* FIXME: Should actually be a binbuf. */ struct Ecore_Con_Event_Data_Received { -data: void *; [[The data thet got sent.]] +data: void *; [[The data that got sent.]] size: int; [[The length of the data sent.]] } --
[EGIT] [core/efl] master 01/07: docs: evas: description for polygon class
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b1a9629723ee4f0195f0253a7b60c6ca195fb9a2 commit b1a9629723ee4f0195f0253a7b60c6ca195fb9a2 Author: Stefan Schmidt Date: Tue Apr 26 10:07:50 2016 +0200 docs: evas: description for polygon class --- src/lib/evas/canvas/efl_canvas_polygon.eo | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/evas/canvas/efl_canvas_polygon.eo b/src/lib/evas/canvas/efl_canvas_polygon.eo index 38f5762..423be8d 100644 --- a/src/lib/evas/canvas/efl_canvas_polygon.eo +++ b/src/lib/evas/canvas/efl_canvas_polygon.eo @@ -1,5 +1,7 @@ class Efl.Canvas.Polygon (Evas.Object) { + [[Low-level polygon object]] + legacy_prefix: null; methods { point_add { --
[EGIT] [core/efl] master 06/07: docs: vpath: mark all vpath classes as introduced with upcoming 1.18
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9eb488aaa59483bf6b9534d0e43e5947ac39f0e8 commit 9eb488aaa59483bf6b9534d0e43e5947ac39f0e8 Author: Stefan Schmidt Date: Tue Apr 26 13:47:50 2016 +0200 docs: vpath: mark all vpath classes as introduced with upcoming 1.18 --- src/lib/efl/interfaces/efl_vpath.eo | 2 ++ src/lib/efl/interfaces/efl_vpath_core.eo | 5 - src/lib/efl/interfaces/efl_vpath_file.eo | 2 ++ src/lib/efl/interfaces/efl_vpath_file_core.eo | 5 - src/lib/efl/interfaces/efl_vpath_manager.eo | 5 - 5 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/lib/efl/interfaces/efl_vpath.eo b/src/lib/efl/interfaces/efl_vpath.eo index 8ad3f91..3ed34cc 100644 --- a/src/lib/efl/interfaces/efl_vpath.eo +++ b/src/lib/efl/interfaces/efl_vpath.eo @@ -15,6 +15,8 @@ interface Efl.Vpath "https://blahblah.com/file.jpg"; "ssh://blahblah.com:~/file.jpg" ... + + @since 1.18 ]] legacy_prefix: null; eo_prefix: efl_vpath; diff --git a/src/lib/efl/interfaces/efl_vpath_core.eo b/src/lib/efl/interfaces/efl_vpath_core.eo index d9910a4..e871df8 100644 --- a/src/lib/efl/interfaces/efl_vpath_core.eo +++ b/src/lib/efl/interfaces/efl_vpath_core.eo @@ -1,6 +1,9 @@ class Efl.Vpath.Core (Eo.Base, Efl.Vpath) { - [[ Core EFL implementation of a Vpath system ]] + [[ Core EFL implementation of a Vpath system + + @since 1.18 + ]] legacy_prefix: null; eo_prefix: efl_vpath_core; methods { diff --git a/src/lib/efl/interfaces/efl_vpath_file.eo b/src/lib/efl/interfaces/efl_vpath_file.eo index 7cdb7ce..de44709 100644 --- a/src/lib/efl/interfaces/efl_vpath_file.eo +++ b/src/lib/efl/interfaces/efl_vpath_file.eo @@ -11,6 +11,8 @@ class Efl.Vpath_File (Eo.Base) fetched or failed event callbacks will be called, inside of which or afterwards you can fetch the resulting local file path by getting the result property. + + @since 1.18 ]] legacy_prefix: null; eo_prefix: efl_vpath_file; diff --git a/src/lib/efl/interfaces/efl_vpath_file_core.eo b/src/lib/efl/interfaces/efl_vpath_file_core.eo index a77b4c9..cbe9bca 100644 --- a/src/lib/efl/interfaces/efl_vpath_file_core.eo +++ b/src/lib/efl/interfaces/efl_vpath_file_core.eo @@ -1,6 +1,9 @@ class Efl.Vpath_File.Core (Efl.Vpath_File) { - [[ Core EFL implementation of a Vpath File ]] + [[ Core EFL implementation of a Vpath File + + @since 1.18 + ]] legacy_prefix: null; eo_prefix: efl_vpath_file_core; implements { diff --git a/src/lib/efl/interfaces/efl_vpath_manager.eo b/src/lib/efl/interfaces/efl_vpath_manager.eo index 532f631..d08cdc0 100644 --- a/src/lib/efl/interfaces/efl_vpath_manager.eo +++ b/src/lib/efl/interfaces/efl_vpath_manager.eo @@ -1,6 +1,9 @@ class Efl.Vpath_Manager (Eo.Base) { - [[ Vpath Manager manages multiple VPath objects that remap/download ]] + [[ Vpath Manager manages multiple VPath objects that remap/download + + @since 1.18 + ]] legacy_prefix: null; eo_prefix: efl_vpath_manager; methods { --
[EGIT] [core/efl] master 07/07: docs: efl_vpath: fix smaller tpyos and document manager class methods
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e165baf37cd20ddf9190dd791c44879ecf0b3050 commit e165baf37cd20ddf9190dd791c44879ecf0b3050 Author: Stefan Schmidt Date: Tue Apr 26 13:57:55 2016 +0200 docs: efl_vpath: fix smaller tpyos and document manager class methods --- src/lib/efl/interfaces/efl_vpath_file.eo| 2 +- src/lib/efl/interfaces/efl_vpath_manager.eo | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib/efl/interfaces/efl_vpath_file.eo b/src/lib/efl/interfaces/efl_vpath_file.eo index de44709..74e117a 100644 --- a/src/lib/efl/interfaces/efl_vpath_file.eo +++ b/src/lib/efl/interfaces/efl_vpath_file.eo @@ -38,7 +38,7 @@ class Efl.Vpath_File (Eo.Base) return: bool; [[ Result callback already called ]] } wait { -[[ If not fteched yet, wait until it is and call result cb ]] +[[ If not fetched yet, wait until it is and call result cb ]] } } events { diff --git a/src/lib/efl/interfaces/efl_vpath_manager.eo b/src/lib/efl/interfaces/efl_vpath_manager.eo index d08cdc0..2748909 100644 --- a/src/lib/efl/interfaces/efl_vpath_manager.eo +++ b/src/lib/efl/interfaces/efl_vpath_manager.eo @@ -15,14 +15,14 @@ class Efl.Vpath_Manager (Eo.Base) return: own(Efl.Vpath_File *); [[ An object representing the file ]] } register @class { - [[ ]] + [[Register a vpath with the manager ]] params { -priority: int; [[ Search order - higher values tired first ]] +priority: int; [[ Search order - higher values tried first ]] vpath: Efl.Vpath * @nonull; [[ A Vpath implementation object ]] } } unregister @class { - [[ ]] + [[ Unregister a vpath from the manager ]] params { vpath: Efl.Vpath * @nonull; [[ A Vpath implementation object ]] } --
[EGIT] [core/efl] master 04/07: docs: efl_network: enhance the EO classes for client and server
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=727f58524a0725cce2064a0277196ab92b61c48f commit 727f58524a0725cce2064a0277196ab92b61c48f Author: Stefan Schmidt Date: Tue Apr 26 11:53:50 2016 +0200 docs: efl_network: enhance the EO classes for client and server --- src/lib/ecore_con/efl_network_client.eo | 4 ++-- src/lib/ecore_con/efl_network_server.eo | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/lib/ecore_con/efl_network_client.eo b/src/lib/ecore_con/efl_network_client.eo index 7a32c13..e742b3a 100644 --- a/src/lib/ecore_con/efl_network_client.eo +++ b/src/lib/ecore_con/efl_network_client.eo @@ -1,10 +1,10 @@ class Efl.Network.Client (Efl.Network.Base) { + [[Efl network client]] legacy_prefix: ecore_con_client; eo_prefix: efl_network_client_obj; methods { @property server { - [[Controls the server representing the socket the client has - connected to.]] + [[The server the client is connected to.]] get { } values { diff --git a/src/lib/ecore_con/efl_network_server.eo b/src/lib/ecore_con/efl_network_server.eo index 67e2637..b75190e 100644 --- a/src/lib/ecore_con/efl_network_server.eo +++ b/src/lib/ecore_con/efl_network_server.eo @@ -1,4 +1,5 @@ class Efl.Network.Server (Efl.Network.Base) { + [[Efl network server]] legacy_prefix: ecore_con_server; eo_prefix: efl_network_server; methods { @@ -62,6 +63,7 @@ class Efl.Network.Server (Efl.Network.Base) { } } @property connection_type { +[[Type of the server connection as defined in @Ecore.Con.Type]] get { legacy: null; } @@ -69,7 +71,7 @@ class Efl.Network.Server (Efl.Network.Base) { legacy: null; } values { -conn_type: Ecore.Con.Type; +conn_type: Ecore.Con.Type; [[Connection type]] } } } --
[EGIT] [core/efl] master 05/07: docs: efl_network: class descriptions for connector and URL
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=204a252abe2fb91a62a14d398875cdad5a018963 commit 204a252abe2fb91a62a14d398875cdad5a018963 Author: Stefan Schmidt Date: Tue Apr 26 13:12:04 2016 +0200 docs: efl_network: class descriptions for connector and URL --- src/lib/ecore_con/efl_network_connector.eo | 1 + src/lib/ecore_con/efl_network_url.eo | 1 + 2 files changed, 2 insertions(+) diff --git a/src/lib/ecore_con/efl_network_connector.eo b/src/lib/ecore_con/efl_network_connector.eo index 8c106a9..1d74547 100644 --- a/src/lib/ecore_con/efl_network_connector.eo +++ b/src/lib/ecore_con/efl_network_connector.eo @@ -1,4 +1,5 @@ class Efl.Network.Connector (Efl.Network.Server) { + [[Efl network connector class]] eo_prefix: efl_network_connector_obj; data: null; implements { diff --git a/src/lib/ecore_con/efl_network_url.eo b/src/lib/ecore_con/efl_network_url.eo index eecdfd4..8148e8b 100644 --- a/src/lib/ecore_con/efl_network_url.eo +++ b/src/lib/ecore_con/efl_network_url.eo @@ -1,4 +1,5 @@ class Efl.Network.Url (Eo.Base) { + [[Uniform Resource Locator (URL) base class]] legacy_prefix: null; eo_prefix: efl_network_url; methods { --
[EGIT] [core/efl] master 01/01: elm_genlist: fix the sorted insert after expanded tree item
rimmed pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=287f84baaff605ce7b1c838720b68749c62c3c4b commit 287f84baaff605ce7b1c838720b68749c62c3c4b Author: Vyacheslav Reutskiy Date: Tue Apr 26 15:12:14 2016 +0300 elm_genlist: fix the sorted insert after expanded tree item Insert a new item after subitem of ELM_GENLIST_ITEM_TREE item, if it expanded. @fix --- src/lib/elementary/elm_genlist.c | 8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c index cb77a88..378c5f0 100644 --- a/src/lib/elementary/elm_genlist.c +++ b/src/lib/elementary/elm_genlist.c @@ -6384,7 +6384,7 @@ _elm_genlist_item_sorted_insert(Eo *obj, Elm_Genlist_Data *sd, const Elm_Genlist if (it->parent) { Elm_Object_Item *eo_rel = NULL; -Eina_List *l; +Eina_List *l, *last; int cmp_result; l = eina_list_search_sorted_near_list @@ -6408,6 +6408,12 @@ _elm_genlist_item_sorted_insert(Eo *obj, Elm_Genlist_Data *sd, const Elm_Genlist { it->parent->item->items = eina_list_append_relative_list (it->parent->item->items, eo_it, l); + if (rel->item->items && rel->item->expanded) +{ + last = eina_list_last(rel->item->items); + eo_rel = eina_list_data_get(last); + rel = eo_data_scope_get(eo_rel, ELM_GENLIST_ITEM_CLASS); +} sd->items = eina_inlist_append_relative (sd->items, EINA_INLIST_GET(it), EINA_INLIST_GET(rel)); it->item->before = EINA_FALSE; --
[EGIT] [core/enlightenment] master 01/01: move wayland surface E_Client del check to a place where it's more useful
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=2c1e864fbc4f2bd421029785306764da9328663b commit 2c1e864fbc4f2bd421029785306764da9328663b Author: Mike Blumenkrantz Date: Tue Apr 26 08:58:50 2016 -0400 move wayland surface E_Client del check to a place where it's more useful completely breaks wayland on first commit? off to an auspicious start! ref d9679f765f266448448e1d3707ecf374bcaec6fe --- src/bin/e_comp_wl.c | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 639119a..16114da 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -1567,8 +1567,6 @@ _e_comp_wl_compositor_cb_surface_create(struct wl_client *client, struct wl_reso DBG("Compositor Cb Surface Create: %d", id); - if (e_object_is_del(E_OBJECT(ec))) return; - /* try to create an internal surface */ if (!(res = wl_resource_create(client, &wl_surface_interface, wl_resource_get_version(resource), id))) @@ -1587,7 +1585,11 @@ _e_comp_wl_compositor_cb_surface_create(struct wl_client *client, struct wl_reso wl_client_get_credentials(client, &pid, NULL, NULL); if (pid == getpid()) //internal! ec = e_pixmap_find_client(E_PIXMAP_TYPE_WL, (uintptr_t)id); - if (!ec) + if (ec) + { +if (e_object_is_del(E_OBJECT(ec))) return; + } + else { E_Pixmap *ep = NULL; --
[EGIT] [tools/enventor] master 01/01: ctxpopup: fix a broken ctxpopup image relay behavior.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=99eee8091e69e60a62b7d9da247da271e7feb676 commit 99eee8091e69e60a62b7d9da247da271e7feb676 Author: Hermet Park Date: Tue Apr 26 22:17:44 2016 +0900 ctxpopup: fix a broken ctxpopup image relay behavior. grab keys to ensure key events. fix @T3271 --- src/lib/ctxpopup.c | 14 ++ 1 file changed, 14 insertions(+) diff --git a/src/lib/ctxpopup.c b/src/lib/ctxpopup.c index 9bfdf6d..60af932 100644 --- a/src/lib/ctxpopup.c +++ b/src/lib/ctxpopup.c @@ -825,6 +825,13 @@ ctxpopup_img_preview_create(edit_data *ed, ctxpopup_mouse_wheel_cb, ctxdata); evas_object_focus_set(ctxpopup, EINA_TRUE); + if (!evas_object_key_grab(ctxpopup, "Up", 0, 0, EINA_TRUE)) + EINA_LOG_ERR("Failed to grab key - Up"); + if (!evas_object_key_grab(ctxpopup, "Down", 0, 0, EINA_TRUE)) + EINA_LOG_ERR("Failed to grab key - Down"); + if (!evas_object_key_grab(ctxpopup, "BackSpace", 0, 0, EINA_TRUE)) + EINA_LOG_ERR("Failed to grab key - BackSpace"); + return ctxpopup; } @@ -935,6 +942,13 @@ ctxpopup_candidate_list_create(edit_data *ed, attr_value *attr, evas_object_smart_callback_add(ctxpopup, "dismissed", ctxpopup_dismiss_cb, ed); + if (!evas_object_key_grab(ctxpopup, "Up", 0, 0, EINA_TRUE)) + EINA_LOG_ERR("Failed to grab key - Up"); + if (!evas_object_key_grab(ctxpopup, "Down", 0, 0, EINA_TRUE)) + EINA_LOG_ERR("Failed to grab key - Down"); + if (!evas_object_key_grab(ctxpopup, "BackSpace", 0, 0, EINA_TRUE)) + EINA_LOG_ERR("Failed to grab key - BackSpace"); + return ctxpopup; err: --
[EGIT] [tools/enventor] master 01/01: edc_editor: free used memory.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=e7bc310f1b86eeb40ee78378bd8efc0f764f0f9a commit e7bc310f1b86eeb40ee78378bd8efc0f764f0f9a Author: Hermet Park Date: Tue Apr 26 22:58:46 2016 +0900 edc_editor: free used memory. --- src/lib/edc_editor.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c index a62e947..bfe5172 100644 --- a/src/lib/edc_editor.c +++ b/src/lib/edc_editor.c @@ -609,10 +609,12 @@ preview_img_relay_show(edit_data *ed, Evas_Object *ctxpopup, Eina_Bool next) int cursor_pos = elm_entry_cursor_pos_get(ed->en_edit); elm_entry_select_region_set(ed->en_edit, (cursor_pos - select_len), cursor_pos); +free(text); return; } end: elm_ctxpopup_dismiss(ctxpopup); + free(text); } static void --
[EGIT] [core/efl] master 01/01: evas: Fix improper extra library linkage for various engines
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6c032a99de24b7a7b796aa20f67936ab0d4e6844 commit 6c032a99de24b7a7b796aa20f67936ab0d4e6844 Author: Chris Michael Date: Tue Apr 26 10:02:35 2016 -0400 evas: Fix improper extra library linkage for various engines The eglfs, drm and gl_drm engines were all linking to eeze internal libraries however none of those engines actually use eeze at all so we can remove the linking there. @fix Signed-off-by: Chris Michael --- src/Makefile_Evas.am | 15 ++- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index 5e203db..7e1470e 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -1303,9 +1303,8 @@ modules_evas_engines_drm_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ modules_evas_engines_drm_module_la_LIBADD = \ @USE_EVAS_LIBS@ \ @USE_ECORE_DRM_LIBS@ \ -@evas_engine_drm_libs@ \ -@USE_EEZE_INTERNAL_LIBS@ -modules_evas_engines_drm_module_la_DEPENDENCIES = @USE_EVAS_INTERNAL_LIBS@ @USE_EEZE_INTERNAL_LIBS@ @USE_ECORE_DRM_INTERNAL_LIBS@ +@evas_engine_drm_libs@ +modules_evas_engines_drm_module_la_DEPENDENCIES = @USE_EVAS_INTERNAL_LIBS@ @USE_ECORE_DRM_INTERNAL_LIBS@ modules_evas_engines_drm_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@ modules_evas_engines_drm_module_la_LIBTOOLFLAGS = --tag=disable-static endif @@ -1342,9 +1341,8 @@ modules_evas_engines_gl_drm_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ modules_evas_engines_gl_drm_module_la_LIBADD = \ @USE_EVAS_LIBS@ \ @USE_ECORE_DRM_LIBS@ \ -@evas_engine_gl_drm_libs@ \ -@USE_EEZE_INTERNAL_LIBS@ -modules_evas_engines_gl_drm_module_la_DEPENDENCIES = @USE_EVAS_INTERNAL_LIBS@ @USE_EEZE_INTERNAL_LIBS@ @USE_ECORE_DRM_INTERNAL_LIBS@ +@evas_engine_gl_drm_libs@ +modules_evas_engines_gl_drm_module_la_DEPENDENCIES = @USE_EVAS_INTERNAL_LIBS@ @USE_ECORE_DRM_INTERNAL_LIBS@ modules_evas_engines_gl_drm_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@ modules_evas_engines_gl_drm_module_la_LIBTOOLFLAGS = --tag=disable-static endif @@ -1381,9 +1379,8 @@ modules_evas_engines_eglfs_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ modules_evas_engines_eglfs_module_la_LIBADD = \ @USE_EVAS_LIBS@ \ @USE_ECORE_DRM_LIBS@ \ -@evas_engine_eglfs_libs@ \ -@USE_EEZE_INTERNAL_LIBS@ -modules_evas_engines_eglfs_module_la_DEPENDENCIES = @USE_EVAS_INTERNAL_LIBS@ @USE_EEZE_INTERNAL_LIBS@ @USE_ECORE_DRM_INTERNAL_LIBS@ +@evas_engine_eglfs_libs@ +modules_evas_engines_eglfs_module_la_DEPENDENCIES = @USE_EVAS_INTERNAL_LIBS@ @USE_ECORE_DRM_INTERNAL_LIBS@ modules_evas_engines_eglfs_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@ modules_evas_engines_eglfs_module_la_LIBTOOLFLAGS = --tag=disable-static endif --
[EGIT] [tools/enventor] master 01/01: code refactoring.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=8d109970c6f3531cbcb1b35f7c0f2154fc8800aa commit 8d109970c6f3531cbcb1b35f7c0f2154fc8800aa Author: Hermet Park Date: Tue Apr 26 23:13:42 2016 +0900 code refactoring. sanitize duplicated error message code. --- src/bin/live_edit.c | 29 ++--- src/lib/auto_comp.c | 38 +++--- src/lib/ctxpopup.c | 25 + 3 files changed, 50 insertions(+), 42 deletions(-) diff --git a/src/bin/live_edit.c b/src/bin/live_edit.c index e837d24..5c6c9f4 100644 --- a/src/bin/live_edit.c +++ b/src/bin/live_edit.c @@ -935,6 +935,13 @@ info_text_init(live_data *ld) } static void +key_grab_add(Evas_Object *keygrabber, const char *key) +{ + if (!evas_object_key_grab(keygrabber, key, 0, 0, EINA_TRUE)) + EINA_LOG_ERR(_("Failed to grab key - %s"), key); +} + +static void live_edit_layer_set(live_data *ld) { //Keygrabber @@ -944,25 +951,17 @@ live_edit_layer_set(live_data *ld) keygrabber_key_down_cb, ld); evas_object_event_callback_add(ld->keygrabber, EVAS_CALLBACK_KEY_DOWN, keygrabber_direction_key_down_cb, ld); - if (!evas_object_key_grab(ld->keygrabber, "Return", 0, 0, EINA_TRUE)) - EINA_LOG_ERR(_("Failed to grab key - Return")); - if (!evas_object_key_grab(ld->keygrabber, "Delete", 0, 0, EINA_TRUE)) - EINA_LOG_ERR(_("Failed to grab key - Delete")); - if (!evas_object_key_grab(ld->keygrabber, "BackSpace", 0, 0, EINA_TRUE)) - EINA_LOG_ERR(_("Failed to grab key - BackSpace")); - if (!evas_object_key_grab(ld->keygrabber, "Up", 0, 0, EINA_TRUE)) - EINA_LOG_ERR(_("Failed to grab key - Up")); - if (!evas_object_key_grab(ld->keygrabber, "Down", 0, 0, EINA_TRUE)) - EINA_LOG_ERR(_("Failed to grab key - Down")); - if (!evas_object_key_grab(ld->keygrabber, "Left", 0, 0, EINA_TRUE)) - EINA_LOG_ERR(_("Failed to grab key - Left")); - if (!evas_object_key_grab(ld->keygrabber, "Right", 0, 0, EINA_TRUE)) - EINA_LOG_ERR(_("Failed to grab key - Right")); - evas_object_event_callback_add(ld->live_view, EVAS_CALLBACK_RESIZE, live_view_geom_cb, ld); evas_object_event_callback_add(ld->live_view, EVAS_CALLBACK_MOVE, live_view_geom_cb, ld); + key_grab_add(ld->keygrabber, "Return"); + key_grab_add(ld->keygrabber, "Delete"); + key_grab_add(ld->keygrabber, "BackSpace"); + key_grab_add(ld->keygrabber, "Up"); + key_grab_add(ld->keygrabber, "Down"); + key_grab_add(ld->keygrabber, "Left"); + key_grab_add(ld->keygrabber, "Right"); //Create Live View Layout Evas_Object *layout = elm_layout_add(ld->live_view); diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c index 664db9e..ff2b186 100644 --- a/src/lib/auto_comp.c +++ b/src/lib/auto_comp.c @@ -362,6 +362,19 @@ init_thread_cancel_cb(void *data, Ecore_Thread *thread EINA_UNUSED) } static void +key_grab_add(Evas_Object *keygrabber, const char *key) +{ + if (!evas_object_key_grab(keygrabber, key, 0, 0, EINA_TRUE)) + EINA_LOG_ERR(_("Failed to grab key - %s"), key); +} + +static void +key_grab_del(Evas_Object *keygrabber, const char *key) +{ + evas_object_key_ungrab(keygrabber, key, 0, 0); +} + +static void anchor_keygrab_set(autocomp_data *ad, Eina_Bool grab) { Evas_Object *anchor = ad->anchor; @@ -369,26 +382,21 @@ anchor_keygrab_set(autocomp_data *ad, Eina_Bool grab) if (grab) { if (ad->on_keygrab) return; -if (!evas_object_key_grab(anchor, "BackSpace", 0, 0, EINA_TRUE)) - EINA_LOG_ERR("Failed to grab key - BackSpace"); -if (!evas_object_key_grab(anchor, "Return", 0, 0, EINA_TRUE)) - EINA_LOG_ERR("Failed to grab key - Return"); -if (!evas_object_key_grab(anchor, "Tab", 0, 0, EINA_TRUE)) - EINA_LOG_ERR("Failed to grab key - Tab"); -if (!evas_object_key_grab(anchor, "Up", 0, 0, EINA_TRUE)) - EINA_LOG_ERR("Failed to grab key - Up"); -if (!evas_object_key_grab(anchor, "Down", 0, 0, EINA_TRUE)) - EINA_LOG_ERR("Failed to grab key - Down"); +key_grab_add(anchor, "BackSpace"); +key_grab_add(anchor, "Return"); +key_grab_add(anchor, "Tab"); +key_grab_add(anchor, "Up"); +key_grab_add(anchor, "Down"); ad->on_keygrab = EINA_TRUE; } else { if (!ad->on_keygrab) return; -evas_object_key_ungrab(anchor, "BackSpace", 0, 0); -evas_object_key_ungrab(anchor, "Return", 0, 0); -evas_object_key_ungrab(anchor, "Tab", 0, 0); -evas_object_key_ungrab(anchor, "Up", 0, 0); -evas_object_key_ungrab(anchor, "Down", 0, 0); +key_grab_del(anchor, "BackSpace"); +key_grab_del(anchor, "Return"); +key_grab_del(anchor, "Tab"); +key_grab_del(anchor, "Up"); +key_grab_
[EGIT] [tools/enventor] master 01/01: edc_editor: fix a broken ctxpopup image relay behavior.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=d38facff7fbacbb2254687c67346113ad99f3c48 commit d38facff7fbacbb2254687c67346113ad99f3c48 Author: Hermet Park Date: Tue Apr 26 23:39:57 2016 +0900 edc_editor: fix a broken ctxpopup image relay behavior. Next image word selection was broken. so, the selection was a little twisted. It seems something has been changed in entry. Anyhow, it's fixed in enventor side. :( @fix T3258 --- src/lib/edc_editor.c | 23 +++ src/lib/edc_parser.c | 7 --- src/lib/enventor_private.h | 1 - 3 files changed, 11 insertions(+), 20 deletions(-) diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c index bfe5172..b55f9f0 100644 --- a/src/lib/edc_editor.c +++ b/src/lib/edc_editor.c @@ -593,22 +593,21 @@ preview_img_relay_show(edit_data *ed, Evas_Object *ctxpopup, Eina_Bool next) if (image_preview_show(ed, text, x, y)) { //Set the entry selection region to next image. -const char *colon = parser_colon_pos_get(NULL, text); +const char *colon = strstr(text, ":"); if (!colon) goto end; -const char *selection = elm_entry_selection_get(ed->en_edit); -if (!selection) goto end; +const char *image = strstr(text, "image"); +if (!image) goto end; -char *select_utf8 = elm_entry_markup_to_utf8(selection); -if (!select_utf8) goto end; -int select_len = strlen(select_utf8); -free(select_utf8); -const char *p = (colon - select_len); -if (p < text) goto end; +//Check validation +if (0 >= (colon - image)) goto end; -int cursor_pos = elm_entry_cursor_pos_get(ed->en_edit); -elm_entry_select_region_set(ed->en_edit, (cursor_pos - select_len), -cursor_pos); +//Compute new selection region. +elm_entry_cursor_line_begin_set(ed->en_edit); +int cur_pos = elm_entry_cursor_pos_get(ed->en_edit); +int begin = cur_pos + (image - text); +elm_entry_select_region_set(ed->en_edit, begin, +(begin + (int) (colon - image))); free(text); return; } diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c index d46aed1..dea7105 100644 --- a/src/lib/edc_parser.c +++ b/src/lib/edc_parser.c @@ -1528,13 +1528,6 @@ parser_name_get(parser_data *pd EINA_UNUSED, const char *cur) return strndup(p, (end - p)); } -const char * -parser_colon_pos_get(parser_data *pd EINA_UNUSED, const char *cur) -{ - if (!cur) return NULL; - return strstr(cur, ":"); -} - attr_value * parser_attribute_get(parser_data *pd, const char *text, const char *cur, const char *selected) diff --git a/src/lib/enventor_private.h b/src/lib/enventor_private.h index 8249f00..74a1052 100644 --- a/src/lib/enventor_private.h +++ b/src/lib/enventor_private.h @@ -139,7 +139,6 @@ int parser_end_of_parts_block_pos_get(const Evas_Object *entry, const char *grou Eina_Bool parser_images_pos_get(const Evas_Object *entry, int *ret); Eina_Bool parser_is_image_name(const Evas_Object *entry, const char *str); Eina_Bool parser_styles_pos_get(const Evas_Object *entry, int *ret); -const char *parser_colon_pos_get(parser_data *pd EINA_UNUSED, const char *cur); Eina_Bool parser_state_info_get(Evas_Object *entry, state_info *info); void parser_macro_list_set(parser_data *pd, const char *text); Eina_List *parser_macro_list_get(parser_data *pd); --
[EGIT] [core/efl] master 01/01: ecore-drm: Add missing initializer for fb2 command
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7d450fba64f52d6bac2f236273cc0b8203ef5ac5 commit 7d450fba64f52d6bac2f236273cc0b8203ef5ac5 Author: Chris Michael Date: Tue Apr 26 11:00:40 2016 -0400 ecore-drm: Add missing initializer for fb2 command drm_mode_fb_cmd2 has fields for a modifier to handle tiling, compression, etc (per plane). Even tho we do not use these, we should at least initialize them to zero else we end up with uninitialized bytes in the cmd structure. ==11706== Syscall param ioctl(generic) points to uninitialised byte(s) ==11706==at 0x57E05D9: ioctl (in /usr/lib/libc-2.20.so) ==11706==by 0x4D30FA3: drmIoctl (in /usr/lib/libdrm.so.2.4.0) ==11706==by 0x4CDF66B: _ecore_drm_fb_create2 (ecore_drm_fb.c:63) @fix Signed-off-by: Chris Michael --- src/lib/ecore_drm/ecore_drm_fb.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lib/ecore_drm/ecore_drm_fb.c b/src/lib/ecore_drm/ecore_drm_fb.c index f705fa2..7f3d323 100644 --- a/src/lib/ecore_drm/ecore_drm_fb.c +++ b/src/lib/ecore_drm/ecore_drm_fb.c @@ -40,6 +40,7 @@ _ecore_drm_fb_create2(int fd, Ecore_Drm_Fb *fb) { struct drm_mode_fb_cmd2 cmd; uint32_t hdls[4], pitches[4], offsets[4], fmt; + uint64_t modifiers[4]; #define _fourcc_code(a,b,c,d) \ ((uint32_t)(a) | ((uint32_t)(b) << 8) | \ @@ -49,6 +50,7 @@ _ecore_drm_fb_create2(int fd, Ecore_Drm_Fb *fb) hdls[0] = fb->hdl; pitches[0] = fb->stride; offsets[0] = 0; + modifiers[0] = 0; memset(&cmd, 0, sizeof(struct drm_mode_fb_cmd2)); cmd.fb_id = 0; @@ -59,6 +61,7 @@ _ecore_drm_fb_create2(int fd, Ecore_Drm_Fb *fb) memcpy(cmd.handles, hdls, 4 * sizeof(hdls[0])); memcpy(cmd.pitches, pitches, 4 * sizeof(pitches[0])); memcpy(cmd.offsets, offsets, 4 * sizeof(offsets[0])); + memcpy(cmd.modifier, modifiers, 4 * sizeof(modifiers[0])); if (drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &cmd)) return EINA_FALSE; --
[EGIT] [tools/enventor] master 01/01: status: adjust stats msg idle time.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=1c21a8538ff0a445fb8f6380685e2418ac1e8280 commit 1c21a8538ff0a445fb8f6380685e2418ac1e8280 Author: Hermet Park Date: Wed Apr 27 00:03:25 2016 +0900 status: adjust stats msg idle time. as well as some messages. --- data/themes/default/layout_common.edc | 2 +- src/bin/live_edit.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/themes/default/layout_common.edc b/data/themes/default/layout_common.edc index 236fd42..2f2f26d 100644 --- a/data/themes/default/layout_common.edc +++ b/data/themes/default/layout_common.edc @@ -2506,7 +2506,7 @@ group { name: "statusbar_layout"; program { name: "info_msg_idle"; action: STATE_SET "show" 0.0; target: "elm.text.info_msg"; - transition: LINEAR 2; + transition: LINEAR 3.5; after: "info_msg_hide"; } program { name: "info_msg_hide"; diff --git a/src/bin/live_edit.c b/src/bin/live_edit.c index 5c6c9f4..b3e8b71 100644 --- a/src/bin/live_edit.c +++ b/src/bin/live_edit.c @@ -1010,7 +1010,7 @@ live_btn_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED, live_edit_layer_set(ld); - stats_info_msg_update(_("Double click the part to confirm. (Esc = cancel)")); + stats_info_msg_update(_("Double click part to confirm. (Esc = cancel)")); } static Evas_Object * --
[EGIT] [website/www-content] master 01/01: Wiki page e-0.21.0-alpha-release changed with summary [] by Mike Blumenkrantz
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=3661c32437b3a0914b3371acf87f23d842738e1b commit 3661c32437b3a0914b3371acf87f23d842738e1b Author: Mike Blumenkrantz Date: Tue Apr 26 08:09:36 2016 -0700 Wiki page e-0.21.0-alpha-release changed with summary [] by Mike Blumenkrantz --- pages/news/e-0.21.0-alpha-release.txt | 44 +-- 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/pages/news/e-0.21.0-alpha-release.txt b/pages/news/e-0.21.0-alpha-release.txt index 6b57ad6..03babb7 100644 --- a/pages/news/e-0.21.0-alpha-release.txt +++ b/pages/news/e-0.21.0-alpha-release.txt @@ -1,21 +1,41 @@ -=== Enlightenment DR 0.21.0-alpha Release === - * //2016-04-12 - by Mike// - -Highlights: - * Greatly improved Wayland support - * New gadget infrastructure - * Wizard improvements - * Video backgrounds +=== Enlightenment DR 0.20.7 Release === + * //2016-04-26 - by zmike// + +[[ https://git.enlightenment.org/core/enlightenment.git/tree/NEWS?h=v0.20.7 | Changes ]] + +Tickets addressed: + * https://phab.enlightenment.org/T1759 + * https://phab.enlightenment.org/T2735 + * https://phab.enlightenment.org/T2757 + * https://phab.enlightenment.org/T2874 + * https://phab.enlightenment.org/T3139 + * https://phab.enlightenment.org/T3157 + * https://phab.enlightenment.org/T3238 + * https://phab.enlightenment.org/T3297 + * https://phab.enlightenment.org/T3338 + * https://phab.enlightenment.org/T3339 + * https://phab.enlightenment.org/T3347 + * https://phab.enlightenment.org/T3369 + * https://phab.enlightenment.org/T3404 + * https://phab.enlightenment.org/T3412 + * https://phab.enlightenment.org/T3415 + * https://phab.enlightenment.org/T3426 + * https://phab.enlightenment.org/T3428 + * https://phab.enlightenment.org/T3435 + * https://phab.enlightenment.org/T3444 + * https://phab.enlightenment.org/T3461 + * https://phab.enlightenment.org/T3475 + * https://phab.enlightenment.org/T3507 As always, stay tuned to the latest infrequent E updates on the [[ http://e.zmike.ninja|release blog]]. == Download == ^ ** LINK ** ^ ** SHA256 ** ^ -| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.0-alpha.tar.gz | Enlightenment DR 0.21.0-alpha GZIP]]| aeda670eecdfde161171c472c8a358629638f7877afe14e60ff7fab71b998608 | -| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.0-alpha.tar.xz | Enlightenment DR 0.21.0-alpha XZ]] | e3dab3f72194132c51993b6f81a391dac1c1048873e7f6c031312448bb237217 | +| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.20.7.tar.gz | Enlightenment DR 0.20.7 GZIP]]| 5d801d7a831d450b8cb1fd36fcd4cb2d1ed92a43e328f915dbcb9cdd99e2e34a | +| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.20.7.tar.xz | Enlightenment DR 0.20.7 XZ]] | 7cdee85928488bdeb07ab22f31c1aaf58e27ca365d327968cfed6a5f83ade181 | -//Artisinally composited pixmaps for your desktop.// +**Enlightenment:** for when you might otherwise find yourself being //too// productive. == Building and Dependencies == @@ -26,7 +46,7 @@ If you have an existing EFL or Elementary install, you may wish to delete its he - [[https://git.enlightenment.org/core/emotion_generic_players.git/tree/README | Emotion generic players]] - [[https://git.enlightenment.org/core/evas_generic_loaders.git/tree/README | Evas generic loaders]] -**Note:** E21 depends on EFL **v1.17** or newer for X11 compositing and 1.18 for Wayland support. +**Note:** E20 depends on EFL **v1.15.2** or newer for X11 compositing and 1.17 for Wayland support. {{:blank.png?nolink&100|}} ~~DISCUSSIONS~~ --
[EGIT] [website/www-content] master 01/01: Wiki page e-0.21.0-alpha-release changed with summary [] by Mike Blumenkrantz
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=6ceb08d86fae09dc89b6b5927344707fc485eee1 commit 6ceb08d86fae09dc89b6b5927344707fc485eee1 Author: Mike Blumenkrantz Date: Tue Apr 26 08:13:07 2016 -0700 Wiki page e-0.21.0-alpha-release changed with summary [] by Mike Blumenkrantz --- pages/news/e-0.21.0-alpha-release.txt | 44 ++- 1 file changed, 12 insertions(+), 32 deletions(-) diff --git a/pages/news/e-0.21.0-alpha-release.txt b/pages/news/e-0.21.0-alpha-release.txt index 03babb7..6b57ad6 100644 --- a/pages/news/e-0.21.0-alpha-release.txt +++ b/pages/news/e-0.21.0-alpha-release.txt @@ -1,41 +1,21 @@ -=== Enlightenment DR 0.20.7 Release === - * //2016-04-26 - by zmike// - -[[ https://git.enlightenment.org/core/enlightenment.git/tree/NEWS?h=v0.20.7 | Changes ]] - -Tickets addressed: - * https://phab.enlightenment.org/T1759 - * https://phab.enlightenment.org/T2735 - * https://phab.enlightenment.org/T2757 - * https://phab.enlightenment.org/T2874 - * https://phab.enlightenment.org/T3139 - * https://phab.enlightenment.org/T3157 - * https://phab.enlightenment.org/T3238 - * https://phab.enlightenment.org/T3297 - * https://phab.enlightenment.org/T3338 - * https://phab.enlightenment.org/T3339 - * https://phab.enlightenment.org/T3347 - * https://phab.enlightenment.org/T3369 - * https://phab.enlightenment.org/T3404 - * https://phab.enlightenment.org/T3412 - * https://phab.enlightenment.org/T3415 - * https://phab.enlightenment.org/T3426 - * https://phab.enlightenment.org/T3428 - * https://phab.enlightenment.org/T3435 - * https://phab.enlightenment.org/T3444 - * https://phab.enlightenment.org/T3461 - * https://phab.enlightenment.org/T3475 - * https://phab.enlightenment.org/T3507 +=== Enlightenment DR 0.21.0-alpha Release === + * //2016-04-12 - by Mike// + +Highlights: + * Greatly improved Wayland support + * New gadget infrastructure + * Wizard improvements + * Video backgrounds As always, stay tuned to the latest infrequent E updates on the [[ http://e.zmike.ninja|release blog]]. == Download == ^ ** LINK ** ^ ** SHA256 ** ^ -| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.20.7.tar.gz | Enlightenment DR 0.20.7 GZIP]]| 5d801d7a831d450b8cb1fd36fcd4cb2d1ed92a43e328f915dbcb9cdd99e2e34a | -| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.20.7.tar.xz | Enlightenment DR 0.20.7 XZ]] | 7cdee85928488bdeb07ab22f31c1aaf58e27ca365d327968cfed6a5f83ade181 | +| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.0-alpha.tar.gz | Enlightenment DR 0.21.0-alpha GZIP]]| aeda670eecdfde161171c472c8a358629638f7877afe14e60ff7fab71b998608 | +| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.0-alpha.tar.xz | Enlightenment DR 0.21.0-alpha XZ]] | e3dab3f72194132c51993b6f81a391dac1c1048873e7f6c031312448bb237217 | -**Enlightenment:** for when you might otherwise find yourself being //too// productive. +//Artisinally composited pixmaps for your desktop.// == Building and Dependencies == @@ -46,7 +26,7 @@ If you have an existing EFL or Elementary install, you may wish to delete its he - [[https://git.enlightenment.org/core/emotion_generic_players.git/tree/README | Emotion generic players]] - [[https://git.enlightenment.org/core/evas_generic_loaders.git/tree/README | Evas generic loaders]] -**Note:** E20 depends on EFL **v1.15.2** or newer for X11 compositing and 1.17 for Wayland support. +**Note:** E21 depends on EFL **v1.17** or newer for X11 compositing and 1.18 for Wayland support. {{:blank.png?nolink&100|}} ~~DISCUSSIONS~~ --
[EGIT] [tools/enventor] master 01/01: colorpalette: remove fixed warnings.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=8c6da49ae1b44e671c877b6ca725db43be048bcb commit 8c6da49ae1b44e671c877b6ca725db43be048bcb Author: Hermet Park Date: Wed Apr 27 00:06:25 2016 +0900 colorpalette: remove fixed warnings. --- data/themes/default/layout_common.edc | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/data/themes/default/layout_common.edc b/data/themes/default/layout_common.edc index 2f2f26d..d5ce082 100644 --- a/data/themes/default/layout_common.edc +++ b/data/themes/default/layout_common.edc @@ -1768,7 +1768,7 @@ group { name: "colorselector_layout"; spacer { "vertical_padding"; scale: 1; desc { -fixed: 1 0; +fixed: 1 1; align: 0.0 0.5; min: 7 0; rel1.to_x: "elm.swallow.colorselector"; @@ -1835,6 +1835,7 @@ group { name: "colorselector_layout"; align: 0.0 0.0; min: 15 20; max: 15 20; +fixed: 1 1; rel1.to_x: "vertical_padding"; rel1.to_y: "inputs_padding"; rel2.to_x: "vertical_padding"; @@ -1855,6 +1856,7 @@ group { name: "colorselector_layout"; align: 0.0 0.0; min: 15 20; max: 15 20; +fixed: 1 1; rel1.to_x: "vertical_padding"; rel1.to_y: "elm.text.red"; rel2.to_x: "vertical_padding"; @@ -1875,6 +1877,7 @@ group { name: "colorselector_layout"; align: 0.0 0.0; min: 15 20; max: 15 20; +fixed: 1 1; rel1.to_x: "vertical_padding"; rel1.to_y: "elm.text.green"; rel2.to_x: "vertical_padding"; @@ -1895,6 +1898,7 @@ group { name: "colorselector_layout"; align: 0.0 0.0; min: 15 20; max: 15 20; +fixed: 1 1; rel1.to_x: "vertical_padding"; rel1.to_y: "elm.text.blue"; rel2.to_x: "vertical_padding"; --
[EGIT] [website/www-content] master 01/01: Wiki page e20_7_release changed with summary [created] by Mike Blumenkrantz
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=c2f3643328936c4fc8df148f6f236c08598604cc commit c2f3643328936c4fc8df148f6f236c08598604cc Author: Mike Blumenkrantz Date: Tue Apr 26 08:18:26 2016 -0700 Wiki page e20_7_release changed with summary [created] by Mike Blumenkrantz --- pages/news/e20_7_release.txt | 52 1 file changed, 52 insertions(+) diff --git a/pages/news/e20_7_release.txt b/pages/news/e20_7_release.txt new file mode 100644 index 000..03babb7 --- /dev/null +++ b/pages/news/e20_7_release.txt @@ -0,0 +1,52 @@ +=== Enlightenment DR 0.20.7 Release === + * //2016-04-26 - by zmike// + +[[ https://git.enlightenment.org/core/enlightenment.git/tree/NEWS?h=v0.20.7 | Changes ]] + +Tickets addressed: + * https://phab.enlightenment.org/T1759 + * https://phab.enlightenment.org/T2735 + * https://phab.enlightenment.org/T2757 + * https://phab.enlightenment.org/T2874 + * https://phab.enlightenment.org/T3139 + * https://phab.enlightenment.org/T3157 + * https://phab.enlightenment.org/T3238 + * https://phab.enlightenment.org/T3297 + * https://phab.enlightenment.org/T3338 + * https://phab.enlightenment.org/T3339 + * https://phab.enlightenment.org/T3347 + * https://phab.enlightenment.org/T3369 + * https://phab.enlightenment.org/T3404 + * https://phab.enlightenment.org/T3412 + * https://phab.enlightenment.org/T3415 + * https://phab.enlightenment.org/T3426 + * https://phab.enlightenment.org/T3428 + * https://phab.enlightenment.org/T3435 + * https://phab.enlightenment.org/T3444 + * https://phab.enlightenment.org/T3461 + * https://phab.enlightenment.org/T3475 + * https://phab.enlightenment.org/T3507 + +As always, stay tuned to the latest infrequent E updates on the [[ http://e.zmike.ninja|release blog]]. + +== Download == + +^ ** LINK ** ^ ** SHA256 ** ^ +| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.20.7.tar.gz | Enlightenment DR 0.20.7 GZIP]]| 5d801d7a831d450b8cb1fd36fcd4cb2d1ed92a43e328f915dbcb9cdd99e2e34a | +| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.20.7.tar.xz | Enlightenment DR 0.20.7 XZ]] | 7cdee85928488bdeb07ab22f31c1aaf58e27ca365d327968cfed6a5f83ade181 | + +**Enlightenment:** for when you might otherwise find yourself being //too// productive. + +== Building and Dependencies == + +If you have an existing EFL or Elementary install, you may wish to delete its header files and libraries before compiling and installing to avoid possible conflicts during compilation. Please compile the dependencies in the following order (click for README): + + - [[https://git.enlightenment.org/core/efl.git/tree/README | EFL]] + - [[https://git.enlightenment.org/core/elementary.git/tree/README | Elementary]] + - [[https://git.enlightenment.org/core/emotion_generic_players.git/tree/README | Emotion generic players]] + - [[https://git.enlightenment.org/core/evas_generic_loaders.git/tree/README | Evas generic loaders]] + +**Note:** E20 depends on EFL **v1.15.2** or newer for X11 compositing and 1.17 for Wayland support. + +{{:blank.png?nolink&100|}} +~~DISCUSSIONS~~ --
[EGIT] [core/enlightenment] enlightenment-0.20 06/140: run focus-out and mouse-out wayland client callbacks for deleted clients
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=5d64676bd08100a2929acab798d4cdf01c03467b commit 5d64676bd08100a2929acab798d4cdf01c03467b Author: Mike Blumenkrantz Date: Thu Mar 10 14:43:37 2016 -0500 run focus-out and mouse-out wayland client callbacks for deleted clients this fixes a number of issues caused by clients not cleaning up on deletion ref 3e9029ea08c14135f68693a872c1d23fecdec3d8 #YouAlwaysRememberTheFirstTimeYouBorkedTheCompositor --- src/bin/e_comp_wl.c | 22 -- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index e5be0e4..6653ba8 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -200,7 +200,6 @@ _e_comp_wl_evas_cb_mouse_out(void *data, Evas *evas EINA_UNUSED, Evas_Object *ob uint32_t serial; if (!(ec = data)) return; - if (e_object_is_del(E_OBJECT(ec))) return; if (ec->cur_mouse_action) return; /* FIXME? this is a hack to just reset the cursor whenever we mouse out. not sure if accurate */ { @@ -519,15 +518,11 @@ _e_comp_wl_evas_cb_focus_in(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj static void _e_comp_wl_evas_cb_focus_out(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) { - E_Client *ec; + E_Client *ec = data; struct wl_resource *res; uint32_t serial, *k; - Eina_List *l, *ll; double t; - if (!(ec = data)) return; - if (e_object_is_del(E_OBJECT(ec))) return; - E_FREE_FUNC(ec->comp_data->on_focus_timer, ecore_timer_del); /* lower client priority */ @@ -539,16 +534,18 @@ _e_comp_wl_evas_cb_focus_out(void *data, Evas *evas EINA_UNUSED, Evas_Object *ob if (!eina_list_count(e_comp_wl->kbd.resources)) return; /* send keyboard_leave to all keyboard resources */ - 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 (!e_object_is_del(data)) { +serial = wl_display_next_serial(e_comp_wl->wl.disp); +t = ecore_time_unix_get(); + } + EINA_LIST_FREE(e_comp_wl->kbd.focused, res) + { +if (e_object_is_del(data)) continue; wl_array_for_each(k, &e_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); -e_comp_wl->kbd.focused = - eina_list_remove_list(e_comp_wl->kbd.focused, l); } } @@ -2245,9 +2242,6 @@ _e_comp_wl_client_cb_del(void *data EINA_UNUSED, E_Client *ec) /* make sure this is a wayland client */ if (e_pixmap_type_get(ec->pixmap) != E_PIXMAP_TYPE_WL) return; - /* remove focus timer */ - E_FREE_FUNC(ec->comp_data->on_focus_timer, ecore_timer_del); - /* remove sub list */ EINA_LIST_FREE(ec->comp_data->sub.list, subc) subc->comp_data->sub.data->parent = NULL; --
[EGIT] [core/enlightenment] enlightenment-0.20 07/140: reject attempts to focus deleted comp objects
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=e2cdc28ec0a0825132ef04d70c2aa289b966c1c5 commit e2cdc28ec0a0825132ef04d70c2aa289b966c1c5 Author: Mike Blumenkrantz Date: Thu Mar 10 15:18:19 2016 -0500 reject attempts to focus deleted comp objects --- src/bin/e_comp_object.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index f0f4a44..6f20a17 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -1680,7 +1680,10 @@ _e_comp_intercept_focus(void *data, Evas_Object *obj, Eina_Bool focus) } if (focus && ec->lock_focus_out) return; if (e_object_is_del(E_OBJECT(ec)) && focus) - CRI("CAN'T FOCUS DELETED CLIENT!"); + { +CRI("CAN'T FOCUS DELETED CLIENT!"); +return; + } /* filter focus setting based on current state */ if (focus) --
[EGIT] [core/enlightenment] enlightenment-0.20 02/140: remove show callback from evry win on deletion
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=e5d9dbd4ec522dd3cc5ca61542666ac5c14647b2 commit e5d9dbd4ec522dd3cc5ca61542666ac5c14647b2 Author: Mike Blumenkrantz Date: Wed Mar 9 14:25:16 2016 -0500 remove show callback from evry win on deletion ==22088== Invalid read of size 1 ==22088==at 0x2C9FE7B1: _evry_cb_show (evry.c:3046) ==22088==by 0x5BE9918: _eo_evas_object_cb (evas_callbacks.c:65) ==22088==by 0x69A16F4: _eo_base_event_callback_call (eo_base_class.c:715) ==22088==by 0x69A3041: eo_event_callback_call (in /usr/lib/libeo.so.1.17.99) ==22088==by 0x5BEA0B3: evas_object_event_callback_call (evas_callbacks.c:240) ==22088==by 0x5C2577C: evas_object_inform_call_show (evas_object_inform.c:12) ==22088==by 0x5C1ED24: _show (evas_object_main.c:1360) ==22088==by 0x5C1EADA: _evas_object_efl_gfx_base_visible_set (evas_object_main.c:1313) ==22088==by 0x575D80A: efl_gfx_visible_set (in /usr/lib/libefl.so.1.17.99) ==22088==by 0x5C1EA58: evas_object_show (evas_object_main.c:1291) ==22088==by 0x479FCF: _e_comp_intercept_show_helper (e_comp_object.c:1616) ==22088==by 0x47A02A: _e_comp_intercept_show (e_comp_object.c:1630) ==22088== Address 0x17621591 is 81 bytes inside a block of size 120 free'd ==22088==at 0x4C2AE6B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==22088==by 0x2C9F95A8: _evry_window_free (evry.c:993) ==22088==by 0x2C9F8065: evry_hide (evry.c:366) ==22088==by 0x2C9FB9A2: _evry_cb_key_down (evry.c:1926) ==22088==by 0x8F6ED4A: _ecore_call_handler_cb (ecore_private.h:316) ==22088==by 0x8F6FC92: _ecore_event_call (ecore_events.c:518) ==22088==by 0x8F7A15A: _ecore_main_loop_iterate_internal (ecore_main.c:2339) ==22088==by 0x8F784A8: ecore_main_loop_begin (ecore_main.c:1284) ==22088==by 0x4403F6: main (e_main.c:1087) ==22088== Block was alloc'd at ==22088==at 0x4C2BBD5: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==22088==by 0x2C9F8D7D: _evry_window_new (evry.c:758) ==22088==by 0x2C9F772D: evry_show (evry.c:177) ==22088==by 0x2C9F711C: _e_mod_run_defer_cb (e_mod_main.c:537) ==22088==by 0x8F75267: _ecore_call_task_cb (ecore_private.h:282) ==22088==by 0x8F7574E: _ecore_idle_enterer_call (ecore_idle_enterer.c:174) ==22088==by 0x8F7A05B: _ecore_main_loop_iterate_internal (ecore_main.c:2261) ==22088==by 0x8F784A8: ecore_main_loop_begin (ecore_main.c:1284) ==22088==by 0x4403F6: main (e_main.c:1087) --- src/modules/everything/evry.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/modules/everything/evry.c b/src/modules/everything/evry.c index eed3f8c..87f1d9b 100644 --- a/src/modules/everything/evry.c +++ b/src/modules/everything/evry.c @@ -989,6 +989,8 @@ static void _evry_window_free(Evry_Window *win) { evas_event_freeze(win->evas); + evas_object_event_callback_del(e_win_client_get(win->ewin)->frame, + EVAS_CALLBACK_SHOW, (Evas_Object_Event_Cb)_evry_cb_show); evas_object_del(win->ewin); free(win); } --
[EGIT] [core/enlightenment] enlightenment-0.20 03/140: don't add render update during ignored damage on deleted clients
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=40ebd1d16ef69dc14d626ed5847e7906a4e9f66a commit 40ebd1d16ef69dc14d626ed5847e7906a4e9f66a Author: Mike Blumenkrantz Date: Wed Mar 9 15:27:59 2016 -0500 don't add render update during ignored damage on deleted clients ref 1507f815a540df8c55b9dec88fe378ed6834879f --- src/bin/e_comp_object.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index d31c17f..5a0f761 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -3303,7 +3303,8 @@ e_comp_object_damage(Evas_Object *obj, int x, int y, int w, int h) if (cw->updates_full) { RENDER_DEBUG("IGNORED %p: %d,%d %dx%d", cw->ec, x, y, w, h); -e_comp_object_render_update_add(obj); +if (!e_object_is_del(E_OBJECT(cw->ec))) + e_comp_object_render_update_add(obj); return; } /* clip rect to client surface */ --
[EGIT] [core/enlightenment] enlightenment-0.20 04/140: check returned pixmap size before attempting to create updates tiler
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ec9776e5eb937746d7f9d53c3c36d13b6b9fd265 commit ec9776e5eb937746d7f9d53c3c36d13b6b9fd265 Author: Mike Blumenkrantz Date: Thu Mar 10 11:57:11 2016 -0500 check returned pixmap size before attempting to create updates tiler CID 1349419 --- src/bin/e_comp_object.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 5a0f761..f0f4a44 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -304,6 +304,7 @@ _e_comp_object_updates_init(E_Comp_Object *cw) pw = cw->ec->client.w, ph = cw->ec->client.h; if ((!pw) || (!ph)) e_pixmap_size_get(cw->ec->pixmap, &pw, &ph); + if ((!pw) || (!ph)) return; cw->updates = eina_tiler_new(pw, ph); if (cw->updates) eina_tiler_tile_size_set(cw->updates, 1, 1); --
[EGIT] [core/enlightenment] enlightenment-0.20 05/140: Fix wayland hide for internal windows
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ba88768344b3e1a213ae61f1e933b27792f90f19 commit ba88768344b3e1a213ae61f1e933b27792f90f19 Author: Derek Foreman Date: Thu Mar 10 11:11:20 2016 -0600 Fix wayland hide for internal windows We need to make sure we drop reference on all exit paths through the hide callback - somehow this only seemed to break internal windows. ref 65166c5a36669a2f903b24d9d91166308c103a17 --- src/bin/e_comp_wl.c | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 0e7879c..e5be0e4 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -140,9 +140,13 @@ _e_comp_wl_evas_cb_hide(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EIN if (!e_object_is_del(E_OBJECT(ec))) return; - e_comp_object_dirty(ec->frame); e_comp_object_damage(ec->frame, 0, 0, ec->w, ec->h); - if (!e_comp_object_render(ec->frame)) return; + e_comp_object_dirty(ec->frame); + if (!e_comp_object_render(ec->frame)) + { +e_object_unref(E_OBJECT(ec)); +return; + } if (!ec->on_post_updates) { ec->on_post_updates = EINA_TRUE; --
[EGIT] [core/enlightenment] enlightenment-0.20 01/140: unify client e_hints window size setting in move/resize callbacks
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=af46fe819014d5198bca1fdb2fd4b59446640340 commit af46fe819014d5198bca1fdb2fd4b59446640340 Author: Mike Blumenkrantz Date: Tue Mar 8 17:05:57 2016 -0500 unify client e_hints window size setting in move/resize callbacks --- src/bin/e_client.c | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 3daf625..7c5a7cb 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -1460,6 +1460,8 @@ _e_client_cb_evas_move(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UN if (ec->moving || (ecmove == ec)) _e_client_hook_call(E_CLIENT_HOOK_MOVE_UPDATE, ec); e_remember_update(ec); + if (ec->fullscreen || (ec->maximized & E_MAXIMIZE_DIRECTION)) + e_hints_window_size_set(ec); ec->pre_cb.x = x; ec->pre_cb.y = y; } @@ -1500,6 +1502,8 @@ _e_client_cb_evas_resize(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_ if (e_client_util_resizing_get(ec) || (ecresize == ec)) _e_client_hook_call(E_CLIENT_HOOK_RESIZE_UPDATE, ec); e_remember_update(ec); + if (ec->fullscreen || (ec->maximized & E_MAXIMIZE_DIRECTION)) + e_hints_window_size_set(ec); ec->pre_cb.w = w; ec->pre_cb.h = h; } @@ -3752,7 +3756,6 @@ e_client_maximize(E_Client *ec, E_Maximize max) } ec->saved.zone = ec->zone->num; - e_hints_window_size_set(ec); _e_client_maximize(ec, max); @@ -3872,7 +3875,6 @@ e_client_unmaximize(E_Client *ec, E_Maximize max) evas_object_smart_callback_call(ec->frame, "unmaximize", NULL); e_client_resize_limit(ec, &w, &h); e_client_util_move_resize_without_frame(ec, x, y, w, h); - e_hints_window_size_set(ec); } if (vert) ec->saved.h = ec->saved.y = 0; @@ -3933,7 +3935,6 @@ e_client_fullscreen(E_Client *ec, E_Fullscreen policy) ec->saved.w = w; ec->saved.h = h; } - e_hints_window_size_set(ec); ec->saved.layer = ec->layer; if (!e_config->allow_above_fullscreen) --
[EGIT] [core/enlightenment] enlightenment-0.20 12/140: remove eldbus init/shutdown calls from the codebase
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=69655795b142b772fbd5db5816d429a8d2a6c004 commit 69655795b142b772fbd5db5816d429a8d2a6c004 Author: Mike Blumenkrantz Date: Fri Mar 11 13:53:42 2016 -0500 remove eldbus init/shutdown calls from the codebase this is handled by e_msgbus --- src/bin/e_notification.c | 2 -- src/bin/e_sys.c| 2 -- src/modules/appmenu/e_mod_main.c | 2 -- src/modules/battery/e_mod_upower.c | 2 -- src/modules/bluez4/ebluez4.c | 3 --- src/modules/connman/e_mod_main.c | 2 -- src/modules/fileman/e_mod_dbus.c | 2 -- src/modules/music-control/e_mod_main.c | 2 -- src/modules/packagekit/e_mod_packagekit.c | 2 -- src/modules/systray/e_mod_notifier_host_dbus.c | 2 -- src/modules/wizard/page_110.c | 5 - 11 files changed, 26 deletions(-) diff --git a/src/bin/e_notification.c b/src/bin/e_notification.c index 08883c8..305b5b7 100644 --- a/src/bin/e_notification.c +++ b/src/bin/e_notification.c @@ -193,7 +193,6 @@ e_notification_server_register(const E_Notification_Server_Info *server_info, E_ n_data = calloc(1, sizeof(Notification_Data)); EINA_SAFETY_ON_NULL_RETURN_VAL(n_data, EINA_FALSE); - eldbus_init(); n_data->conn = eldbus_connection_get(ELDBUS_CONNECTION_TYPE_SESSION); n_data->iface = eldbus_service_interface_register(n_data->conn, PATH, &desc); n_data->notify_cb = n_cb; @@ -212,7 +211,6 @@ e_notification_server_unregister(void) EINA_SAFETY_ON_NULL_RETURN(n_data); eldbus_service_interface_unregister(n_data->iface); eldbus_connection_unref(n_data->conn); - eldbus_shutdown(); free(n_data); n_data = NULL; } diff --git a/src/bin/e_sys.c b/src/bin/e_sys.c index cddd4e4..481e55b 100644 --- a/src/bin/e_sys.c +++ b/src/bin/e_sys.c @@ -176,7 +176,6 @@ e_sys_init(void) Eldbus_Connection *conn; Eldbus_Object *obj; - eldbus_init(); conn = eldbus_connection_get(ELDBUS_CONNECTION_TYPE_SYSTEM); obj = eldbus_object_get(conn, "org.freedesktop.login1", "/org/freedesktop/login1"); @@ -222,7 +221,6 @@ e_sys_shutdown(void) close(_e_sys_systemd_inhibit_fd); _e_sys_systemd_inhibit_fd = -1; } - eldbus_shutdown(); return 1; } diff --git a/src/modules/appmenu/e_mod_main.c b/src/modules/appmenu/e_mod_main.c index bac9de0..7f29c17 100644 --- a/src/modules/appmenu/e_mod_main.c +++ b/src/modules/appmenu/e_mod_main.c @@ -165,7 +165,6 @@ e_modapi_init(E_Module *m) appmenu_module = m; - eldbus_init(); ctxt->conn = eldbus_connection_get(ELDBUS_CONNECTION_TYPE_SESSION); event = ecore_event_handler_add(E_EVENT_CLIENT_FOCUS_IN, cb_focus_in, ctxt); @@ -200,7 +199,6 @@ e_modapi_shutdown(E_Module *m) appmenu_dbus_registrar_server_shutdown(ctxt); eldbus_connection_unref(ctxt->conn); - eldbus_shutdown(); free(ctxt); return 1; } diff --git a/src/modules/battery/e_mod_upower.c b/src/modules/battery/e_mod_upower.c index 8fd85fc..8ae4431 100644 --- a/src/modules/battery/e_mod_upower.c +++ b/src/modules/battery/e_mod_upower.c @@ -310,7 +310,6 @@ _battery_upower_start(void) { Eldbus_Object *obj; - eldbus_init(); conn = eldbus_connection_get(ELDBUS_CONNECTION_TYPE_SYSTEM); EINA_SAFETY_ON_NULL_RETURN_VAL(conn, 0); @@ -348,5 +347,4 @@ _battery_upower_stop(void) eldbus_proxy_unref(upower_proxy); eldbus_object_unref(obj); eldbus_connection_unref(conn); - eldbus_shutdown(); } diff --git a/src/modules/bluez4/ebluez4.c b/src/modules/bluez4/ebluez4.c index b7891d3..9b8252d 100644 --- a/src/modules/bluez4/ebluez4.c +++ b/src/modules/bluez4/ebluez4.c @@ -739,8 +739,6 @@ ebluez4_eldbus_init(void) ctxt = calloc(1, sizeof(Context)); - eldbus_init(); - ctxt->conn = eldbus_connection_get(ELDBUS_CONNECTION_TYPE_SYSTEM); obj = eldbus_object_get(ctxt->conn, BLUEZ_BUS, MANAGER_PATH); ctxt->man_proxy = eldbus_proxy_get(obj, MANAGER_INTERFACE); @@ -768,7 +766,6 @@ ebluez4_eldbus_shutdown(void) eldbus_connection_unref(ctxt->conn); free(ctxt); - eldbus_shutdown(); } void diff --git a/src/modules/connman/e_mod_main.c b/src/modules/connman/e_mod_main.c index 39395b4..48ab73e 100644 --- a/src/modules/connman/e_mod_main.c +++ b/src/modules/connman/e_mod_main.c @@ -635,7 +635,6 @@ e_modapi_init(E_Module *m) ctxt = E_NEW(E_Connman_Module_Context, 1); if (!ctxt) goto error_connman_context; - eldbus_init(); c = eldbus_connection_get(ELDBUS_CONNECTION_TYPE_SYSTEM); if (!c) goto error_dbus_bus_get; @@ -683,7 +682,6 @@ e_modapi_shutdown(E_Module *m) return 0; e_connman_system_shutdown(); - eldbus_shutdown(); _econnman_instances_free(ctxt); _econnman_configure_registry_unregister(); diff --git a/src/modules/fileman/e_mod_dbu
[EGIT] [core/enlightenment] enlightenment-0.20 08/140: make wayland client keyboard focus list pruning more robust
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=67153a06a2243e470cab7e75578aedc4a9c7866d commit 67153a06a2243e470cab7e75578aedc4a9c7866d Author: Mike Blumenkrantz Date: Thu Mar 10 15:18:47 2016 -0500 make wayland client keyboard focus list pruning more robust this should handle all possible cases where focused keyboard resources need to be removed from the global list --- src/bin/e_comp_wl.c | 49 +++-- 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 6653ba8..3b8a466 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -516,40 +516,52 @@ _e_comp_wl_evas_cb_focus_in(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj } static void -_e_comp_wl_evas_cb_focus_out(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) +_e_comp_wl_keyboard_leave(E_Client *ec) { - E_Client *ec = data; struct wl_resource *res; + struct wl_client *wc; + Eina_List *l, *ll; uint32_t serial, *k; double t; - E_FREE_FUNC(ec->comp_data->on_focus_timer, ecore_timer_del); - - /* lower client priority */ - if (!e_object_is_del(data)) - _e_comp_wl_client_priority_normal(ec); - - if (!ec->comp_data->surface) return; - if (!eina_list_count(e_comp_wl->kbd.resources)) return; + if (!ec->comp_data) return; + if (!ec->comp_data->surface) return; - /* send keyboard_leave to all keyboard resources */ - if (!e_object_is_del(data)) + wc = wl_resource_get_client(ec->comp_data->surface); + if (!e_object_is_del(E_OBJECT(ec))) { serial = wl_display_next_serial(e_comp_wl->wl.disp); t = ecore_time_unix_get(); } - EINA_LIST_FREE(e_comp_wl->kbd.focused, res) + EINA_LIST_FOREACH_SAFE(e_comp_wl->kbd.focused, l, ll, res) { -if (e_object_is_del(data)) continue; -wl_array_for_each(k, &e_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 (wl_resource_get_client(res) != wc) continue; +if (!e_object_is_del(E_OBJECT(ec))) + { + wl_array_for_each(k, &e_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); + } +e_comp_wl->kbd.focused = eina_list_remove_list(e_comp_wl->kbd.focused, l); } } static void +_e_comp_wl_evas_cb_focus_out(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) +{ + E_Client *ec = data; + + E_FREE_FUNC(ec->comp_data->on_focus_timer, ecore_timer_del); + + /* lower client priority */ + if (!e_object_is_del(data)) + _e_comp_wl_client_priority_normal(ec); + _e_comp_wl_keyboard_leave(ec); +} + +static void _e_comp_wl_evas_cb_restack(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { E_Client *sec, *ec = data; @@ -2251,6 +2263,7 @@ _e_comp_wl_client_cb_del(void *data EINA_UNUSED, E_Client *ec) ec->parent->lock_close = EINA_FALSE; ec->parent->modal = NULL; } + _e_comp_wl_keyboard_leave(ec); wl_signal_emit(&ec->comp_data->destroy_signal, &ec->comp_data->surface); --
[EGIT] [core/enlightenment] enlightenment-0.20 13/140: redo wizard's gl testing mechanism
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=3c5ce6a9d5bc00706e10e57940795ac33a3aca2d commit 3c5ce6a9d5bc00706e10e57940795ac33a3aca2d Author: Mike Blumenkrantz Date: Fri Mar 11 14:58:19 2016 -0500 redo wizard's gl testing mechanism Xorg.$.log is not a reliable source of information for a variety of reasons, using the readily-available evasgl is much safer and more portable --- src/modules/wizard/page_150.c | 77 +++ 1 file changed, 12 insertions(+), 65 deletions(-) diff --git a/src/modules/wizard/page_150.c b/src/modules/wizard/page_150.c index 5e89dfc..cf4ba08 100644 --- a/src/modules/wizard/page_150.c +++ b/src/modules/wizard/page_150.c @@ -1,88 +1,35 @@ /* Ask about compositing */ #include "e_wizard.h" +#include static int do_gl = 0; static int do_vsync = 0; static int disable_effects = 0; -static Eina_Bool gl_avail = EINA_FALSE; -static int -match_file_glob(FILE *f, const char *globbing) -{ - char buf[32768]; - int found = 0; - - while (fgets(buf, sizeof(buf), f)) - { -if (e_util_glob_match(buf, globbing)) - { - found = 1; - break; - } - } - fclose(f); - return found; -} - -static int -match_xorg_log(const char *globbing) -{ - FILE *f; - int i; - char buf[PATH_MAX]; - - for (i = 0; i < 5; i++) - { -snprintf(buf, sizeof(buf), "/var/log/Xorg.%i.log", i); -f = fopen(buf, "rb"); -if (f) - { - if (match_file_glob(f, globbing)) return 1; - } - } - return 0; -} E_API int wizard_page_show(E_Wizard_Page *pg) { Evas_Object *o, *of, *ob; - Ecore_Evas *ee; - -#ifndef HAVE_WAYLAND_ONLY - Ecore_X_Window_Attributes att; - - if (!ecore_x_composite_query()) return 0; - if (!ecore_x_damage_query()) return 0; - - memset((&att), 0, sizeof(Ecore_X_Window_Attributes)); - ecore_x_window_attributes_get(ecore_x_window_root_first_get(), &att); - if ((att.depth <= 8)) return 0; - - gl_avail = ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_OPENGL_X11); -#endif o = e_widget_list_add(pg->evas, 1, 0); e_wizard_title_set(_("Compositing")); of = e_widget_framelist_add(pg->evas, _("Settings"), 0); - if (gl_avail) + if (e_comp->gl) { -ee = ecore_evas_gl_x11_new(NULL, 0, 0, 0, 320, 240); -if (ee) +Evas_GL *gl; + +gl = evas_gl_new(e_comp->evas); +if (gl) { - ecore_evas_free(ee); - if ( - (match_xorg_log("*(II)*NVIDIA*: Creating default Display*")) || - (match_xorg_log("*(II)*intel*: Creating default Display*")) || - (match_xorg_log("*(II)*NOUVEAU*: Creating default Display*")) || - (match_xorg_log("*(II)*RADEON*: Creating default Display*")) - ) - { - do_gl = 1; - do_vsync = 1; - } + const char *str; + Evas_GL_API *glapi = evas_gl_api_get(gl); + str = (char*)glapi->glGetString(GL_RENDERER); + if (str && (!strcasestr(str, "llvmpipe"))) + do_gl = do_vsync = 1; + evas_gl_free(gl); } ob = e_widget_check_add(pg->evas, _("Hardware Accelerated (OpenGL)"), &(do_gl)); e_widget_framelist_object_append(of, ob); --
[EGIT] [core/enlightenment] enlightenment-0.20 21/140: add workaround for xwayland client bug
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=3829f2c10cad1a2b1254dcdabd6b3cf0a533afff commit 3829f2c10cad1a2b1254dcdabd6b3cf0a533afff Author: Mike Blumenkrantz Date: Sat Mar 12 15:43:39 2016 -0500 add workaround for xwayland client bug sigh --- src/bin/e_comp_x.c | 16 +++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c index 9076866..c2f8bc0 100644 --- a/src/bin/e_comp_x.c +++ b/src/bin/e_comp_x.c @@ -2175,7 +2175,21 @@ _e_comp_x_message(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_X_Event_Cl if (res) wc = wl_resource_get_user_data(res); if (wc) - e_comp_x_xwayland_client_setup(ec, wc); + { + if (wc->internal) + { + e_object_del(E_OBJECT(wc)); + e_object_del(E_OBJECT(ec)); + /* this is an xwayland bug. somehow the wrong surface is being passed + * and it's an internal surface--internal surfaces are NEVER + * xwayland clients. + * + * ever. + */ + return ECORE_CALLBACK_RENEW; + } + e_comp_x_xwayland_client_setup(ec, wc); + } else { ec->comp_data->surface_id = ev->data.l[0]; --
[EGIT] [core/enlightenment] enlightenment-0.20 19/140: calling dirty() on a comp object for a deleted client should not print an error
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=a30d043089a5114341b6207067d5b1d711a116d6 commit a30d043089a5114341b6207067d5b1d711a116d6 Author: Mike Blumenkrantz Date: Sat Mar 12 15:37:10 2016 -0500 calling dirty() on a comp object for a deleted client should not print an error --- src/bin/e_comp_object.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index c2794b2..0b97426 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -3641,7 +3641,8 @@ e_comp_object_dirty(Evas_Object *obj) } if (!dirty) { -ERR("ERROR FETCHING PIXMAP FOR %p", cw->ec); +if (!e_object_is_del(E_OBJECT(cw->ec))) + ERR("ERROR FETCHING PIXMAP FOR %p", cw->ec); return; } e_comp_object_native_surface_set(obj, e_comp->gl); --
[EGIT] [core/enlightenment] enlightenment-0.20 18/140: always send wl key releases if surface still exists
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=5bfcd6dd9863bc28249ee34028714bbecfd0c2f7 commit 5bfcd6dd9863bc28249ee34028714bbecfd0c2f7 Author: Mike Blumenkrantz Date: Sat Mar 12 12:40:39 2016 -0500 always send wl key releases if surface still exists fixes stuck keys for wl_clients with multiple surfaces --- src/bin/e_comp_wl.c | 18 ++ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 695f5e9..55e71f1 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -529,21 +529,15 @@ _e_comp_wl_keyboard_leave(E_Client *ec) if (!ec->comp_data->surface) return; wc = wl_resource_get_client(ec->comp_data->surface); - if (!e_object_is_del(E_OBJECT(ec))) - { -serial = wl_display_next_serial(e_comp_wl->wl.disp); -t = ecore_time_unix_get(); - } + 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; -if (!e_object_is_del(E_OBJECT(ec))) - { - wl_array_for_each(k, &e_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); - } +wl_array_for_each(k, &e_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); e_comp_wl->kbd.focused = eina_list_remove_list(e_comp_wl->kbd.focused, l); } } --
[EGIT] [core/enlightenment] enlightenment-0.20 11/140: remove library checks for a number of modules along with useless defines
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=5ef356b39f94516d901f05649bf0624120c59d10 commit 5ef356b39f94516d901f05649bf0624120c59d10 Author: Mike Blumenkrantz Date: Fri Mar 11 13:46:10 2016 -0500 remove library checks for a number of modules along with useless defines most of these date back from before efl was a unified tree or enlightenment itself could be optionally built with things like dbus support --- configure.ac | 115 +++ src/modules/Makefile_battery.mk | 7 +- src/modules/Makefile_bluez4.mk | 2 +- src/modules/Makefile_connman.mk | 2 +- src/modules/Makefile_music_control.mk| 2 +- src/modules/Makefile_notification.mk | 2 +- src/modules/Makefile_temperature.mk | 2 +- src/modules/Makefile_wizard.mk | 3 - src/modules/Makefile_wl_desktop_shell.mk | 4 +- src/modules/Makefile_wl_drm.mk | 2 +- src/modules/Makefile_wl_fb.mk| 2 +- src/modules/Makefile_wl_text_input.mk| 2 +- src/modules/Makefile_wl_weekeyboard.mk | 3 +- src/modules/Makefile_wl_wl.mk| 2 +- src/modules/battery/e_mod_config.c | 12 src/modules/battery/e_mod_main.c | 13 +--- src/modules/battery/e_mod_main.h | 2 - src/modules/wizard/page_110.c| 9 +-- 18 files changed, 41 insertions(+), 145 deletions(-) diff --git a/configure.ac b/configure.ac index ef0b8de..677c14c 100644 --- a/configure.ac +++ b/configure.ac @@ -587,19 +587,13 @@ EFL_WITH_BIN([eldbus], [eldbus_codegen], [eldbus-codegen]) AC_DEFINE(E_INTERNAL, 1, "This define can be used to wrap internal E stuff, as config.h isn't exported") -AM_CONDITIONAL(HAVE_BATTERY, false) -define([CHECK_MODULE_BATTERY], -[ - AC_E_CHECK_PKG(BATTERY, [ ecore >= $efl_version ecore-file >= $efl_version ecore-con >= $efl_version eina >= $efl_version ], [], [BATTERY=false]) -]) - have_openbsd="no" have_freebsd="no" BATTERY_LDFLAGS= case "$host_os" in darwin*) BATTERY_LDFLAGS="${cf_libs}" -BATTERY_CFLAGS="${BATTERY_CFLAGS} ${cf_cflags}" +BATTERY_CFLAGS="${cf_cflags}" ;; openbsd*) have_openbsd="yes" @@ -609,22 +603,11 @@ case "$host_os" in ;; esac +AC_SUBST([BATTERY_CFLAGS]) AC_SUBST([BATTERY_LDFLAGS]) AM_CONDITIONAL([HAVE_OPENBSD], [test "x${have_openbsd}" = "xyes"]) AM_CONDITIONAL([HAVE_FREEBSD], [test "x${have_freebsd}" = "xyes"]) -AM_CONDITIONAL(HAVE_TEMPERATURE, false) -define([CHECK_MODULE_TEMPERATURE], -[ - AC_E_CHECK_PKG(TEMPERATURE, [ ecore >= $efl_version ecore-file >= $efl_version eina >= $efl_version ], [], [TEMPERATURE=false]) -]) - -AM_CONDITIONAL(HAVE_MUSIC_CONTROL, false) -define([CHECK_MODULE_MUSIC_CONTROL], -[ - AC_E_CHECK_PKG(MUSIC_CONTROL, [ ecore >= $efl_version eina >= $efl_version eldbus ], [], [MUSIC_CONTROL=false]) -]) - ##have_exchange=no ##AC_ARG_ENABLE(exchange, ## AS_HELP_STRING([--disable-exchange], [disable Exchange support @<:@default=detect@:>@]), @@ -643,38 +626,6 @@ AM_CONDITIONAL(HAVE_EXCHANGE, false) ##]) -have_enotify=no -AM_CONDITIONAL([HAVE_ENOTIFY], [false]) -AC_ARG_ENABLE([enotify], - AS_HELP_STRING([--disable-enotify], [disable Enotify support @<:@default=detect@:>@]), - [e_cv_want_enotify=$enableval], - AC_CACHE_VAL([e_cv_want_enotify], [e_cv_want_enotify=yes]) -) -if test "x$e_cv_want_enotify" != "xno" ; then - AC_E_CHECK_PKG(ENOTIFY, [ eldbus >= $efl_version ], - [ -AC_DEFINE_UNQUOTED([HAVE_ENOTIFY], [1], [enable enotify]) - ], - [ -AC_MSG_NOTICE([enotify disabled]) -e_cv_want_enotify=no - ]) -else - AC_MSG_NOTICE([enotify disabled]) -e_cv_want_enotify=no -fi -AC_SUBST([ENOTIFY_CFLAGS]) -AC_SUBST([ENOTIFY_LIBS]) - -AM_CONDITIONAL(HAVE_NOTIFICATION, false) -define([CHECK_MODULE_NOTIFICATION], -[ - if test "x$e_cv_want_enotify" = "xno" ; then -NOTIFICATION=false - fi -]) - - AM_CONDITIONAL(HAVE_ALSA, false) AM_CONDITIONAL(HAVE_PULSE, false) define([CHECK_MODULE_MIXER], @@ -714,25 +665,6 @@ AC_SUBST(SHM_OPEN_LIBS) AC_SUBST([SOUND_CFLAGS]) AC_SUBST([SOUND_LIBS]) -AM_CONDITIONAL(HAVE_ECONNMAN, false) -AM_CONDITIONAL(HAVE_DUMMY, false) -define([CHECK_MODULE_CONNMAN], -[ - AC_E_CHECK_PKG(ECONNMAN, [ eldbus >= $efl_version ], [], [CONNMAN=false]) -dnl AC_E_CHECK_PKG(DUMMY, [ connman >= 1.0 ], [], [CONNMAN=false]) -]) -AC_SUBST([ECONNMAN_CFLAGS]) -AC_SUBST([ECONNMAN_LIBS]) - -AM_CONDITIONAL(HAVE_BLUEZ4, false) -AM_CONDITIONAL(HAVE_DUMMY, false) -define([CHECK_MODULE_BLUEZ4], -[ - AC_E_CHECK_PKG(BLUEZ4, [ eldbus ],) -]) -AC_SUBST([EBLUEZ4_CFLAGS]) -AC_SUBST([EBLUEZ4_LIBS]) - have_wayland_egl=no AC_ARG_ENABLE([wayland-egl], AS_HELP_STRING([--enable-wayland-egl],[enable wayland to render using EGL @<:@default=disabled@:>@]), @@ -745,6 +677,7 @@ if test "x${e_cv_want_wayland_only}" != "xno" ;then PKG_CHECK_MODULES([WAYLAND], [ecore-wl2 wa
[EGIT] [core/enlightenment] enlightenment-0.20 16/140: break out xwl init/shutdown into static functions for reuse internally
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=29f4c33e06dd8bacdb90bd284cfbb2183968ba59 commit 29f4c33e06dd8bacdb90bd284cfbb2183968ba59 Author: Mike Blumenkrantz Date: Sat Mar 12 11:15:42 2016 -0500 break out xwl init/shutdown into static functions for reuse internally calling modapi functions like this causes symbol collision and randomly calls corresponding functions for other modules --- src/modules/xwayland/e_mod_main.c | 36 +++- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/src/modules/xwayland/e_mod_main.c b/src/modules/xwayland/e_mod_main.c index 5f28e1e..17e1f23 100644 --- a/src/modules/xwayland/e_mod_main.c +++ b/src/modules/xwayland/e_mod_main.c @@ -8,9 +8,9 @@ EINTERN void dnd_init(void); EINTERN void dnd_shutdown(void); -E_API int e_modapi_shutdown(E_Module *m EINA_UNUSED); -E_API void *e_modapi_init(E_Module *m); +static E_Module *xwl_init(E_Module *m); +static void xwl_shutdown(void); /* local structures */ typedef struct _E_XWayland_Server E_XWayland_Server; @@ -259,8 +259,8 @@ static void xwayland_fatal(void *d EINA_UNUSED) { /* on xwayland fatal, attempt to restart it */ - e_modapi_shutdown(NULL); - e_modapi_init(NULL); + xwl_shutdown(); + xwl_init(NULL); } static void @@ -343,11 +343,8 @@ error_dialog() return EINA_FALSE; } -/* module functions */ -E_API E_Module_Api e_modapi = { E_MODULE_API_VERSION, "XWayland" }; - -E_API void * -e_modapi_init(E_Module *m) +static E_Module * +xwl_init(E_Module *m) { char disp[8]; @@ -417,16 +414,15 @@ e_modapi_init(E_Module *m) /* setup listener for SIGUSR1 */ exs->sig_hdlr = ecore_event_handler_add(ECORE_EVENT_SIGNAL_USER, _cb_signal_event, exs); - return m; } -E_API int -e_modapi_shutdown(E_Module *m EINA_UNUSED) +static void +xwl_shutdown(void) { char path[256]; - if (!exs) return 1; + if (!exs) return; dnd_shutdown(); unlink(exs->lock); @@ -444,6 +440,20 @@ e_modapi_shutdown(E_Module *m EINA_UNUSED) free(exs); e_util_env_set("DISPLAY", NULL); +} +/* module functions */ +E_API E_Module_Api e_modapi = { E_MODULE_API_VERSION, "XWayland" }; + +E_API void * +e_modapi_init(E_Module *m) +{ + return xwl_init(m); +} + +E_API int +e_modapi_shutdown(E_Module *m EINA_UNUSED) +{ + xwl_shutdown(); return 1; } --
[EGIT] [core/enlightenment] enlightenment-0.20 10/140: Free pixel data after taking a wayland screen shot
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=f6c71b781db265f4341e3f7ae63edf623af672d2 commit f6c71b781db265f4341e3f7ae63edf623af672d2 Author: Derek Foreman Date: Thu Mar 10 18:17:19 2016 -0600 Free pixel data after taking a wayland screen shot --- src/bin/e_comp_wl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 3b8a466..c2c3443 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -2170,6 +2170,7 @@ _e_comp_wl_screenshooter_cb_shoot(struct wl_client *client EINA_UNUSED, struct w wl_shm_buffer_begin_access(shm_buffer); memcpy(d, pixels, buffer->h * stride); wl_shm_buffer_end_access(shm_buffer); + free(pixels); screenshooter_send_done(resource); } --
[EGIT] [core/enlightenment] enlightenment-0.20 09/140: Fix internal window borders on 32-bit computers
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=f56bbf6e1afd1c61a25d9cb1095c24789f7ce3f5 commit f56bbf6e1afd1c61a25d9cb1095c24789f7ce3f5 Author: Derek Foreman Date: Thu Mar 10 15:42:59 2016 -0600 Fix internal window borders on 32-bit computers Our wayland window ids are 64 bit integers, we need to be careful about the data type on 32-bit machines where pointers are smaller than this. --- src/bin/e_pixmap.c | 2 +- src/bin/e_win.c| 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c index 555d4e7..c429d81 100644 --- a/src/bin/e_pixmap.c +++ b/src/bin/e_pixmap.c @@ -238,7 +238,7 @@ _e_pixmap_find(E_Pixmap_Type type, va_list *l) Ecore_X_Window xwin; #endif #ifdef HAVE_WAYLAND - intptr_t id; + int64_t id; #endif E_Pixmap *cp; diff --git a/src/bin/e_win.c b/src/bin/e_win.c index 51c21a4..018a887 100644 --- a/src/bin/e_win.c +++ b/src/bin/e_win.c @@ -71,7 +71,7 @@ _e_elm_win_trap_show(void *data, Evas_Object *o) E_Client *ec; Ecore_Window win; #ifdef HAVE_WAYLAND -uintptr_t wl_win_id; +int64_t wl_win_id; #endif E_Pixmap_Type type = E_PIXMAP_TYPE_X; --
[EGIT] [core/enlightenment] enlightenment-0.20 20/140: remove direct references to ec->comp_data in x11 compositor
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=47143ab35a173377153f9c242437f9014f862bab commit 47143ab35a173377153f9c242437f9014f862bab Author: Mike Blumenkrantz Date: Sat Mar 12 15:41:50 2016 -0500 remove direct references to ec->comp_data in x11 compositor this fixes a number of xwayland client issues --- src/bin/e_comp_x.c | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c index 5e1e6c0..9076866 100644 --- a/src/bin/e_comp_x.c +++ b/src/bin/e_comp_x.c @@ -975,10 +975,10 @@ _e_comp_x_client_hide(E_Client *ec) if ((!ec->iconic) && (!ec->override)) ecore_x_window_prop_card32_set(e_client_util_win_get(ec), E_ATOM_MAPPED, &visible, 1); - ec->comp_data->iconic = ec->iconic && (!e_comp_object_mirror_visibility_check(ec->frame)); - if (ec->unredirected_single || ec->comp_data->iconic) + _e_comp_x_client_data_get(ec)->iconic = ec->iconic && (!e_comp_object_mirror_visibility_check(ec->frame)); + if (ec->unredirected_single || _e_comp_x_client_data_get(ec)->iconic) ecore_x_window_hide(_e_comp_x_client_window_get(ec)); - if (ec->comp_data->iconic) + if (_e_comp_x_client_data_get(ec)->iconic) e_hints_window_iconic_set(ec); } @@ -1010,11 +1010,11 @@ _e_comp_x_client_show(E_Client *ec) ecore_x_window_shadow_tree_flush(); if (!_e_comp_x_client_data_get(ec)->need_reparent) ecore_x_window_show(win); - if (ec->unredirected_single || ec->comp_data->iconic) + if (ec->unredirected_single || _e_comp_x_client_data_get(ec)->iconic) { e_pixmap_clear(ec->pixmap); ecore_x_window_show(_e_comp_x_client_window_get(ec)); -ec->comp_data->iconic = 0; +_e_comp_x_client_data_get(ec)->iconic = 0; } if (!ec->override) e_hints_window_visible_set(ec); @@ -1183,7 +1183,7 @@ _e_comp_x_evas_mirror_hidden(void *data, Evas_Object *obj EINA_UNUSED, void *eve E_Client *ec = data; if (!_e_comp_x_client_data_get(ec)) return; - if ((!ec->iconic) || (!ec->comp_data->iconic)) return; + if ((!ec->iconic) || (!_e_comp_x_client_data_get(ec)->iconic)) return; _e_comp_x_client_hide(ec); } @@ -1193,7 +1193,7 @@ _e_comp_x_evas_mirror_visible(void *data, Evas_Object *obj EINA_UNUSED, void *ev E_Client *ec = data; if (!_e_comp_x_client_data_get(ec)) return; - if ((!ec->iconic) || ec->comp_data->iconic) return; + if ((!ec->iconic) || _e_comp_x_client_data_get(ec)->iconic) return; _e_comp_x_client_show(ec); } --
[EGIT] [core/enlightenment] enlightenment-0.20 15/140: don't add render updates for deleted clients on failed resize
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=5600aa605af7186ee0e8c831f98a05380a061042 commit 5600aa605af7186ee0e8c831f98a05380a061042 Author: Mike Blumenkrantz Date: Fri Mar 11 18:15:28 2016 -0500 don't add render updates for deleted clients on failed resize --- src/bin/e_comp_object.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 6f20a17..c2794b2 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -1124,6 +1124,7 @@ _e_comp_intercept_resize(void *data, Evas_Object *obj, int w, int h) (!e_pixmap_size_get(cw->ec->pixmap, &pw, &ph { if (e_comp->comp_type != E_PIXMAP_TYPE_X) return; +if (e_object_is_del(E_OBJECT(cw->ec))) return; /* client can't be resized if its pixmap isn't usable, try again */ e_pixmap_dirty(cw->ec->pixmap); e_comp_object_render_update_add(obj); --
[EGIT] [core/enlightenment] enlightenment-0.20 25/140: adjust wayland client coords by window_geometry during first surface commit
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=695a3a8d1759921129e436dbc594e36031fc6d1b commit 695a3a8d1759921129e436dbc594e36031fc6d1b Author: Mike Blumenkrantz Date: Tue Mar 15 16:12:05 2016 -0400 adjust wayland client coords by window_geometry during first surface commit fixes first window positioning --- src/bin/e_comp_wl.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index aaa36f7..387206e 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -1042,7 +1042,11 @@ _e_comp_wl_surface_state_commit(E_Client *ec, E_Comp_Wl_Surface_State *state) if (ec->changes.pos) e_comp_object_frame_xy_unadjust(ec->frame, ec->x, ec->y, &x, &y); else - x = ec->client.x, y = ec->client.y; + { + x = ec->client.x, y = ec->client.y; + if (ec->new_client) + x -= ec->comp_data->shell.window.x, y -= ec->comp_data->shell.window.y; + } if (ec->new_client) placed = ec->placed; --
[EGIT] [core/enlightenment] enlightenment-0.20 26/140: destroy seat resource when we get a release request
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=2e338e944cb131eaa2e663c2871264f0a2d433aa commit 2e338e944cb131eaa2e663c2871264f0a2d433aa Author: Chris Michael Date: Wed Mar 16 08:40:41 2016 -0400 destroy seat resource when we get a release request Signed-off-by: Chris Michael --- src/bin/e_comp_wl_input.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/e_comp_wl_input.c b/src/bin/e_comp_wl_input.c index fc7c642..3e1b009 100644 --- a/src/bin/e_comp_wl_input.c +++ b/src/bin/e_comp_wl_input.c @@ -238,9 +238,9 @@ _e_comp_wl_input_cb_touch_get(struct wl_client *client EINA_UNUSED, struct wl_re } static void -_e_comp_wl_input_cb_release(struct wl_client *client EINA_UNUSED, struct wl_resource *resource EINA_UNUSED) +_e_comp_wl_input_cb_release(struct wl_client *client EINA_UNUSED, struct wl_resource *resource) { - /* TODO: implement */ + wl_resource_destroy(resource); } static const struct wl_seat_interface _e_seat_interface = --
[EGIT] [core/enlightenment] enlightenment-0.20 24/140: unset solid drawing of opaque regions during comp object animations
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=b230940f4f6446c5fe7564abfe8e16f4d5f79d27 commit b230940f4f6446c5fe7564abfe8e16f4d5f79d27 Author: Mike Blumenkrantz Date: Mon Mar 14 14:46:37 2016 -0400 unset solid drawing of opaque regions during comp object animations this makes animations with transparency not look like giant black rectangles --- src/bin/e_comp_object.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 82e2834..01ec66d 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -727,6 +727,7 @@ _e_comp_object_animating_begin(E_Comp_Object *cw) e_comp->animating++; REFD(cw->ec, 2); e_object_ref(E_OBJECT(cw->ec)); +evas_object_image_border_center_fill_set(cw->obj, EVAS_BORDER_FILL_DEFAULT); } } @@ -740,6 +741,7 @@ _e_comp_object_animating_end(E_Comp_Object *cw) { e_comp->animating--; cw->showing = 0; + evas_object_image_border_center_fill_set(cw->obj, EVAS_BORDER_FILL_SOLID); UNREFD(cw->ec, 2); /* remove ref from animation start, account for possibility of deletion from unref */ return !!e_object_unref(E_OBJECT(cw->ec)); --
[EGIT] [core/enlightenment] enlightenment-0.20 17/140: remove maximize_pre flag from wl client comp_data
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=589c1598315e121da2bc2564efb91a34b52d71b6 commit 589c1598315e121da2bc2564efb91a34b52d71b6 Author: Mike Blumenkrantz Date: Sat Mar 12 11:18:10 2016 -0500 remove maximize_pre flag from wl client comp_data this breaks modification of maximized size for surfaces as well as animations fix T3297 partially reverts 0321fd690e6c231d14843785a0308e4e51e2c1e6 --- src/bin/e_comp_wl.c | 16 +--- src/bin/e_comp_wl.h | 1 - 2 files changed, 1 insertion(+), 16 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index c2c3443..695f5e9 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -654,8 +654,7 @@ _e_comp_wl_evas_cb_resize(void *data, Evas_Object *obj EINA_UNUSED, void *event e_comp_wl->resize.edges, x, y); } - else if ((!ec->fullscreen) && (!ec->maximized) && -(!ec->comp_data->maximize_pre)) + else _e_comp_wl_configure_send(ec, 1); } @@ -670,15 +669,6 @@ _e_comp_wl_evas_cb_state_update(void *data, Evas_Object *obj EINA_UNUSED, void * if (ec->comp_data->shell.configure_send) _e_comp_wl_configure_send(ec, 0); - ec->comp_data->maximize_pre = 0; -} - -static void -_e_comp_wl_evas_cb_maximize_pre(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) -{ - E_Client *ec = data; - - ec->comp_data->maximize_pre = 1; } static void @@ -807,10 +797,6 @@ _e_comp_wl_client_evas_init(E_Client *ec) _e_comp_wl_evas_cb_state_update, ec); evas_object_smart_callback_add(ec->frame, "unmaximize_done", _e_comp_wl_evas_cb_state_update, ec); -evas_object_smart_callback_add(ec->frame, "maximize_pre", - _e_comp_wl_evas_cb_maximize_pre, ec); -evas_object_smart_callback_add(ec->frame, "unmaximize_pre", - _e_comp_wl_evas_cb_maximize_pre, ec); evas_object_smart_callback_add(ec->frame, "fullscreen", _e_comp_wl_evas_cb_state_update, ec); evas_object_smart_callback_add(ec->frame, "unfullscreen", diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h index f28fd3f..0819278 100644 --- a/src/bin/e_comp_wl.h +++ b/src/bin/e_comp_wl.h @@ -294,7 +294,6 @@ struct _E_Comp_Wl_Client_Data Eina_Bool evas_init : 1; Eina_Bool set_win_type : 1; Eina_Bool frame_update : 1; - Eina_Bool maximize_pre : 1; Eina_Bool cursor : 1; }; --
[EGIT] [core/enlightenment] enlightenment-0.20 23/140: do not attempt to resize clients to 0x0 during res restore
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=8d626e490bd6cd589a7d5d6a593c6927d0c0be3b commit 8d626e490bd6cd589a7d5d6a593c6927d0c0be3b Author: Mike Blumenkrantz Date: Mon Mar 14 14:04:51 2016 -0400 do not attempt to resize clients to 0x0 during res restore ACK-- --- src/bin/e_client.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 7c5a7cb..1794376 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -3117,7 +3117,9 @@ e_client_res_change_geometry_restore(E_Client *ec) x = zx + zw - w; if ((y + h) > (zy + zh)) y = zy + zh - h; -evas_object_geometry_set(ec->frame, x, y, w, h); +evas_object_move(ec->frame, x, y); +if (w && h) + evas_object_resize(ec->frame, w, h); } memcpy(&ec->pre_res_change, &pre_res_change, sizeof(pre_res_change)); } --
[EGIT] [core/enlightenment] enlightenment-0.20 32/140: ignore deleted clients when reapplying zone geometry policy in canvas update
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=02c1a2db71a78064abc415cc82b0647ffef5ea7f commit 02c1a2db71a78064abc415cc82b0647ffef5ea7f Author: Mike Blumenkrantz Date: Thu Mar 17 14:08:23 2016 -0400 ignore deleted clients when reapplying zone geometry policy in canvas update this breaks the compositor! --- src/bin/e_comp_canvas.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/e_comp_canvas.c b/src/bin/e_comp_canvas.c index 15b361f..e620c7a 100644 --- a/src/bin/e_comp_canvas.c +++ b/src/bin/e_comp_canvas.c @@ -542,7 +542,7 @@ e_comp_canvas_update(void) * rearranges the order. */ EINA_INLIST_FOREACH(e_comp->layers[i].clients, ec) { - if (!e_client_util_ignored_get(ec)) + if ((!e_client_util_ignored_get(ec)) && (!e_object_is_del(E_OBJECT(ec tmp = eina_list_append(tmp, ec); } --
[EGIT] [core/enlightenment] enlightenment-0.20 27/140: do not reset the wizard got_desktops flag when setting the default system lang
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d9bd88d2f5da27e2a4779e10920a761f0d653ee4 commit d9bd88d2f5da27e2a4779e10920a761f0d653ee4 Author: Mike Blumenkrantz Date: Wed Mar 16 12:52:06 2016 -0400 do not reset the wizard got_desktops flag when setting the default system lang this does not trigger any efreet cache rebuilds and will result in the user being forced to sit through the full duration of the wait timer: currently 7.0s this gets triggered multiple times throughout the wizard. embarrassing.jpg --- src/modules/wizard/page_010.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/modules/wizard/page_010.c b/src/modules/wizard/page_010.c index c4f7c3a..ae2c286 100644 --- a/src/modules/wizard/page_010.c +++ b/src/modules/wizard/page_010.c @@ -232,7 +232,8 @@ wizard_page_hide(E_Wizard_Page *pg EINA_UNUSED) /* TODO: * This should be on lang select, * so if next page needs xdg we can't press next */ - e_wizard_xdg_desktops_reset(); + if (lang) + e_wizard_xdg_desktops_reset(); e_intl_language_set(e_config->language); e_wizard_labels_update(); return 1; --
[EGIT] [core/enlightenment] enlightenment-0.20 29/140: reduce wizard connman timeout timer to 0.5s
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ab0e48d2689706eadd55960ff13a97ade6f9b022 commit ab0e48d2689706eadd55960ff13a97ade6f9b022 Author: Mike Blumenkrantz Date: Wed Mar 16 14:32:15 2016 -0400 reduce wizard connman timeout timer to 0.5s dbus is not this slow. --- src/modules/wizard/page_110.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/wizard/page_110.c b/src/modules/wizard/page_110.c index 9ae5e73..0c995cb 100644 --- a/src/modules/wizard/page_110.c +++ b/src/modules/wizard/page_110.c @@ -133,7 +133,7 @@ wizard_page_show(E_Wizard_Page *pg) _check_connman_owner, pg); if (connman_timeout) ecore_timer_del(connman_timeout); -connman_timeout = ecore_timer_add(2.0, _connman_fail, pg); +connman_timeout = ecore_timer_add(0.5, _connman_fail, pg); have_connman = EINA_TRUE; e_wizard_button_next_enable_set(0); } --
[EGIT] [core/enlightenment] enlightenment-0.20 22/140: unify client post_updates management code into single function
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d10a03fcb2a39a611988eeca914431d316f172bf commit d10a03fcb2a39a611988eeca914431d316f172bf Author: Mike Blumenkrantz Date: Mon Mar 14 12:23:19 2016 -0400 unify client post_updates management code into single function --- src/bin/e_comp.c| 10 ++ src/bin/e_comp.h| 1 + src/bin/e_comp_object.c | 12 ++-- src/bin/e_comp_wl.c | 14 +++--- 4 files changed, 16 insertions(+), 21 deletions(-) diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index 4bce85d..0f9fbf1 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -1422,6 +1422,16 @@ e_comp_render_queue(void) } E_API void +e_comp_client_post_update_add(E_Client *ec) +{ + if (ec->on_post_updates) return; + ec->on_post_updates = EINA_TRUE; + e_comp->post_updates = eina_list_append(e_comp->post_updates, ec); + REFD(ec, 111); + e_object_ref(E_OBJECT(ec)); +} + +E_API void e_comp_shape_queue(void) { if ((e_comp->comp_type != E_PIXMAP_TYPE_X) && (!e_comp_util_has_x())) return; diff --git a/src/bin/e_comp.h b/src/bin/e_comp.h index 1f4f2d5..c391993 100644 --- a/src/bin/e_comp.h +++ b/src/bin/e_comp.h @@ -186,6 +186,7 @@ E_API E_Comp *e_comp_new(void); E_API int e_comp_internal_save(void); EINTERN int e_comp_shutdown(void); E_API void e_comp_render_queue(void); +E_API void e_comp_client_post_update_add(E_Client *ec); E_API void e_comp_shape_queue(void); E_API void e_comp_shape_queue_block(Eina_Bool block); E_API E_Comp_Config *e_comp_config_get(void); diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 0b97426..82e2834 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -901,10 +901,7 @@ _e_comp_object_pixels_get(void *data, Evas_Object *obj EINA_UNUSED) if (cw->native) { E_FREE_FUNC(cw->pending_updates, eina_tiler_free); -cw->ec->on_post_updates = EINA_TRUE; -e_comp->post_updates = eina_list_append(e_comp->post_updates, cw->ec); -REFD(cw->ec, 111); -e_object_ref(E_OBJECT(cw->ec)); +e_comp_client_post_update_add(cw->ec); } else if (e_comp_object_render(ec->frame)) { @@ -3785,12 +3782,7 @@ end: eina_iterator_free(it); E_FREE_FUNC(cw->pending_updates, eina_tiler_free); if (ret) - { -cw->ec->on_post_updates = EINA_TRUE; -e_comp->post_updates = eina_list_append(e_comp->post_updates, cw->ec); -REFD(cw->ec, 111); -e_object_ref(E_OBJECT(cw->ec)); - } + e_comp_client_post_update_add(cw->ec); return ret; } diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 55e71f1..aaa36f7 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -142,17 +142,9 @@ _e_comp_wl_evas_cb_hide(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EIN e_comp_object_damage(ec->frame, 0, 0, ec->w, ec->h); e_comp_object_dirty(ec->frame); - if (!e_comp_object_render(ec->frame)) - { -e_object_unref(E_OBJECT(ec)); -return; - } - if (!ec->on_post_updates) - { -ec->on_post_updates = EINA_TRUE; -e_comp->post_updates = eina_list_append(e_comp->post_updates, ec); - } - else e_object_unref(E_OBJECT(ec)); + if (e_comp_object_render(ec->frame)) + e_comp_client_post_update_add(ec); + e_object_unref(E_OBJECT(ec)); } static void --
[EGIT] [core/enlightenment] enlightenment-0.20 28/140: fix stringshare usage in wizard language page (010)
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=4c29688829daff9196e8684bebcc834b3d251458 commit 4c29688829daff9196e8684bebcc834b3d251458 Author: Mike Blumenkrantz Date: Wed Mar 16 13:01:09 2016 -0400 fix stringshare usage in wizard language page (010) lang is not stringshared, and if it were then add/ref should always be called before del --- src/modules/wizard/page_010.c | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/modules/wizard/page_010.c b/src/modules/wizard/page_010.c index ae2c286..eaeeb00 100644 --- a/src/modules/wizard/page_010.c +++ b/src/modules/wizard/page_010.c @@ -227,8 +227,7 @@ wizard_page_hide(E_Wizard_Page *pg EINA_UNUSED) { // evas_object_del(pg->data); /* special - language inits its stuff the moment it goes away */ - eina_stringshare_del(e_config->language); - e_config->language = eina_stringshare_ref(lang); + eina_stringshare_replace(&e_config->language, lang); /* TODO: * This should be on lang select, * so if next page needs xdg we can't press next */ @@ -243,8 +242,7 @@ E_API int wizard_page_apply(E_Wizard_Page *pg EINA_UNUSED) { // do this again as we want it to apply to the new profile - eina_stringshare_del(e_config->language); - e_config->language = eina_stringshare_ref(lang); + eina_stringshare_replace(&e_config->language, lang); e_intl_language_set(e_config->language); e_wizard_labels_update(); return 1; --
[EGIT] [core/enlightenment] enlightenment-0.20 30/140: always update saved coords for maximized/fullscreen clients on csd geom update
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=af1fa7e6e15d0273c11667a7ca4b922777e0c71b commit af1fa7e6e15d0273c11667a7ca4b922777e0c71b Author: Mike Blumenkrantz Date: Thu Mar 17 13:34:24 2016 -0400 always update saved coords for maximized/fullscreen clients on csd geom update this was causing clients to position themselves wrongly in some cases after removing the related states --- src/bin/e_comp_object.c | 9 +++-- 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 01ec66d..fee6c63 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -3008,12 +3008,9 @@ e_comp_object_frame_geometry_set(Evas_Object *obj, int l, int r, int t, int b) } else if (cw->ec->maximized || cw->ec->fullscreen) { -if (e_client_has_xwindow(cw->ec)) - { - cw->ec->saved.x += l - cw->client_inset.l; - cw->ec->saved.y += t - cw->client_inset.t; - } -else +cw->ec->saved.x += l - cw->client_inset.l; +cw->ec->saved.y += t - cw->client_inset.t; +if (!e_client_has_xwindow(cw->ec)) { cw->ec->saved.w -= ((l + r) - (cw->client_inset.l + cw->client_inset.r)); cw->ec->saved.h -= ((t + b) - (cw->client_inset.t + cw->client_inset.b)); --
[EGIT] [core/enlightenment] enlightenment-0.20 35/140: use zone geometry when clamping evry gadget popup to gadget's screen
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=cc8d773dfc4319edeecfff66469d7e2ddd562855 commit cc8d773dfc4319edeecfff66469d7e2ddd562855 Author: Mike Blumenkrantz Date: Fri Mar 18 13:47:00 2016 -0400 use zone geometry when clamping evry gadget popup to gadget's screen fix T3238 --- src/modules/everything/evry_gadget.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/everything/evry_gadget.c b/src/modules/everything/evry_gadget.c index 7c00f83..a59e5b3 100644 --- a/src/modules/everything/evry_gadget.c +++ b/src/modules/everything/evry_gadget.c @@ -336,10 +336,10 @@ _gadget_popup_show(Instance *inst) break; } - if (px + pw > inst->win->zone->w) + if (px + pw > inst->win->zone->x + inst->win->zone->w) x = inst->win->zone->w - pw; - if (py + ph > inst->win->zone->h) + if (py + ph > inst->win->zone->y + inst->win->zone->h) y = inst->win->zone->h - ph; evas_object_move(ewin, x, y); --
[EGIT] [core/enlightenment] enlightenment-0.20 31/140: do not update client coords on csd geom update if it would change the zone
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=57e60ac77bb2f86acecf510df51c7dabef1a3cd5 commit 57e60ac77bb2f86acecf510df51c7dabef1a3cd5 Author: Mike Blumenkrantz Date: Thu Mar 17 13:35:50 2016 -0400 do not update client coords on csd geom update if it would change the zone in the case where a client is at 0,0 relative to a zone, changing the coords in this case will result in the client moving out of the zone by the size of the csd --- src/bin/e_comp_object.c | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index fee6c63..7e174ea 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -3020,8 +3020,12 @@ e_comp_object_frame_geometry_set(Evas_Object *obj, int l, int r, int t, int b) { if ((calc || (!e_client_has_xwindow(cw->ec))) && cw->client_inset.calc) { - cw->ec->x -= l - cw->client_inset.l; - cw->ec->y -= t - cw->client_inset.t; + E_Zone *zone = e_comp_object_util_zone_get(obj); + + if (cw->ec->x != zone->x) + cw->ec->x -= l - cw->client_inset.l; + if (cw->ec->y != zone->y) + cw->ec->y -= t - cw->client_inset.t; } cw->ec->changes.pos = cw->ec->changes.size = 1; EC_CHANGED(cw->ec); --
[EGIT] [core/enlightenment] enlightenment-0.20 36/140: store (internal) elm win geometry when set prior to showing the win
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d624b4f4e4de12e3415144dc462df4fa8c225ae4 commit d624b4f4e4de12e3415144dc462df4fa8c225ae4 Author: Mike Blumenkrantz Date: Fri Mar 18 13:47:25 2016 -0400 store (internal) elm win geometry when set prior to showing the win this fixes the case where attempts to manipulate a window would fail prior to showing the window --- src/bin/e_win.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/src/bin/e_win.c b/src/bin/e_win.c index 018a887..2e0ba14 100644 --- a/src/bin/e_win.c +++ b/src/bin/e_win.c @@ -7,8 +7,10 @@ typedef struct _Elm_Win_Trap_Ctx { E_Client *client; E_Pointer *pointer; + int x, y, w, h; Eina_Bool centered : 1; Eina_Bool placed : 1; + Eina_Bool sized : 1; Eina_Bool internal_no_remember : 1; Eina_Bool internal_no_reopen : 1; Eina_Bool visible : 1; @@ -154,6 +156,8 @@ _e_elm_win_trap_show(void *data, Evas_Object *o) e_comp_object_frame_xy_adjust(ctx->client->frame, ctx->client->client.x, ctx->client->client.y, &ctx->client->x, &ctx->client->y); e_comp_object_frame_wh_adjust(ctx->client->frame, ctx->client->client.w, ctx->client->client.h, &ctx->client->w, &ctx->client->h); if (ctx->centered) e_comp_object_util_center(ctx->client->frame); + else if (ctx->placed) evas_object_move(o, ctx->x, ctx->y); + if (ctx->sized) evas_object_resize(o, ctx->w, ctx->h); return EINA_TRUE; } @@ -174,6 +178,7 @@ _e_elm_win_trap_move(void *data, Evas_Object *o, int x, int y) if ((x == ex) && (y == ey)) return EINA_FALSE; } ctx->placed = 1; + ctx->x = x, ctx->y = y; if (!ctx->client) return EINA_TRUE; if ((ctx->client->client.x != x) || (ctx->client->client.y != y)) e_client_util_move_without_frame(ctx->client, x, y); @@ -185,6 +190,8 @@ _e_elm_win_trap_resize(void *data, Evas_Object *o EINA_UNUSED, int w, int h) { Elm_Win_Trap_Ctx *ctx = data; EINA_SAFETY_ON_NULL_RETURN_VAL(ctx, EINA_TRUE); + ctx->sized = 1; + ctx->w = w, ctx->h = h; if (!ctx->client) return EINA_TRUE; e_comp_object_frame_wh_adjust(ctx->client->frame, w, h, &w, &h); e_client_resize_limit(ctx->client, &w, &h); --
[EGIT] [core/enlightenment] enlightenment-0.20 39/140: unset opaque region during comp object render if none exists
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=da00500c1133ba2c380676d536a63e42121ddf1c commit da00500c1133ba2c380676d536a63e42121ddf1c Author: Mike Blumenkrantz Date: Tue Mar 22 11:52:56 2016 -0400 unset opaque region during comp object render if none exists fixes case where opaque region has been unset after previously being set --- src/bin/e_comp_object.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 7e174ea..1b815f7 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -875,15 +875,15 @@ _e_comp_object_pixels_get(void *data, Evas_Object *obj EINA_UNUSED) bxx = pw - (bx + bxx), byy = ph - (by + byy); evas_object_image_border_set(cw->obj, bx, bxx, by, byy); } - else if (cw->client_inset.calc && (!cw->frame_object)) //CSD - { -bx = -cw->client_inset.l + 4, by = -cw->client_inset.t + 4; -bxx = -cw->client_inset.r, byy = -cw->client_inset.b; - } else { bx = by = bxx = byy = 0; evas_object_image_border_set(cw->obj, bx, bxx, by, byy); +if (cw->client_inset.calc && (!cw->frame_object)) //CSD + { + bx = -cw->client_inset.l + 4, by = -cw->client_inset.t + 4; + bxx = -cw->client_inset.r, byy = -cw->client_inset.b; + } } { Edje_Message_Int_Set *msg; --
[EGIT] [core/enlightenment] enlightenment-0.20 40/140: avoid null deref in during pager_plain dnd
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d7e22929c2308a799e9d72a620ed5a311d461ab8 commit d7e22929c2308a799e9d72a620ed5a311d461ab8 Author: Mike Blumenkrantz Date: Tue Mar 22 11:55:38 2016 -0400 avoid null deref in during pager_plain dnd CID 1237302 --- src/modules/pager_plain/e_mod_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/pager_plain/e_mod_main.c b/src/modules/pager_plain/e_mod_main.c index d6cb15c..77bb297 100644 --- a/src/modules/pager_plain/e_mod_main.c +++ b/src/modules/pager_plain/e_mod_main.c @@ -1881,10 +1881,10 @@ _pager_window_cb_mouse_move(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EI { pw->desk->pager->dragging = 1; edje_object_signal_emit(pw->desk->o_desk, "e,action,drag,in", "e"); + pw->desk->pager->active_drop_pd = pw->desk; } pw->drag.start = 0; e_comp_object_effect_clip(pw->client->frame); -pw->desk->pager->active_drop_pd = pw->desk; } /* dragging this win around inside the pager */ --
[EGIT] [core/enlightenment] enlightenment-0.20 33/140: hide wl clients before deleting them when surface is destroyed
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d6e31b30fe894819b733468829664c4a044e9bd9 commit d6e31b30fe894819b733468829664c4a044e9bd9 Author: Mike Blumenkrantz Date: Thu Mar 17 14:09:08 2016 -0400 hide wl clients before deleting them when surface is destroyed clients without hide animations will fail to run cleanup operations during hide if they are not marked as deleted --- src/bin/e_comp_wl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 387206e..61883b0 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -1438,8 +1438,8 @@ _e_comp_wl_surface_destroy(struct wl_resource *resource) if (!(ec = wl_resource_get_user_data(resource))) return; - evas_object_hide(ec->frame); e_object_del(E_OBJECT(ec)); + evas_object_hide(ec->frame); } static void --
[EGIT] [core/enlightenment] enlightenment-0.20 34/140: remove wl selection hacks from f0ba92d39e1f6631974d53100dcbb4cc040a8241
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=eb596299adcd059d9383b0278617e5aa138e6071 commit eb596299adcd059d9383b0278617e5aa138e6071 Author: Mike Blumenkrantz Date: Thu Mar 17 15:15:27 2016 -0400 remove wl selection hacks from f0ba92d39e1f6631974d53100dcbb4cc040a8241 https://gfycat.com/ChiefDeafeningGull --- src/bin/e_comp_wl_data.c | 13 - 1 file changed, 13 deletions(-) diff --git a/src/bin/e_comp_wl_data.c b/src/bin/e_comp_wl_data.c index a26f801..0e3e476 100644 --- a/src/bin/e_comp_wl_data.c +++ b/src/bin/e_comp_wl_data.c @@ -245,19 +245,6 @@ _e_comp_wl_data_device_selection_set(void *data EINA_UNUSED, E_Comp_Wl_Data_Sour sel_source = (E_Comp_Wl_Data_Source*)e_comp_wl->selection.data_source; - if ((sel_source) && - (e_comp_wl->selection.serial - serial < UINT32_MAX / 2)) - { -/* TODO: elm_entry is sending too many request on now, - * for those requests, selection.signal is being emitted also a lot. - * when it completes to optimize the entry, it should be checked more. - */ -if (e_comp_wl->clipboard.source) - wl_signal_emit(&e_comp_wl->selection.signal, e_comp->wl_comp_data); - -return; - } - if (sel_source) { if (sel_source->cancelled) --
[EGIT] [core/enlightenment] enlightenment-0.20 42/140: use snprintf for string handling in batget
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ffbe9de1ce82bbec9dad178c8e9c157589636129 commit ffbe9de1ce82bbec9dad178c8e9c157589636129 Author: Mike Blumenkrantz Date: Tue Mar 22 12:06:27 2016 -0400 use snprintf for string handling in batget CID 1039801 --- src/modules/battery/batget.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/modules/battery/batget.c b/src/modules/battery/batget.c index fa183a5..f6abd07 100644 --- a/src/modules/battery/batget.c +++ b/src/modules/battery/batget.c @@ -1025,8 +1025,7 @@ linux_acpi_init(void) char buf[PATH_MAX + 6]; FILE *f; - strcpy(buf, info->path); - strcat(buf, "/info"); + snprintf(buf, sizeof(buf), "%s/info", info->path); f = fopen(buf, "r"); if (f) { --
[EGIT] [core/enlightenment] enlightenment-0.20 43/140: rework systray theme applying code
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=9731acfe4a4988c1d64561ab7ab910715674ac0d commit 9731acfe4a4988c1d64561ab7ab910715674ac0d Author: Mike Blumenkrantz Date: Tue Mar 22 12:23:51 2016 -0400 rework systray theme applying code potentially the most overoptimized string handling code I've ever seen. CID 1039843 --- src/modules/systray/e_mod_main.c | 58 ++-- 1 file changed, 8 insertions(+), 50 deletions(-) diff --git a/src/modules/systray/e_mod_main.c b/src/modules/systray/e_mod_main.c index dfe230e..02e8bae 100644 --- a/src/modules/systray/e_mod_main.c +++ b/src/modules/systray/e_mod_main.c @@ -126,72 +126,30 @@ _systray_cb_mouse_down(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA static void _systray_theme(Evas_Object *o, const char *shelf_style, const char *gc_style) { - const char base_theme[] = "base/theme/modules/systray"; - const char *path = _systray_theme_path(); - char buf[128], *p; - size_t len, avail; - - len = eina_strlcpy(buf, _group_gadget, sizeof(buf)); - if (len >= sizeof(buf)) - goto fallback; - p = buf + len; - *p = '/'; - p++; - avail = sizeof(buf) - len - 2; + char buf[4096]; if (shelf_style && gc_style) { -size_t r; -r = snprintf(p, avail, "%s/%s", shelf_style, gc_style); -if (r < avail && e_theme_edje_object_set(o, base_theme, buf)) +snprintf(buf, sizeof(buf), "%s/%s/%s", _group_gadget, shelf_style, gc_style); +if (e_theme_edje_object_set(o, NULL, buf)) return; } if (shelf_style) { -size_t r; -r = eina_strlcpy(p, shelf_style, avail); -if (r < avail && e_theme_edje_object_set(o, base_theme, buf)) +snprintf(buf, sizeof(buf), "%s/%s", _group_gadget, shelf_style); +if (e_theme_edje_object_set(o, NULL, buf)) return; } if (gc_style) { -size_t r; -r = eina_strlcpy(p, gc_style, avail); -if (r < avail && e_theme_edje_object_set(o, base_theme, buf)) +snprintf(buf, sizeof(buf), "%s/%s", _group_gadget, gc_style); +if (e_theme_edje_object_set(o, NULL, buf)) return; } - if (e_theme_edje_object_set(o, base_theme, _group_gadget)) - return; - - if (shelf_style && gc_style) - { -size_t r; -r = snprintf(p, avail, "%s/%s", shelf_style, gc_style); -if (r < avail && edje_object_file_set(o, path, buf)) - return; - } - - if (shelf_style) - { -size_t r; -r = eina_strlcpy(p, shelf_style, avail); -if (r < avail && edje_object_file_set(o, path, buf)) - return; - } - - if (gc_style) - { -size_t r; -r = eina_strlcpy(p, gc_style, avail); -if (r < avail && edje_object_file_set(o, path, buf)) - return; - } - -fallback: - edje_object_file_set(o, path, _group_gadget); + e_theme_edje_object_set(o, NULL, _group_gadget); } static E_Gadcon_Client * --
[EGIT] [core/enlightenment] enlightenment-0.20 41/140: use eina_streq for e_util_binding_match() comparisons
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=8344b79020c7fe63d85cb64b5a49a57114331e76 commit 8344b79020c7fe63d85cb64b5a49a57114331e76 Author: Mike Blumenkrantz Date: Tue Mar 22 12:01:04 2016 -0400 use eina_streq for e_util_binding_match() comparisons optimizes what is likely a stringshare comparison as well as avoiding null derefs CID 1191998 --- src/bin/e_utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/e_utils.c b/src/bin/e_utils.c index add4d1f..63c337e 100644 --- a/src/bin/e_utils.c +++ b/src/bin/e_utils.c @@ -1176,7 +1176,7 @@ e_util_binding_match(const Eina_List *bindlist, Ecore_Event_Key *ev, unsigned in { if (bi != skip) { - if ((bi->modifiers == mod) && (!strcmp(bi->key, ev->key))) + if ((bi->modifiers == mod) && eina_streq(bi->key, ev->key)) return bi; } if (num) (*num)++; --
[EGIT] [core/enlightenment] enlightenment-0.20 38/140: cast eina_list_count() in flowlayout, not entire expression
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=fd2a30c767c334f48d4daacc3c51bd46a7b8ea25 commit fd2a30c767c334f48d4daacc3c51bd46a7b8ea25 Author: Mike Blumenkrantz Date: Tue Mar 22 11:51:09 2016 -0400 cast eina_list_count() in flowlayout, not entire expression CID 1267211 --- src/bin/e_flowlayout.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/e_flowlayout.c b/src/bin/e_flowlayout.c index c1b0a4e..535c2fb 100644 --- a/src/bin/e_flowlayout.c +++ b/src/bin/e_flowlayout.c @@ -233,7 +233,7 @@ e_flowlayout_pack_end(Evas_Object *obj, Evas_Object *child) sd->items = eina_list_append(sd->items, child); sd->changed = 1; if (sd->frozen <= 0) _e_flowlayout_smart_reconfigure(sd); - return (int)(eina_list_count(sd->items) - 1); + return (int)eina_list_count(sd->items) - 1; } E_API int --
[EGIT] [core/enlightenment] enlightenment-0.20 63/140: force keyboard modifier update on wl client focus-in
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=165f470d7cfd8de860158f8bd786b824468c25bd commit 165f470d7cfd8de860158f8bd786b824468c25bd Author: Mike Blumenkrantz Date: Thu Mar 31 11:13:37 2016 -0400 force keyboard modifier update on wl client focus-in ensure that clients always receive up-to-date modifiers when they get focus --- src/bin/e_comp_wl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index c55f8b1..c69b49b 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -468,6 +468,7 @@ _e_comp_wl_evas_cb_focus_in_timer(E_Client *ec) ec->comp_data->on_focus_timer = NULL; if (!e_comp_wl->kbd.focused) return EINA_FALSE; + e_comp_wl_input_keyboard_modifiers_update(); serial = wl_display_next_serial(e_comp_wl->wl.disp); t = ecore_time_unix_get(); EINA_LIST_FOREACH(e_comp_wl->kbd.focused, l, res) --
[EGIT] [core/enlightenment] enlightenment-0.20 61/140: remove old compositor reset code
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=2fdc1096c5471967afb1d762ee48e0706382bbbe commit 2fdc1096c5471967afb1d762ee48e0706382bbbe Author: Mike Blumenkrantz Date: Wed Mar 30 17:48:03 2016 -0400 remove old compositor reset code --- src/bin/e_comp_x.c | 6 -- src/bin/e_int_config_comp.c | 4 2 files changed, 10 deletions(-) diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c index a40dd42..93213cf 100644 --- a/src/bin/e_comp_x.c +++ b/src/bin/e_comp_x.c @@ -4976,9 +4976,6 @@ _e_comp_x_del(E_Comp *c) ecore_x_window_key_ungrab(c->root, "F", ECORE_EVENT_MODIFIER_SHIFT | ECORE_EVENT_MODIFIER_CTRL | ECORE_EVENT_MODIFIER_ALT, 0); - ecore_x_window_key_ungrab(c->root, "Home", ECORE_EVENT_MODIFIER_SHIFT | - ECORE_EVENT_MODIFIER_CTRL | - ECORE_EVENT_MODIFIER_ALT, 0); if (c->grabbed) { c->grabbed = 0; @@ -5318,9 +5315,6 @@ _e_comp_x_setup(Ecore_X_Window root, int w, int h) ecore_x_composite_redirect_subwindows(root, ECORE_X_COMPOSITE_UPDATE_MANUAL); - ecore_x_window_key_grab(root, "Home", ECORE_EVENT_MODIFIER_SHIFT | - ECORE_EVENT_MODIFIER_CTRL | - ECORE_EVENT_MODIFIER_ALT, 0); ecore_x_window_key_grab(root, "F", ECORE_EVENT_MODIFIER_SHIFT | ECORE_EVENT_MODIFIER_CTRL | ECORE_EVENT_MODIFIER_ALT, 0); diff --git a/src/bin/e_int_config_comp.c b/src/bin/e_int_config_comp.c index 07ee16b..ba4651d 100644 --- a/src/bin/e_int_config_comp.c +++ b/src/bin/e_int_config_comp.c @@ -601,10 +601,6 @@ _basic_create_widgets(E_Config_Dialog *cfd, e_widget_framelist_object_append(of, ob); ob = e_widget_radio_add(evas, _("OpenGL"), E_COMP_ENGINE_GL, rg); e_widget_framelist_object_append(of, ob); - ob = e_widget_label_add(evas, _("To reset compositor:")); - e_widget_framelist_object_append(of, ob); - ob = e_widget_label_add(evas, _("Ctrl+Alt+Shift+Home")); - e_widget_framelist_object_append(of, ob); e_widget_list_object_append(ol, of, 1, 0, 0.5); --
[EGIT] [core/enlightenment] enlightenment-0.20 57/140: selectively reject comp object signal emissions based on action_client state
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d546536c60f22da74919af835b2e3b826ddaac8a commit d546536c60f22da74919af835b2e3b826ddaac8a Author: Mike Blumenkrantz Date: Wed Mar 30 10:42:11 2016 -0400 selectively reject comp object signal emissions based on action_client state in the case where a mouse binding is active and a signal binding is triggered by the same mouse-up event which also ends the mouse binding, the deferred nature of edje emissions will result in the signal being received by the corresponding callback some time after the mouse-up event has been handled by the client and the mouse binding has ended to accurately handle these cases, signal bindings triggered in the same event loop in which a mouse binding has ended after a mouse-up must be rejected in order to enforce the compositor's mouse grab fix T3347 --- src/bin/e_comp_object.c | 11 +-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 1b815f7..fd26527 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -93,6 +93,8 @@ typedef struct _E_Comp_Object Evas_Native_Surface *ns; //for custom gl rendering + double action_client_loop_time; //loop time when client's action ended + unsigned int update_count; // how many updates have happened to this obj unsigned int opacity; // opacity set with _NET_WM_WINDOW_OPACITY @@ -343,8 +345,9 @@ _e_comp_object_cb_signal_bind(void *data, Evas_Object *obj EINA_UNUSED, const ch if (e_dnd_active()) return; #endif if (cw->ec->iconic || cw->ec->cur_mouse_action) return; - e_bindings_signal_handle(E_BINDING_CONTEXT_WINDOW, E_OBJECT(cw->ec), -emission, source); + if (!dblequal(cw->action_client_loop_time, ecore_loop_time_get())) + e_bindings_signal_handle(E_BINDING_CONTEXT_WINDOW, E_OBJECT(cw->ec), + emission, source); } / @@ -410,11 +413,15 @@ _e_comp_object_cb_mouse_up(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EIN Evas_Event_Mouse_Down *ev = event_info; E_Comp_Object *cw = data; E_Binding_Event_Mouse_Button ev2; + Eina_Bool acting; if (!cw->ec) return; if (e_client_action_get() && (e_client_action_get() != cw->ec)) return; e_bindings_evas_event_mouse_button_convert(ev, &ev2); + acting = !!cw->ec->cur_mouse_action; e_client_mouse_up(cw->ec, ev->button, &ev->output, &ev2); + if (acting && (!e_client_action_get())) + cw->action_client_loop_time = ecore_loop_time_get(); } /* handle evas mouse movement events on client object */ --
[EGIT] [core/enlightenment] enlightenment-0.20 47/140: e mod: cpufreq - handle the case where cpu has zero freqs - dont crash
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=586d1ac5057abfbc6224b706415e5944a3c863dd commit 586d1ac5057abfbc6224b706415e5944a3c863dd Author: Carsten Haitzler (Rasterman) Date: Thu Mar 24 12:17:35 2016 +0900 e mod: cpufreq - handle the case where cpu has zero freqs - dont crash it can be that if you remove setuid bits on cpufreq binary we can end up with zero freqs on bsd. this causes a crash. @fix --- src/modules/cpufreq/e_mod_main.c | 36 +--- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/src/modules/cpufreq/e_mod_main.c b/src/modules/cpufreq/e_mod_main.c index f6d0f1a..0d9d8f7 100644 --- a/src/modules/cpufreq/e_mod_main.c +++ b/src/modules/cpufreq/e_mod_main.c @@ -1040,22 +1040,28 @@ _cpufreq_face_update_available(Instance *inst) int i; unsigned int count; - count = eina_list_count(cpufreq_config->status->frequencies); - frequency_msg = malloc(sizeof(Edje_Message_Int_Set) + (count - 1) * sizeof(int)); - EINA_SAFETY_ON_NULL_RETURN(frequency_msg); - frequency_msg->count = count; - for (l = cpufreq_config->status->frequencies, i = 0; l; l = l->next, i++) - frequency_msg->val[i] = (long)l->data; - edje_object_message_send(inst->o_cpu, EDJE_MESSAGE_INT_SET, 1, frequency_msg); - free(frequency_msg); + if (cpufreq_config->status->frequencies) + { +count = eina_list_count(cpufreq_config->status->frequencies); +frequency_msg = malloc(sizeof(Edje_Message_Int_Set) + (count - 1) * sizeof(int)); +EINA_SAFETY_ON_NULL_RETURN(frequency_msg); +frequency_msg->count = count; +for (l = cpufreq_config->status->frequencies, i = 0; l; l = l->next, i++) + frequency_msg->val[i] = (long)l->data; +edje_object_message_send(inst->o_cpu, EDJE_MESSAGE_INT_SET, 1, frequency_msg); +free(frequency_msg); + } - count = eina_list_count(cpufreq_config->status->governors); - governor_msg = malloc(sizeof(Edje_Message_String_Set) + (count - 1) * sizeof(char *)); - governor_msg->count = count; - for (l = cpufreq_config->status->governors, i = 0; l; l = l->next, i++) - governor_msg->str[i] = (char *)l->data; - edje_object_message_send(inst->o_cpu, EDJE_MESSAGE_STRING_SET, 2, governor_msg); - free(governor_msg); + if (cpufreq_config->status->governors) + { +count = eina_list_count(cpufreq_config->status->governors); +governor_msg = malloc(sizeof(Edje_Message_String_Set) + (count - 1) * sizeof(char *)); +governor_msg->count = count; +for (l = cpufreq_config->status->governors, i = 0; l; l = l->next, i++) + governor_msg->str[i] = (char *)l->data; +edje_object_message_send(inst->o_cpu, EDJE_MESSAGE_STRING_SET, 2, governor_msg); +free(governor_msg); + } } static void --
[EGIT] [core/enlightenment] enlightenment-0.20 37/140: ignore xwayland clients in wl client delete request callback
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=5e27e5f30232d189734409fc81a16fc746d36317 commit 5e27e5f30232d189734409fc81a16fc746d36317 Author: Mike Blumenkrantz Date: Mon Mar 21 12:13:27 2016 -0400 ignore xwayland clients in wl client delete request callback this breaks the compositor! --- src/bin/e_comp_wl.c | 11 ++- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 61883b0..47ada79 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -660,14 +660,15 @@ _e_comp_wl_evas_cb_state_update(void *data, Evas_Object *obj EINA_UNUSED, void * static void _e_comp_wl_evas_cb_delete_request(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) { - E_Client *ec; - - if (!(ec = data)) return; - if (ec->netwm.ping) e_client_ping(ec); + E_Client *ec = data; e_comp_ignore_win_del(E_PIXMAP_TYPE_WL, e_pixmap_window_get(ec->pixmap)); - e_object_del(E_OBJECT(ec)); + if (!e_client_has_xwindow(ec)) + { +if (ec->netwm.ping) e_client_ping(ec); +e_object_del(E_OBJECT(ec)); + } _e_comp_wl_focus_check(); --
[EGIT] [core/enlightenment] enlightenment-0.20 49/140: do not set initial changed state for new clients if they are ignored
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=56e96ce294aed46a9803acafa8b526b9d9734f72 commit 56e96ce294aed46a9803acafa8b526b9d9734f72 Author: Mike Blumenkrantz Date: Thu Mar 24 16:40:47 2016 -0400 do not set initial changed state for new clients if they are ignored this loops the client idler for no reason --- src/bin/e_client.c | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 91f3ba9..af5b479 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -2583,13 +2583,14 @@ e_client_new(E_Pixmap *cp, int first_map, int internal) ec->netwm.action.close = 0; ec->netwm.opacity = 255; - EC_CHANGED(ec); - e_comp->clients = eina_list_append(e_comp->clients, ec); eina_hash_add(clients_hash[e_pixmap_type_get(cp)], &ec->pixmap, ec); if (!ec->ignored) - _e_client_event_simple(ec, E_EVENT_CLIENT_ADD); + { +EC_CHANGED(ec); +_e_client_event_simple(ec, E_EVENT_CLIENT_ADD); + } e_comp_object_client_add(ec); if (ec->frame) { --
[EGIT] [core/enlightenment] enlightenment-0.20 50/140: redo wayland client unignore mechanism
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d1568b832f09a30a7560e915efea042c54f687e0 commit d1568b832f09a30a7560e915efea042c54f687e0 Author: Mike Blumenkrantz Date: Thu Mar 24 16:41:18 2016 -0400 redo wayland client unignore mechanism wayland clients were previously set as ignored until they obtained a shell surface in order to avoid early execution of things like placement. this had no effect. the ignore must last until the first commit, at which point surfaces have been sized and can be placed accurately without needing to move the surface around a lot of times due to resize/frame adjust/birthdays --- src/bin/e_comp_wl.c | 23 +++ src/modules/wl_desktop_shell/e_mod_main.c | 12 ++-- 2 files changed, 13 insertions(+), 22 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 8d0088d..c55f8b1 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -1023,7 +1023,7 @@ _e_comp_wl_surface_state_commit(E_Client *ec, E_Comp_Wl_Surface_State *state) { Eina_Bool first = EINA_FALSE; Eina_Rectangle *dmg; - Eina_Bool ignored, placed = EINA_TRUE; + Eina_Bool placed = EINA_TRUE; int x = 0, y = 0, w, h; first = !e_pixmap_usable_get(ec->pixmap); @@ -1031,7 +1031,14 @@ _e_comp_wl_surface_state_commit(E_Client *ec, E_Comp_Wl_Surface_State *state) if (first && e_client_has_xwindow(ec)) first = !e_pixmap_usable_get(e_comp_x_client_pixmap_get(ec)); #endif - ignored = ec->ignored; + + if (ec->ignored && (ec->comp_data->shell.surface || ec->internal)) + { +EC_CHANGED(ec); +ec->new_client = 1; +e_comp->new_clients++; +e_client_unignore(ec); + } if (state->new_attach) _e_comp_wl_surface_state_attach(ec, state); @@ -1071,7 +1078,7 @@ _e_comp_wl_surface_state_commit(E_Client *ec, E_Comp_Wl_Surface_State *state) { if ((ec->comp_data->shell.surface) && (ec->comp_data->shell.unmap)) ec->comp_data->shell.unmap(ec->comp_data->shell.surface); - else if (ec->comp_data->cursor || e_client_has_xwindow(ec) || + else if (ec->comp_data->cursor || e_client_has_xwindow(ec) || ec->internal || (ec->comp_data->sub.data && ec->comp_data->sub.data->parent->comp_data->mapped) || (ec == e_comp_wl->drag_client)) { @@ -1087,7 +1094,7 @@ _e_comp_wl_surface_state_commit(E_Client *ec, E_Comp_Wl_Surface_State *state) { if ((ec->comp_data->shell.surface) && (ec->comp_data->shell.map)) ec->comp_data->shell.map(ec->comp_data->shell.surface); - else if (ec->comp_data->cursor || e_client_has_xwindow(ec) || + else if (ec->comp_data->cursor || e_client_has_xwindow(ec) || ec->internal || (ec->comp_data->sub.data && ec->comp_data->sub.data->parent->comp_data->mapped) || (ec == e_comp_wl->drag_client)) { @@ -1150,12 +1157,6 @@ _e_comp_wl_surface_state_commit(E_Client *ec, E_Comp_Wl_Surface_State *state) ec->placed = placed; ec->want_focus |= ec->icccm.accepts_focus && (!ec->override); } -else if ((first) && (ec->placed) && (!ec->internal) && (!ec->override)) - { - ec->x = ec->y = 0; - ec->placed = EINA_FALSE; - ec->new_client = EINA_TRUE; - } } state->sx = 0; state->sy = 0; @@ -1167,8 +1168,6 @@ _e_comp_wl_surface_state_commit(E_Client *ec, E_Comp_Wl_Surface_State *state) state->frames); state->frames = NULL; - ec->ignored = ignored; - /* put state damages into surface */ if ((!e_comp->nocomp) && (ec->frame)) { diff --git a/src/modules/wl_desktop_shell/e_mod_main.c b/src/modules/wl_desktop_shell/e_mod_main.c index 748ba84..e3f5d7c 100644 --- a/src/modules/wl_desktop_shell/e_mod_main.c +++ b/src/modules/wl_desktop_shell/e_mod_main.c @@ -548,12 +548,7 @@ _e_shell_cb_shell_surface_get(struct wl_client *client, struct wl_resource *reso "No Pixmap Set On Surface"); return; } - - EC_CHANGED(ec); - ec->new_client = ec->netwm.ping = EINA_TRUE; - e_comp->new_clients++; - e_client_unignore(ec); - + ec->netwm.ping = 1; /* get the client data */ if (!(cdata = ec->comp_data)) { @@ -,10 +1106,7 @@ _e_xdg_shell_cb_surface_get(struct wl_client *client, struct wl_resource *resour return; } - EC_CHANGED(ec); - ec->new_client = ec->netwm.ping = EINA_TRUE; - e_comp->new_clients++; - e_client_unignore(ec); + ec->netwm.ping = 1; /* get the client data */ if (!(cdata = ec->comp_data)) --
[EGIT] [core/enlightenment] enlightenment-0.20 70/140: apply compositor keybinds if an action client that is not focus exists
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=17e32f578659398f91e4741f2c6014a4962bafc3 commit 17e32f578659398f91e4741f2c6014a4962bafc3 Author: Mike Blumenkrantz Date: Thu Mar 31 14:03:29 2016 -0400 apply compositor keybinds if an action client that is not focus exists --- src/bin/e_comp_canvas.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/e_comp_canvas.c b/src/bin/e_comp_canvas.c index e620c7a..8b5b0de 100644 --- a/src/bin/e_comp_canvas.c +++ b/src/bin/e_comp_canvas.c @@ -110,6 +110,7 @@ _e_comp_cb_key_down(void *data EINA_UNUSED, int ev_type EINA_UNUSED, Ecore_Event E_Client *ec; ec = e_client_focused_get(); +if (!ec) ec = e_client_action_get(); /* *block actions when no client is focused (probably something else did a grab here so we'll play nice) * *block actions when menu is up * *block actions when event (grab) window isn't comp window --
[EGIT] [core/enlightenment] enlightenment-0.20 53/140: use canvas pointer coords in systray mouse cb
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c635bf8d5ee327fb7bd4a49d38b092350030b2ca commit c635bf8d5ee327fb7bd4a49d38b092350030b2ca Author: Mike Blumenkrantz Date: Mon Mar 28 13:37:21 2016 -0400 use canvas pointer coords in systray mouse cb --- src/modules/systray/e_mod_notifier_host.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/systray/e_mod_notifier_host.c b/src/modules/systray/e_mod_notifier_host.c index a15d4bc..81c4e59 100644 --- a/src/modules/systray/e_mod_notifier_host.c +++ b/src/modules/systray/e_mod_notifier_host.c @@ -197,7 +197,7 @@ _clicked_item_cb(void *data, Evas *evas, Evas_Object *obj EINA_UNUSED, void *eve e_menu_post_deactivate_callback_set(m, _menu_post_deactivate, gadcon); zone = e_gadcon_zone_get(gadcon); - ecore_evas_pointer_xy_get(e_comp->ee, &x, &y); + evas_pointer_canvas_xy_get(e_comp->evas, &x, &y); e_menu_activate_mouse(m, zone, x, y, 1, 1, E_MENU_POP_DIRECTION_DOWN, ev->timestamp); evas_event_feed_mouse_up(evas, ev->button, EVAS_BUTTON_NONE, ev->timestamp, NULL); --
[EGIT] [core/enlightenment] enlightenment-0.20 48/140: feed mouse-up events for all buttons on internal wins when activating a binding
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=39717a8a388d4878f88332a76f40ec91c38661d1 commit 39717a8a388d4878f88332a76f40ec91c38661d1 Author: Mike Blumenkrantz Date: Thu Mar 24 13:57:23 2016 -0400 feed mouse-up events for all buttons on internal wins when activating a binding bindings enforce compositor grabs, which will result in stuck canvas buttons and break internal windows which have already received button presses fix T3347 --- src/bin/e_client.c | 13 + 1 file changed, 13 insertions(+) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 1794376..91f3ba9 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -2869,6 +2869,19 @@ e_client_mouse_down(E_Client *ec, int button, Evas_Point *output, E_Binding_Even { did_act = EINA_TRUE; e_object_ref(E_OBJECT(ec->cur_mouse_action)); + if (ec->internal) + { + int button_mask, i; + Evas *e; + + e = evas_object_evas_get(ec->internal_elm_win); + button_mask = evas_pointer_button_down_mask_get(e); + for (i = 0; i < 32; i++) +{ + if ((button_mask & (1 << i))) +evas_event_feed_mouse_up(e, i + 1, EVAS_BUTTON_NONE, 0, NULL); +} + } } } if ((!did_act) || (((pfocus == e_client_focused_get()) || (ec == e_client_focused_get())) && (ec->layer >= player))) --
[EGIT] [core/enlightenment] enlightenment-0.20 58/140: move notification text escaping into dbus notify method callback
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=3980f4bac3d94c93b94d32d2fea23d53e1c2d561 commit 3980f4bac3d94c93b94d32d2fea23d53e1c2d561 Author: Mike Blumenkrantz Date: Wed Mar 30 16:08:05 2016 -0400 move notification text escaping into dbus notify method callback this ensures that notification text reaching the module can be considered "usable" without forcing multiple escape passes onto the same notification fix T2757 --- src/bin/e_notification.c | 161 - src/modules/notification/e_mod_popup.c | 159 2 files changed, 160 insertions(+), 160 deletions(-) diff --git a/src/bin/e_notification.c b/src/bin/e_notification.c index 305b5b7..fc759d8 100644 --- a/src/bin/e_notification.c +++ b/src/bin/e_notification.c @@ -69,12 +69,169 @@ hints_dict_iter(void *data, const void *key, Eldbus_Message_Iter *var) } } + +/* this function should be external in edje for use in cases such as this module. + * + * happily, it was decided that the function would not be external so that it could + * be duplicated into the module in full. + */ + +static int +_text_escape(Eina_Strbuf *txt, const char *text) +{ + const char *escaped; + int advance; + + escaped = evas_textblock_string_escape_get(text, &advance); + if (!escaped) + { +eina_strbuf_append_char(txt, text[0]); +advance = 1; + } + else + eina_strbuf_append(txt, escaped); + return advance; +} + +/* hardcoded list of allowed tags based on + * https://people.gnome.org/~mccann/docs/notification-spec/notification-spec-latest.html#markup + */ +static const char *tags[] = +{ + "", popped[1]); + } while (cur_tag && (popped != tag)); + advance = 4; +} + else if (cur_tag) +{ + /* tag match: just pop */ + popped = eina_array_pop(arr); + if (eina_array_count(arr)) + cur_tag = eina_array_data_get(arr, eina_array_count(arr) - 1); + else + cur_tag = NULL; + eina_strbuf_append_printf(txt, "", popped[1]); + advance = 4; +} + else +{ + /* no current tag: escape */ + advance = _text_escape(txt, text); +} + } + else + { + if (tag) +{ + cur_tag = tag; + eina_array_push(arr, tag); + eina_strbuf_append_printf(txt, "<%c>", tag[1]); + advance = 3; +} + else +advance = _text_escape(txt, text); + } + } +else if (text[0] == '&') + { + const char *s; + + s = strchr(text, ';'); + if (s) + s = evas_textblock_escape_string_range_get(text, s + 1); + if (s) + { + eina_strbuf_append_char(txt, text[0]); + advance = 1; + } + else + advance = _text_escape(txt, text); + } +else + advance = _text_escape(txt, text); + +text += advance; + } + + eina_array_free(arr); + ret = eina_strbuf_string_steal(txt); + eina_strbuf_free(txt); + return ret; +} + static Eldbus_Message * notify_cb(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg) { E_Notification_Notify *n; Eldbus_Message_Iter *actions_iter, *hints_iter; Eldbus_Message *reply; + char *txt; if (!n_data->notify_cb) return NULL; @@ -100,7 +257,9 @@ notify_cb(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Messag n->app_name = eina_stringshare_add(n->app_name); n->icon.icon = eina_stringshare_add(n->icon.icon); n->summary = eina_stringshare_add(n->summary); - n->body = eina_stringshare_add(n->body); + txt = _nedje_text_escape(n->body); + n->body = eina_stringshare_add(txt); + free(txt); e_object_ref(E_OBJECT(n)); n->id = n_data->notify_cb(n_data->data, n); diff --git a/src/modules/notification/e_mod_popup.c b/src/modules/notification/e_mod_popup.c index 03b33e0..de86673 100644 --- a/src/modules/notification/e_mod_popup.c +++ b/src/modules/notification/e_mod_popup.c @@ -12,160 +12,6 @@ static void_notification_popup_del(unsigned int id, static void_notification_popdown(Popup_Data *popup, E_Notification_Notify_Closed_Reason reason); -/* this function should be external in edje for use in c
[EGIT] [core/enlightenment] enlightenment-0.20 62/140: don't show some x11-specific compositor settings under wayland
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=83faf58fdb3891ec50b4e4bbd477f6dd5cc10571 commit 83faf58fdb3891ec50b4e4bbd477f6dd5cc10571 Author: Mike Blumenkrantz Date: Wed Mar 30 17:48:25 2016 -0400 don't show some x11-specific compositor settings under wayland --- src/bin/e_int_config_comp.c | 73 + 1 file changed, 28 insertions(+), 45 deletions(-) diff --git a/src/bin/e_int_config_comp.c b/src/bin/e_int_config_comp.c index ba4651d..057d993 100644 --- a/src/bin/e_int_config_comp.c +++ b/src/bin/e_int_config_comp.c @@ -255,8 +255,11 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data of = e_widget_framelist_add(evas, _("Behavior"), 0); ob = e_widget_check_add(evas, _("Smooth scaling"), &(cfdata->smooth_windows)); e_widget_framelist_object_append(of, ob); - ob = e_widget_check_add(evas, _("Don't composite fullscreen windows"), &(cfdata->nocomp_fs)); - e_widget_framelist_object_append(of, ob); + if (e_comp->comp_type == E_PIXMAP_TYPE_X) + { +ob = e_widget_check_add(evas, _("Don't composite fullscreen windows"), &(cfdata->nocomp_fs)); +e_widget_framelist_object_append(of, ob); + } ob = e_widget_check_add(evas, _("Don't fade backlight"), &(cfdata->nofade)); e_widget_framelist_object_append(of, ob); e_widget_list_object_append(ol, of, 1, 1, 0.5); @@ -300,47 +303,24 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data /// ol = e_widget_list_add(evas, 0, 0); - of = e_widget_framelist_add(evas, _("X Messages"), 0); - ob = e_widget_check_add(evas, _("Send flush"), &(cfdata->send_flush)); - e_widget_framelist_object_append(of, ob); - ob = e_widget_check_add(evas, _("Send dump"), &(cfdata->send_dump)); - e_widget_framelist_object_append(of, ob); - e_widget_list_object_append(ol, of, 1, 1, 0.5); - -/* - ob = e_widget_check_add(evas, _("Keep hidden windows"), &(cfdata->keep_unmapped)); - e_widget_list_object_append(ol, ob, 1, 1, 0.5); - of = e_widget_frametable_add(evas, _("Maximum hidden pixels"), 0); - e_widget_frametable_content_align_set(of, 0.5, 0.5); - rg = e_widget_radio_group_new(&(cfdata->max_unmapped_pixels)); - ob = e_widget_radio_add(evas, _("1M"), 1 * 1024, rg); - e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 1, 1, 0, 0); - ob = e_widget_radio_add(evas, _("2M"), 2 * 1024, rg); - e_widget_frametable_object_append(of, ob, 0, 1, 1, 1, 1, 1, 0, 0); - ob = e_widget_radio_add(evas, _("4M"), 4 * 1024, rg); - e_widget_frametable_object_append(of, ob, 0, 2, 1, 1, 1, 1, 0, 0); - ob = e_widget_radio_add(evas, _("8M"), 8 * 1024, rg); - e_widget_frametable_object_append(of, ob, 1, 0, 1, 1, 1, 1, 0, 0); - ob = e_widget_radio_add(evas, _("16M"), 16 * 1024, rg); - e_widget_frametable_object_append(of, ob, 1, 1, 1, 1, 1, 1, 0, 0); - ob = e_widget_radio_add(evas, _("32M"), 32 * 1024, rg); - e_widget_frametable_object_append(of, ob, 1, 2, 1, 1, 1, 1, 0, 0); - ob = e_widget_radio_add(evas, _("64M"), 64 * 1024, rg); - e_widget_frametable_object_append(of, ob, 2, 0, 1, 1, 1, 1, 0, 0); - ob = e_widget_radio_add(evas, _("128M"), 128 * 1024, rg); - e_widget_frametable_object_append(of, ob, 2, 1, 1, 1, 1, 1, 0, 0); - ob = e_widget_radio_add(evas, _("256M"), 256 * 1024, rg); - e_widget_frametable_object_append(of, ob, 2, 2, 1, 1, 1, 1, 0, 0); - e_widget_list_object_append(ol, of, 1, 1, 0.5); - */ - of = e_widget_framelist_add(evas, _("Sync"), 0); - ob = e_widget_check_add(evas, _("Grab Server during draw"), &(cfdata->grab)); - e_widget_framelist_object_append(of, ob); - ob = e_widget_label_add(evas, _("Initial draw timeout for newly mapped windows")); - e_widget_framelist_object_append(of, ob); - ob = e_widget_slider_add(evas, 1, 0, _("%1.2f Seconds"), 0.01, 0.5, 0.01, 0, &(cfdata->first_draw_delay), NULL, 150); - e_widget_framelist_object_append(of, ob); - e_widget_list_object_append(ol, of, 1, 1, 0.5); + if (e_comp->comp_type == E_PIXMAP_TYPE_X) + { +of = e_widget_framelist_add(evas, _("X Messages"), 0); +ob = e_widget_check_add(evas, _("Send flush"), &(cfdata->send_flush)); +e_widget_framelist_object_append(of, ob); +ob = e_widget_check_add(evas, _("Send dump"), &(cfdata->send_dump)); +e_widget_framelist_object_append(of, ob); +e_widget_list_object_append(ol, of, 1, 1, 0.5); + +of = e_widget_framelist_add(evas, _("Sync"), 0); +ob = e_widget_check_add(evas, _("Grab Server during draw"), &(cfdata->grab)); +e_widget_framelist_object_append(of, ob); +ob = e_widget_label_add(evas, _("Initial draw timeout for newly mapped windows")); +e_widget_framelist_object_append(of, ob); +ob = e_widget_slider_add(evas, 1, 0, _("%1.2f Seconds"), 0.01, 0.5, 0.01,
[EGIT] [core/enlightenment] enlightenment-0.20 46/140: send resize edges to wl clients on resize start and end
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=845cabf7322528ab47e3ee75d16e75d35b432693 commit 845cabf7322528ab47e3ee75d16e75d35b432693 Author: Mike Blumenkrantz Date: Wed Mar 23 16:03:33 2016 -0400 send resize edges to wl clients on resize start and end --- src/bin/e_comp_wl.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 47ada79..8d0088d 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -2341,6 +2341,9 @@ _e_comp_wl_client_cb_resize_begin(void *data EINA_UNUSED, E_Client *ec) default: break; } + ec->comp_data->shell.configure_send(ec->comp_data->shell.surface, + e_comp_wl->resize.edges, + 0, 0); } static void @@ -2352,6 +2355,10 @@ _e_comp_wl_client_cb_resize_end(void *data EINA_UNUSED, E_Client *ec) e_comp_wl->resize.edges = 0; e_comp_wl->resize.resource = NULL; + ec->comp_data->shell.configure_send(ec->comp_data->shell.surface, + e_comp_wl->resize.edges, + 0, 0); + if (ec->pending_resize) { --
[EGIT] [core/enlightenment] enlightenment-0.20 65/140: explicitly manage client focus when setting/unsetting input grabs
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=76b76af8ea026ab74b5628dcc6b8bc8209a89995 commit 76b76af8ea026ab74b5628dcc6b8bc8209a89995 Author: Mike Blumenkrantz Date: Thu Mar 31 11:11:02 2016 -0400 explicitly manage client focus when setting/unsetting input grabs clients cannot retain focus during a compositor grab, so ensure that they do not think they have focus in such cases fix T3338 --- src/bin/e_comp.c | 14 +- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index 0f9fbf1..15a6161 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -1648,6 +1648,8 @@ e_comp_grab_input(Eina_Bool mouse, Eina_Bool kbd) if ((e_comp->input_mouse_grabs && e_comp->input_key_grabs) || e_grabinput_get(mwin, 0, kwin)) { +if (e_client_focused_get()) + evas_object_focus_set(e_client_focused_get()->frame, 0); ret = EINA_TRUE; e_comp->input_mouse_grabs += mouse; e_comp->input_key_grabs += kbd; @@ -1675,7 +1677,17 @@ e_comp_ungrab_input(Eina_Bool mouse, Eina_Bool kbd) e_grabinput_release(mwin, kwin); evas_event_feed_mouse_out(e_comp->evas, 0, NULL); evas_event_feed_mouse_in(e_comp->evas, 0, NULL); - if (e_client_focused_get()) return; + if (e_client_focused_get()) + { +E_Client *ec = e_client_focused_get(); + +if (e_comp->comp_type == E_PIXMAP_TYPE_WL) + { + evas_object_focus_set(ec->frame, 0); + evas_object_focus_set(ec->frame, 1); + } +return; + } if (e_config->focus_policy != E_FOCUS_MOUSE) e_client_refocus(); } --
[EGIT] [core/enlightenment] enlightenment-0.20 45/140: remove lots of impossible null checks from pager move callback
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=783ae4cae4651ea58a7dcdfd2798b55a78f24021 commit 783ae4cae4651ea58a7dcdfd2798b55a78f24021 Author: Mike Blumenkrantz Date: Tue Mar 22 15:21:04 2016 -0400 remove lots of impossible null checks from pager move callback CID 1237302 --- src/modules/pager_plain/e_mod_main.c | 29 + 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/src/modules/pager_plain/e_mod_main.c b/src/modules/pager_plain/e_mod_main.c index 77bb297..fe8144d 100644 --- a/src/modules/pager_plain/e_mod_main.c +++ b/src/modules/pager_plain/e_mod_main.c @@ -1844,8 +1844,8 @@ _pager_window_cb_mouse_up(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA static void _pager_window_cb_mouse_move(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info) { - Evas_Event_Mouse_Move *ev; - Pager_Win *pw; + Evas_Event_Mouse_Move *ev = event_info; + Pager_Win *pw = data; E_Drag *drag; Evas_Object *o, *oo; Evas_Coord x, y, w, h; @@ -1856,33 +1856,22 @@ _pager_window_cb_mouse_move(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EI Evas_Coord mx, my, vx, vy; Pager_Desk *pd; - ev = event_info; - pw = data; - - if (!pw) return; if (pw->client->lock_user_location) return; - if ((pw->desk) && (pw->desk->pager)) - { -if ((pw->desk->pager->popup) && (!act_popup)) return; - } + if ((pw->desk->pager->popup) && (!act_popup)) return; /* prevent drag for a few pixels */ if (pw->drag.start) { dx = pw->drag.x - ev->cur.output.x; dy = pw->drag.y - ev->cur.output.y; -if ((pw->desk) && (pw->desk->pager)) - resist = pager_config->drag_resist; +resist = pager_config->drag_resist; -if (((unsigned int)(dx * dx) + (unsigned int)(dy * dy)) <= -(resist * resist)) return; +if ((unsigned int)(dx * dx) + (unsigned int)(dy * dy) <= resist * resist) + return; -if ((pw->desk) && (pw->desk->pager)) - { - pw->desk->pager->dragging = 1; - edje_object_signal_emit(pw->desk->o_desk, "e,action,drag,in", "e"); - pw->desk->pager->active_drop_pd = pw->desk; - } +pw->desk->pager->dragging = 1; +edje_object_signal_emit(pw->desk->o_desk, "e,action,drag,in", "e"); +pw->desk->pager->active_drop_pd = pw->desk; pw->drag.start = 0; e_comp_object_effect_clip(pw->client->frame); } --
[EGIT] [core/enlightenment] enlightenment-0.20 64/140: block wl keyboard modifier updating during input grabs
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=7b201be6b34ece788011d318c85fb78b43ae9ed4 commit 7b201be6b34ece788011d318c85fb78b43ae9ed4 Author: Mike Blumenkrantz Date: Thu Mar 31 11:14:27 2016 -0400 block wl keyboard modifier updating during input grabs --- src/bin/e_comp_wl_input.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/e_comp_wl_input.c b/src/bin/e_comp_wl_input.c index 3e1b009..d1015fc 100644 --- a/src/bin/e_comp_wl_input.c +++ b/src/bin/e_comp_wl_input.c @@ -543,7 +543,7 @@ e_comp_wl_input_keyboard_modifiers_update(void) if (!e_comp_wl_input_keyboard_modifiers_serialize()) return; - if (!e_comp_wl->kbd.focused) return; + if ((!e_comp_wl->kbd.focused) || e_comp->input_key_grabs) return; serial = wl_display_next_serial(e_comp_wl->wl.disp); EINA_LIST_FOREACH(e_comp_wl->kbd.focused, l, res) --
[EGIT] [core/enlightenment] enlightenment-0.20 59/140: track offline/presentation mode notification ids and replace on toggle
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=32839ee8f26c8f4ce0f0c306b8b4c08a5cac0478 commit 32839ee8f26c8f4ce0f0c306b8b4c08a5cac0478 Author: Mike Blumenkrantz Date: Wed Mar 30 16:16:44 2016 -0400 track offline/presentation mode notification ids and replace on toggle --- src/modules/notification/e_mod_main.c | 21 - 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/modules/notification/e_mod_main.c b/src/modules/notification/e_mod_main.c index 58ecc15..b5c8104 100644 --- a/src/modules/notification/e_mod_main.c +++ b/src/modules/notification/e_mod_main.c @@ -10,6 +10,9 @@ Config *notification_cfg = NULL; static E_Config_DD *conf_edd = NULL; +static unsigned int offline_id; +static unsigned int pres_id; + static unsigned int _notification_notify(E_Notification_Notify *n) { @@ -25,19 +28,27 @@ _notification_notify(E_Notification_Notify *n) } static void +_notification_id_update(void *d, unsigned int id) +{ + uintptr_t *update_id = d; + + *update_id = id; +} + +static void _notification_show_common(const char *summary, const char *body, - int replaces_id) + unsigned int *update_id) { E_Notification_Notify n; memset(&n, 0, sizeof(E_Notification_Notify)); n.app_name = "enlightenment"; - n.replaces_id = replaces_id; + n.replaces_id = *update_id; n.icon.icon = "enlightenment"; n.summary = summary; n.body = body; n.urgency = E_NOTIFICATION_NOTIFY_URGENCY_CRITICAL; - e_notification_client_send(&n, NULL, NULL); + e_notification_client_send(&n, _notification_id_update, update_id); } static void @@ -60,7 +71,7 @@ _notification_show_presentation(Eina_Bool enabled) "power saving settings will be restored."); } - _notification_show_common(summary, body, -1); + _notification_show_common(summary, body, &pres_id); } static void @@ -83,7 +94,7 @@ _notification_show_offline(Eina_Bool enabled) "resume regular tasks."); } - _notification_show_common(summary, body, -1); + _notification_show_common(summary, body, &offline_id); } static Eina_Bool --
[EGIT] [core/enlightenment] enlightenment-0.20 55/140: add even more systray/dbusmenu hacks
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=005de524fb3b412bec815a87eebb716e8a34e62b commit 005de524fb3b412bec815a87eebb716e8a34e62b Author: Mike Blumenkrantz Date: Mon Mar 28 15:33:38 2016 -0400 add even more systray/dbusmenu hacks mrw Qt systray devs take working (4.X) and then break it in 5.X to be worse than steam: http://gfycat.com/CloudyPinkEmperorshrimp fix T3139 --- src/bin/e_dbusmenu.c | 111 --- 1 file changed, 70 insertions(+), 41 deletions(-) diff --git a/src/bin/e_dbusmenu.c b/src/bin/e_dbusmenu.c index 76cce57..bc87097 100644 --- a/src/bin/e_dbusmenu.c +++ b/src/bin/e_dbusmenu.c @@ -9,6 +9,7 @@ struct _E_DBusMenu_Ctx void *data; E_DBusMenu_Pop_Request_Cb pop_request_cb; E_DBusMenu_Update_Cb update_cb; + Eina_Bool hacks : 1; }; static const char *Menu_Item_Type_Names[] = @@ -31,6 +32,8 @@ static const char *Menu_Item_Event_Names[] = "clicked", "hovered", "opened", "closed" }; +static void proxy_init(E_DBusMenu_Ctx *ctx); + static int id_find(const char *text, const char *array_of_names[], unsigned max) { @@ -197,6 +200,46 @@ dbus_menu_free(E_DBusMenu_Item *m) free(m); } +static Eina_Bool +attempt_hacks(E_DBusMenu_Ctx *ctx) +{ + /* https://phab.enlightenment.org/T3139 */ + Eldbus_Object *obj; + Eldbus_Connection *conn; + const char *bus, *p; + int n; + char buf[1024] = {0}, buf2[1024] = {0}; + + if (ctx->hacks) return EINA_FALSE; + obj = eldbus_proxy_object_get(ctx->proxy); + conn = eldbus_object_connection_get(obj); + bus = eldbus_object_bus_name_get(obj); + if (bus[0] != ':') return EINA_FALSE; + /* if this is a qt5 app, menu bus is $bus + 2 +* ...probably +*/ + + p = strchr(bus + 1, '.'); + if (!p) return EINA_FALSE; + p++; + if (!p[0]) return EINA_FALSE; + n = strtol(p, NULL, 10); + if (n == -1) return EINA_FALSE; + n += 2; + if ((unsigned int)(p - bus) > sizeof(buf) - 1) return EINA_FALSE; + strncpy(buf, bus, p - bus); + snprintf(buf2, sizeof(buf2), "%s%d", buf, n); + E_FREE_FUNC(ctx->root_menu, dbus_menu_free); + eldbus_proxy_unref(ctx->proxy); + eldbus_object_unref(obj); + + obj = eldbus_object_get(conn, buf2, "/MenuBar"); + ctx->proxy = eldbus_proxy_get(obj, DBUS_MENU_IFACE); + proxy_init(ctx); + ctx->hacks = 1; + return EINA_TRUE; +} + static void layout_get_cb(void *data, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED) { @@ -220,6 +263,15 @@ layout_get_cb(void *data, const Eldbus_Message *msg, Eldbus_Pending *pending EIN m = parse_layout(layout, NULL, ctx); m->revision = revision; + if (m->is_submenu && (!m->parent) && (!m->sub_items)) + { +if (attempt_hacks(ctx)) + { + dbus_menu_free(m); + return; + } + } + if (ctx->update_cb) ctx->update_cb(ctx->data, m); if (ctx->root_menu) @@ -271,32 +323,6 @@ menu_pop_request(void *data, const Eldbus_Message *msg) } static void -icon_theme_path_get_cb(void *data EINA_UNUSED, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED) -{ - const char *error, *error_msg; - Eldbus_Message_Iter *var, *array; - const char *path; - - if (eldbus_message_error_get(msg, &error, &error_msg)) - { -ERR("%s %s", error, error_msg); -return; - } - - if (!eldbus_message_arguments_get(msg, "v", &var) || - !eldbus_message_iter_arguments_get(var, "as", &array)) - { -ERR("Error reading message."); -return; - } - - while (eldbus_message_iter_get_and_next(array, 's', &path)) - { -//TODO - } -} - -static void prop_changed_cb(void *data EINA_UNUSED, const Eldbus_Message *msg) { const char *interface, *propname; @@ -337,6 +363,23 @@ layout_updated_cb(void *data, const Eldbus_Message *msg EINA_UNUSED) layout_update(ctx); } +static void +proxy_init(E_DBusMenu_Ctx *ctx) +{ + layout_update(ctx); + eldbus_proxy_signal_handler_add(ctx->proxy, + "ItemActivationRequested", + menu_pop_request, ctx); + + eldbus_proxy_properties_changed_callback_add(ctx->proxy, + prop_changed_cb, ctx); + + eldbus_proxy_signal_handler_add(ctx->proxy, "ItemsPropertiesUpdated", + layout_updated_cb, ctx); + eldbus_proxy_signal_handler_add(ctx->proxy, "LayoutUpdated", + layout_updated_cb, ctx); +} + E_API E_DBusMenu_Ctx * e_dbusmenu_load(Eldbus_Connection *conn, const char *bus, const char *path, const void *data) { @@ -353,21 +396,7 @@ e_dbusmenu_load(Eldbus_Connection *conn, const char *bus, const char *path, cons eldbus_connection_ref(conn); obj = eldbus_object_get(conn, bus, path); ctx->proxy = eldbus_proxy_ge
[EGIT] [core/enlightenment] enlightenment-0.20 69/140: only attempt to rescue offscreen clients if they are completely offscreen
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=783c35622d5bc168d118353bb4cbd3afcc534cb3 commit 783c35622d5bc168d118353bb4cbd3afcc534cb3 Author: Mike Blumenkrantz Date: Thu Mar 31 14:03:02 2016 -0400 only attempt to rescue offscreen clients if they are completely offscreen --- src/bin/e_client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 998a111..6f45f3e 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -1882,7 +1882,7 @@ _e_client_eval(E_Client *ec) ec->placed = 1; ec->pre_cb.x = ec->x; ec->pre_cb.y = ec->y; } -else if (!E_INSIDE(ec->x, ec->y, zx, zy, zw, zh)) +else if (!E_INTERSECTS(ec->x, ec->y, ec->w, ec->h, zx, zy, zw, zh)) { /* If an ec is placed out of bound, fix it! */ ec->x = zx + ((zw - ec->w) / 2); --
[EGIT] [core/enlightenment] enlightenment-0.20 81/140: do not incrementally remaximize clients during shelf hide animation
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=635e056e0862903ea2b99048500f013477b0541c commit 635e056e0862903ea2b99048500f013477b0541c Author: Mike Blumenkrantz Date: Fri Apr 1 16:26:06 2016 -0400 do not incrementally remaximize clients during shelf hide animation this looks really bad and forces unnecessary spinning --- src/bin/e_shelf.c | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/bin/e_shelf.c b/src/bin/e_shelf.c index 6479a4b..d638fb2 100644 --- a/src/bin/e_shelf.c +++ b/src/bin/e_shelf.c @@ -503,7 +503,8 @@ e_shelf_move(E_Shelf *es, int x, int y) es->x = x; es->y = y; evas_object_move(es->comp_object, es->zone->x + es->x, es->zone->y + es->y); - _e_shelf_remaximize(es); + if (!es->hide_animator) + _e_shelf_remaximize(es); } E_API void @@ -515,7 +516,8 @@ e_shelf_resize(E_Shelf *es, int w, int h) es->w = w; es->h = h; evas_object_resize(es->comp_object, es->w, es->h); - _e_shelf_remaximize(es); + if (!es->hide_animator) + _e_shelf_remaximize(es); } E_API void @@ -530,7 +532,8 @@ e_shelf_move_resize(E_Shelf *es, int x, int y, int w, int h) es->h = h; evas_object_move(es->comp_object, es->zone->x + es->x, es->zone->y + es->y); evas_object_resize(es->comp_object, es->w, es->h); - _e_shelf_remaximize(es); + if (!es->hide_animator) + _e_shelf_remaximize(es); } E_API void --
[EGIT] [core/enlightenment] enlightenment-0.20 105/140: redo e_place_desk_region_smart() to handle multiple screens
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=6c6ba942da806e3b7db08390bbc1a69408583aee commit 6c6ba942da806e3b7db08390bbc1a69408583aee Author: Mike Blumenkrantz Date: Tue Apr 12 13:31:59 2016 -0400 redo e_place_desk_region_smart() to handle multiple screens this code is unbelievably bad. fix T3404 --- src/bin/e_place.c | 117 +++--- 1 file changed, 67 insertions(+), 50 deletions(-) diff --git a/src/bin/e_place.c b/src/bin/e_place.c index 40b00cd..a532241 100644 --- a/src/bin/e_place.c +++ b/src/bin/e_place.c @@ -56,7 +56,7 @@ _e_place_cb_sort_cmp(const void *v1, const void *v2) } static int -_e_place_coverage_client_add(E_Desk *desk, Eina_List *skiplist, int ar, int x, int y, int w, int h) +_e_place_coverage_client_add(Eina_List *skiplist, int ar, int x, int y, int w, int h) { E_Client *ec; int x2, y2, w2, h2; @@ -67,10 +67,17 @@ _e_place_coverage_client_add(E_Desk *desk, Eina_List *skiplist, int ar, int x, i { if (eina_list_data_find(skiplist, ec)) continue; if (e_client_util_ignored_get(ec)) continue; -x2 = (ec->x - desk->zone->x); y2 = (ec->y - desk->zone->y); w2 = ec->w; h2 = ec->h; -if (E_INTERSECTS(x, y, w, h, x2, y2, w2, h2) && -((ec->sticky) || (ec->desk == desk)) && -(!ec->iconic) && (ec->visible)) +if (!evas_object_visible_get(ec->frame)) continue; +if (ec->fullscreen) continue; +if (ec->maximized) + { + E_Maximize max = ec->maximized & E_MAXIMIZE_TYPE; + + if (max == E_MAXIMIZE_FULLSCREEN) continue; + if (max & (E_MAXIMIZE_HORIZONTAL | E_MAXIMIZE_VERTICAL)) continue; + } +x2 = ec->x; y2 = ec->y; w2 = ec->w; h2 = ec->h; +if (E_INTERSECTS(x, y, w, h, x2, y2, w2, h2)) { x0 = x; if (x < x2) x0 = x2; @@ -135,22 +142,22 @@ _e_place_array_resize(int *array, int *pos, int *size) } static void -_e_place_desk_region_smart_obstacle_add(char *u_x, char *u_y, int **a_x, int **a_y, int *a_w, int *a_h, int *a_alloc_w, int *a_alloc_h, int zw, int zh, int bx, int by, int bw, int bh) +_e_place_desk_region_smart_obstacle_add(char *u_x, char *u_y, int **a_x, int **a_y, int *a_w, int *a_h, int *a_alloc_w, int *a_alloc_h, int zx, int zy, int zw, int zh, int bx, int by, int bw, int bh) { - if (bx < 0) + if (bx < zx) { bw += bx; -bx = 0; +bx = zx; } - if ((bx + bw) > zw) bw = zw - bx; - if (bx >= zw) return; - if (by < 0) + if ((bx + bw) > zx + zw) bw = zx + zw - bx; + if (bx >= zx + zw) return; + if (by < zy) { bh += by; -by = 0; +by = zx; } - if ((by + bh) > zh) bh = zh - by; - if (by >= zh) return; + if ((by + bh) > zy + zh) bh = zy + zh - by; + if (by >= zy + zh) return; if (!u_x[bx]) { *a_x = _e_place_array_resize(*a_x, a_w, a_alloc_w); @@ -182,7 +189,7 @@ e_place_desk_region_smart(E_Desk *desk, Eina_List *skiplist, int x, int y, int w { int a_w = 0, a_h = 0, a_alloc_w = 0, a_alloc_h = 0; int *a_x = NULL, *a_y = NULL; - int zw, zh; + int zx, zy, zw, zh; char *u_x = NULL, *u_y = NULL; E_Client *ec; @@ -207,21 +214,23 @@ e_place_desk_region_smart(E_Desk *desk, Eina_List *skiplist, int x, int y, int w a_alloc_w = 2; a_alloc_h = 2; + zx = desk->zone->x; + zy = desk->zone->y; zw = desk->zone->w; zh = desk->zone->h; - u_x = calloc(zw + 1, sizeof(char)); - u_y = calloc(zh + 1, sizeof(char)); + u_x = calloc(zx + zw + 1, sizeof(char)); + u_y = calloc(zy + zh + 1, sizeof(char)); - a_x[0] = 0; - a_x[1] = zw; - a_y[0] = 0; - a_y[1] = zh; + a_x[0] = zx; + a_x[1] = zx + zw; + a_y[0] = zy; + a_y[1] = zy + zh; - u_x[0] = 1; - u_x[zw] = 1; - u_y[0] = 1; - u_y[zh] = 1; + u_x[zx] = 1; + u_x[zx + zw] = 1; + u_y[zy] = 1; + u_y[zy + zh] = 1; if (e_config->window_placement_policy == E_WINDOW_PLACEMENT_SMART) { @@ -239,9 +248,9 @@ e_place_desk_region_smart(E_Desk *desk, Eina_List *skiplist, int x, int y, int w by = es->y; bw = es->w; bh = es->h; - if (E_INTERSECTS(bx, by, bw, bh, 0, 0, zw, zh)) + if (E_INTERSECTS(bx, by, bw, bh, zx, zy, zw, zh)) _e_place_desk_region_smart_obstacle_add(u_x, u_y, &a_x, &a_y, - &a_w, &a_h, &a_alloc_w, &a_alloc_h, zw, zh, bx, by, bw, bh); + &a_w, &a_h, &a_alloc_w, &a_alloc_h, zx, zy, zw, zh, bx, by, bw, bh); } } @@ -253,7 +262,7 @@ e_place_desk_region_smart(E_Desk *desk, Eina_List *skiplist, int x, int y, int w if (eina_list_data_find(skiplist, ec)) continue; -if (!((ec->sticky) || (ec->desk == desk))) continue; +if (!evas_object_visible_get(ec->frame)) contin
[EGIT] [core/enlightenment] enlightenment-0.20 132/140: remove explicit edje_init/shutdown calls
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=648f9e14f5fb37c4dd55ee47021287fcd7280d77 commit 648f9e14f5fb37c4dd55ee47021287fcd7280d77 Author: Mike Blumenkrantz Date: Mon Apr 25 12:55:21 2016 -0400 remove explicit edje_init/shutdown calls elm already handles this --- src/bin/e_main.c | 8 1 file changed, 8 deletions(-) diff --git a/src/bin/e_main.c b/src/bin/e_main.c index 2bfe630..8b738c3 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -501,14 +501,6 @@ main(int argc, char **argv) } TS("Ecore_Evas Engine Check Done"); - TS("Edje Init"); - if (!edje_init()) - { -e_error_message_show(_("Enlightenment cannot initialize Edje!\n")); -_e_main_shutdown(-1); - } - TS("Edje Init Done"); - _e_main_shutdown_push(edje_shutdown); edje_freeze(); /*** Initialize E Subsystems We Need ***/ --
[EGIT] [core/enlightenment] enlightenment-0.20 97/140: don't send duplicate configure to wayland clients during unfullscreen
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=6f1c09689de9123fcbd179f623702063ddb9bb34 commit 6f1c09689de9123fcbd179f623702063ddb9bb34 Author: Mike Blumenkrantz Date: Thu Apr 7 13:56:03 2016 -0400 don't send duplicate configure to wayland clients during unfullscreen this causes unnecessary client-side resizing --- src/bin/e_comp_wl.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 0fb8d7a..feec750 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -780,8 +780,6 @@ _e_comp_wl_client_evas_init(E_Client *ec) _e_comp_wl_evas_cb_state_update, ec); evas_object_smart_callback_add(ec->frame, "fullscreen", _e_comp_wl_evas_cb_state_update, ec); -evas_object_smart_callback_add(ec->frame, "unfullscreen", - _e_comp_wl_evas_cb_state_update, ec); } evas_object_event_callback_priority_add(ec->frame, EVAS_CALLBACK_MOVE, EVAS_CALLBACK_PRIORITY_AFTER, --
[EGIT] [core/enlightenment] enlightenment-0.20 127/140: set NULL image data in _e_comp_object_pixels_get() on failure
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=2085721ce714da90534ce31860fab6d249fb2f91 commit 2085721ce714da90534ce31860fab6d249fb2f91 Author: Mike Blumenkrantz Date: Fri Apr 22 12:45:26 2016 -0400 set NULL image data in _e_comp_object_pixels_get() on failure ensure that nothing is rendered here --- src/bin/e_comp_object.c | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 8c4b8c9..6ecaba5 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -869,15 +869,18 @@ _e_comp_object_setup(E_Comp_Object *cw) /* for fast path evas rendering; only called during render */ static void -_e_comp_object_pixels_get(void *data, Evas_Object *obj EINA_UNUSED) +_e_comp_object_pixels_get(void *data, Evas_Object *obj) { E_Comp_Object *cw = data; E_Client *ec = cw->ec; int pw, ph; int bx, by, bxx, byy; - if (!ec->pixmap) return; - if (!e_pixmap_size_get(ec->pixmap, &pw, &ph)) return; + if ((!ec->pixmap) || (!e_pixmap_size_get(ec->pixmap, &pw, &ph))) + { +evas_object_image_data_set(obj, NULL); +return; + } //INF("PIXEL GET %p: %dx%d || %dx%d", ec, ec->w, ec->h, pw, ph); e_pixmap_image_opaque_get(cw->ec->pixmap, &bx, &by, &bxx, &byy); if (bxx && byy) --
[EGIT] [core/enlightenment] enlightenment-0.20 129/140: remove some X references in settings dialogs
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=93e47dda3aee7dba8e985eddb0d3cbe138cb2c12 commit 93e47dda3aee7dba8e985eddb0d3cbe138cb2c12 Author: Mike Blumenkrantz Date: Fri Apr 22 13:30:05 2016 -0400 remove some X references in settings dialogs fix T3435 --- .../conf_applications/e_int_config_deskenv.c | 23 +- src/modules/conf_display/e_int_config_desklock.c | 2 +- src/modules/conf_interaction/e_int_config_mouse.c | 4 ++-- src/modules/conf_theme/e_int_config_xsettings.c| 2 ++ 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/modules/conf_applications/e_int_config_deskenv.c b/src/modules/conf_applications/e_int_config_deskenv.c index 7a83124..cec587f 100644 --- a/src/modules/conf_applications/e_int_config_deskenv.c +++ b/src/modules/conf_applications/e_int_config_deskenv.c @@ -141,15 +141,20 @@ _basic_create(E_Config_Dialog *cfd EINA_UNUSED, Evas *evas, E_Config_Dialog_Data &(cfdata->exe_always_single_instance)); e_widget_framelist_object_append(fr, ob); e_widget_list_object_append(o, fr, 1, 0, 0.0); - - fr = e_widget_framelist_add(evas, _("X11 Basics"), 0); - ob = e_widget_check_add(evas, _("Load X Resources"), - &(cfdata->load_xrdb)); - e_widget_framelist_object_append(fr, ob); - ob = e_widget_check_add(evas, _("Load X Modifier Map"), - &(cfdata->load_xmodmap)); - e_widget_framelist_object_append(fr, ob); - e_widget_list_object_append(o, fr, 1, 0, 0.0); + +#ifndef HAVE_WAYLAND_ONLY + if (e_comp->comp_type == E_PIXMAP_TYPE_X) + { +fr = e_widget_framelist_add(evas, _("X11 Basics"), 0); +ob = e_widget_check_add(evas, _("Load X Resources"), +&(cfdata->load_xrdb)); +e_widget_framelist_object_append(fr, ob); +ob = e_widget_check_add(evas, _("Load X Modifier Map"), +&(cfdata->load_xmodmap)); +e_widget_framelist_object_append(fr, ob); +e_widget_list_object_append(o, fr, 1, 0, 0.0); + } +#endif fr = e_widget_framelist_add(evas, _("Major Desktops"), 0); ob = e_widget_check_add(evas, _("Start GNOME services on login"), diff --git a/src/modules/conf_display/e_int_config_desklock.c b/src/modules/conf_display/e_int_config_desklock.c index 8e96d9e..9223dd1 100644 --- a/src/modules/conf_display/e_int_config_desklock.c +++ b/src/modules/conf_display/e_int_config_desklock.c @@ -346,7 +346,7 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) /* Timers */ ol = e_widget_list_add(evas, 0, 0); - oc = e_widget_check_add(evas, _("Lock after X screensaver activates"), + oc = e_widget_check_add(evas, _("Lock after screensaver activates"), &cfdata->screensaver_lock); e_widget_disabled_set(oc, !cfdata->use_xscreensaver); e_widget_list_object_append(ol, oc, 1, 1, 0.5); diff --git a/src/modules/conf_interaction/e_int_config_mouse.c b/src/modules/conf_interaction/e_int_config_mouse.c index e807809..18de2fd 100644 --- a/src/modules/conf_interaction/e_int_config_mouse.c +++ b/src/modules/conf_interaction/e_int_config_mouse.c @@ -155,11 +155,11 @@ _basic_create_widgets(E_Config_Dialog *cfd EINA_UNUSED, Evas *evas, E_Config_Dia e_widget_framelist_object_append(of, ob); e_widget_check_widget_disable_on_unchecked_add(oc, ob); - ob = e_widget_label_add(evas, _("Theme")); + ob = e_widget_label_add(evas, _("E Theme")); e_widget_framelist_object_append(of, ob); e_widget_check_widget_disable_on_unchecked_add(oc, ob); - ob = e_widget_radio_add(evas, _("X"), 0, rg); + ob = e_widget_radio_add(evas, _("Application"), 0, rg); e_widget_on_change_hook_set(ob, _use_e_cursor_cb_change, cfdata); e_widget_framelist_object_append(of, ob); e_widget_check_widget_disable_on_unchecked_add(oc, ob); diff --git a/src/modules/conf_theme/e_int_config_xsettings.c b/src/modules/conf_theme/e_int_config_xsettings.c index e5cf725..e3c46f8 100644 --- a/src/modules/conf_theme/e_int_config_xsettings.c +++ b/src/modules/conf_theme/e_int_config_xsettings.c @@ -482,9 +482,11 @@ _basic_create(E_Config_Dialog *cfd EINA_UNUSED, Evas *evas, E_Config_Dialog_Data * e_widget_list_object_append(o, ow, 0, 0, 0.0); */ // >> advanced +#ifndef HAVE_WAYLAND_ONLY oc = e_widget_check_add(evas, _("Enable X Application Settings"), &(cfdata->enable_xsettings)); e_widget_list_object_append(ol, oc, 0, 0, 0.0); +#endif e_widget_check_widget_disable_on_unchecked_add(oc, ilist); e_widget_check_widget_disable_on_unchecked_add(oc, ow); e_widget_toolbook_page_append(otb, NULL, _("GTK Applications"), ol, --
[EGIT] [core/enlightenment] enlightenment-0.20 80/140: wayland: Fix xdg-popup crash
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=8a40d9c6ef31b5e4731ec3e3d582441ca3c5d11b commit 8a40d9c6ef31b5e4731ec3e3d582441ca3c5d11b Author: Derek Foreman Date: Fri Apr 1 13:03:54 2016 -0500 wayland: Fix xdg-popup crash We need to remove the destroy listener when we delete a pixmap or it leaves an invalid node on the signal list. --- src/bin/e_pixmap.c | 5 + 1 file changed, 5 insertions(+) diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c index c429d81..2bd94a7 100644 --- a/src/bin/e_pixmap.c +++ b/src/bin/e_pixmap.c @@ -209,6 +209,11 @@ _e_pixmap_free(E_Pixmap *cp) case E_PIXMAP_TYPE_WL: #ifdef HAVE_WAYLAND _e_pixmap_wayland_image_clear(cp); +if (cp->buffer_destroy_listener.notify) + { + wl_list_remove(&cp->buffer_destroy_listener.link); + cp->buffer_destroy_listener.notify = NULL; + } #endif break; default: --
[EGIT] [core/enlightenment] enlightenment-0.20 125/140: ensure resize is still deferred for changes.shape clients during failed resize
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=42b84fb7c8bdc6801677b4bdd9400da55272 commit 42b84fb7c8bdc6801677b4bdd9400da55272 Author: Mike Blumenkrantz Date: Fri Apr 22 12:13:11 2016 -0400 ensure resize is still deferred for changes.shape clients during failed resize ref c212bb4e21bd8c1334e02b3550c096ae6283f124 --- src/bin/e_comp_object.c | 12 +++- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 5934a2a..037e49d 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -1135,11 +1135,13 @@ _e_comp_intercept_resize(void *data, Evas_Object *obj, int w, int h) /* shapeless clients smh */ if (cw->ec->shaped && (!cw->ec->shape_rects)) return; /* pending shape change gtfo */ -if (cw->ec->changes.shape) return; -/* client can't be resized if its pixmap isn't usable, try again */ -e_pixmap_dirty(cw->ec->pixmap); -e_comp_object_render_update_add(obj); -e_comp_render_queue(); +if (!cw->ec->changes.shape) + { + /* client can't be resized if its pixmap isn't usable, try again */ + e_pixmap_dirty(cw->ec->pixmap); + e_comp_object_render_update_add(obj); + e_comp_render_queue(); + } cw->ec->changes.size = 1; EC_CHANGED(cw->ec); return; --
[EGIT] [core/enlightenment] enlightenment-0.20 106/140: allow mixer volume increase actions to exceed 100%
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=0c0377c68648e95aab6938f02b9f6db87edfdb1c commit 0c0377c68648e95aab6938f02b9f6db87edfdb1c Author: Mike Blumenkrantz Date: Mon Apr 18 11:42:45 2016 -0400 allow mixer volume increase actions to exceed 100% ref 0bbb20a3be3decbe1de16d42e829652f25c11fa7 cc @raster probably should have some kind of theme indicator in the theme for "high" volumes > 100% --- src/modules/mixer/e_mod_main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/mixer/e_mod_main.c b/src/modules/mixer/e_mod_main.c index 8723c28..fd3e808 100644 --- a/src/modules/mixer/e_mod_main.c +++ b/src/modules/mixer/e_mod_main.c @@ -179,10 +179,10 @@ _volume_increase_cb(E_Object *obj EINA_UNUSED, const char *params EINA_UNUSED) volume.volumes = calloc(s->volume.channel_count, sizeof(int)); for (i = 0; i < volume.channel_count; i++) { -if (s->volume.volumes[i] < EMIX_VOLUME_MAX - VOLUME_STEP) +if (s->volume.volumes[i] < (EMIX_VOLUME_MAX + 50) - VOLUME_STEP) volume.volumes[i] = s->volume.volumes[i] + VOLUME_STEP; -else if (s->volume.volumes[i] < EMIX_VOLUME_MAX) - volume.volumes[i] = EMIX_VOLUME_MAX; +else if (s->volume.volumes[i] < EMIX_VOLUME_MAX + 50) + volume.volumes[i] = EMIX_VOLUME_MAX + 50; else volume.volumes[i] = s->volume.volumes[i]; } --
[EGIT] [core/enlightenment] enlightenment-0.20 66/140: optimize case where an x11 client is focused/unfocused in same loop iteration
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ae6d22ac40909db4b30968993140bb2b4a454ec4 commit ae6d22ac40909db4b30968993140bb2b4a454ec4 Author: Mike Blumenkrantz Date: Thu Mar 31 11:20:19 2016 -0400 optimize case where an x11 client is focused/unfocused in same loop iteration --- src/bin/e_comp_x.c | 10 ++ 1 file changed, 10 insertions(+) diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c index 93213cf..d7a9e11 100644 --- a/src/bin/e_comp_x.c +++ b/src/bin/e_comp_x.c @@ -4503,6 +4503,11 @@ _e_comp_x_hook_client_focus_unset_job(void *d EINA_UNUSED) static void _e_comp_x_hook_client_focus_unset(void *d EINA_UNUSED, E_Client *ec) { + if (focus_job_client == ec) + { +focus_job_client = NULL; +E_FREE_FUNC(focus_job, ecore_job_del); + } unfocus_job_client = ec; if (!unfocus_job) unfocus_job = ecore_job_add(_e_comp_x_hook_client_focus_unset_job, NULL); @@ -4542,6 +4547,11 @@ _e_comp_x_hook_client_focus_set_job(void *d EINA_UNUSED) static void _e_comp_x_hook_client_focus_set(void *d EINA_UNUSED, E_Client *ec) { + if (unfocus_job_client == ec) + { +unfocus_job_client = NULL; +E_FREE_FUNC(unfocus_job, ecore_job_del); + } focus_job_client = ec; if (!focus_job) focus_job = ecore_job_add(_e_comp_x_hook_client_focus_set_job, NULL); --
[EGIT] [core/enlightenment] enlightenment-0.20 73/140: enforce wl xdg popup stacking relative to parent stacking
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=bf6ba1b003f3ab2ab1eabab8ade64e0bca9a0ac7 commit bf6ba1b003f3ab2ab1eabab8ade64e0bca9a0ac7 Author: Mike Blumenkrantz Date: Thu Mar 31 14:05:47 2016 -0400 enforce wl xdg popup stacking relative to parent stacking --- src/bin/e_comp_wl.c | 6 ++ src/modules/wl_desktop_shell/e_mod_main.c | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index c69b49b..c78f0b5 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -555,6 +555,12 @@ _e_comp_wl_evas_cb_restack(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EIN Eina_List *l, *ll; if (e_object_is_del(E_OBJECT(ec))) return; + if (e_client_has_xwindow(ec)) return; + EINA_LIST_FOREACH(ec->transients, l, sec) + { +evas_object_layer_set(sec->frame, evas_object_layer_get(ec->frame)); +evas_object_stack_above(sec->frame, ec->frame); + } if (!ec->comp_data->sub.list) return; EINA_LIST_FOREACH(ec->comp_data->sub.list, l, sec) evas_object_layer_set(sec->frame, evas_object_layer_get(ec->frame)); diff --git a/src/modules/wl_desktop_shell/e_mod_main.c b/src/modules/wl_desktop_shell/e_mod_main.c index 5290d3d..ab6c438 100644 --- a/src/modules/wl_desktop_shell/e_mod_main.c +++ b/src/modules/wl_desktop_shell/e_mod_main.c @@ -63,6 +63,8 @@ _e_shell_surface_parent_set(E_Client *ec, struct wl_resource *parent_resource) { pc->transients = eina_list_append(pc->transients, ec); ec->parent = pc; +evas_object_layer_set(ec->frame, evas_object_layer_get(pc->frame)); +evas_object_stack_above(ec->frame, pc->frame); } ec->icccm.fetch.transient_for = EINA_TRUE; --
[EGIT] [core/enlightenment] enlightenment-0.20 99/140: make e_client_has_xwindow() more wayland-only friendly
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=b4f664b7bcdadafc1f39c812267d719f6f8fa2e0 commit b4f664b7bcdadafc1f39c812267d719f6f8fa2e0 Author: Mike Blumenkrantz Date: Fri Apr 8 11:51:18 2016 -0400 make e_client_has_xwindow() more wayland-only friendly --- src/bin/e_client.c | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 7f771ab..67ea94a 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -4981,12 +4981,13 @@ e_client_has_xwindow(const E_Client *ec) #ifdef HAVE_WAYLAND_ONLY (void)ec; return EINA_FALSE; -#endif -#ifdef HAVE_WAYLAND +#else +# ifdef HAVE_WAYLAND if (!e_pixmap_is_x(ec->pixmap)) return !!e_comp_wl_client_xwayland_pixmap(ec); -#endif +# endif return e_pixmap_is_x(ec->pixmap); +#endif } --
[EGIT] [core/enlightenment] enlightenment-0.20 76/140: wayland: Stop E from consuming all CPU as soon as a selection is made
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=b2715d2586e8c948a065583697be6f09d83dbe0c commit b2715d2586e8c948a065583697be6f09d83dbe0c Author: Derek Foreman Date: Thu Mar 31 13:15:33 2016 -0500 wayland: Stop E from consuming all CPU as soon as a selection is made Clipboard fds from clients are regular files, which shouldn't be passed to fd_handler_add. Using the wrong add function causes epoll to return immediately and we end up running idle handlers and burning cpu. Reviewed-by: Mike Blumenkrantz --- src/bin/e_comp_wl_data.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bin/e_comp_wl_data.c b/src/bin/e_comp_wl_data.c index 420b784..cd2f1f3 100644 --- a/src/bin/e_comp_wl_data.c +++ b/src/bin/e_comp_wl_data.c @@ -937,9 +937,9 @@ e_comp_wl_clipboard_source_create(const char *mime_type, uint32_t serial, int fd if (fd > 0) { source->fd_handler = - ecore_main_fd_handler_add(fd, ECORE_FD_READ, -_e_comp_wl_clipboard_source_save, -e_comp->wl_comp_data, NULL, NULL); + ecore_main_fd_handler_file_add(fd, ECORE_FD_READ | ECORE_FD_ERROR, + _e_comp_wl_clipboard_source_save, + e_comp->wl_comp_data, NULL, NULL); if (!source->fd_handler) { _mime_types_free(&source->data_source); --
[EGIT] [core/enlightenment] enlightenment-0.20 89/140: don't print xwayland path twice...
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=a2d6a3e0ed452539f65c2013cc44e2ed834c4ce4 commit a2d6a3e0ed452539f65c2013cc44e2ed834c4ce4 Author: Mike Blumenkrantz Date: Mon Apr 4 15:40:21 2016 -0400 don't print xwayland path twice... --- src/modules/xwayland/e_mod_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/xwayland/e_mod_main.c b/src/modules/xwayland/e_mod_main.c index e3afb99..49c9ec1 100644 --- a/src/modules/xwayland/e_mod_main.c +++ b/src/modules/xwayland/e_mod_main.c @@ -222,7 +222,7 @@ _cb_xserver_event(void *data EINA_UNUSED, Ecore_Fd_Handler *hdlr EINA_UNUSED) snprintf(disp, sizeof(disp), ":%d", exs->disp); snprintf(xserver, sizeof(xserver), "%s", XWAYLAND_BIN); -DBG("\tLaunching %s: %s: %s", XWAYLAND_BIN, xserver, disp); +DBG("\tLaunching %s: %s", xserver, disp); if (execl(xserver, xserver, disp, "-rootless", "-listen", abs_fd, "-listen", unx_fd, "-terminate", "-shm", NULL) < 0) --
[EGIT] [core/enlightenment] enlightenment-0.20 56/140: feed mouse out to internal clients upon activating a mouse binding
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=bdc8078f876c85cdd93d9b475c7aff2e117731d4 commit bdc8078f876c85cdd93d9b475c7aff2e117731d4 Author: Mike Blumenkrantz Date: Wed Mar 30 10:22:33 2016 -0400 feed mouse out to internal clients upon activating a mouse binding this prevents internal windows from effectively processing pending mouse-up events ref T3347 --- src/bin/e_client.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index af5b479..998a111 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -2877,6 +2877,7 @@ e_client_mouse_down(E_Client *ec, int button, Evas_Point *output, E_Binding_Even e = evas_object_evas_get(ec->internal_elm_win); button_mask = evas_pointer_button_down_mask_get(e); + evas_event_feed_mouse_out(e, 0, NULL); for (i = 0; i < 32; i++) { if ((button_mask & (1 << i))) --
[EGIT] [core/enlightenment] enlightenment-0.20 60/140: reshuffle notifications on replace
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=fbb24d9e13995036047e26e2ba159c239f880857 commit fbb24d9e13995036047e26e2ba159c239f880857 Author: Mike Blumenkrantz Date: Wed Mar 30 16:20:49 2016 -0400 reshuffle notifications on replace --- src/modules/notification/e_mod_popup.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/notification/e_mod_popup.c b/src/modules/notification/e_mod_popup.c index de86673..470c5e3 100644 --- a/src/modules/notification/e_mod_popup.c +++ b/src/modules/notification/e_mod_popup.c @@ -133,6 +133,7 @@ notification_popup_notify(E_Notification_Notify *n, popup->notif = n; popup->id = id; _notification_popup_refresh(popup); +_notification_reshuffle_cb(NULL, NULL, NULL, NULL); } else if (!n->replaces_id) { --