[EGIT] [core/efl] master 01/01: Merge branch 'devs/cedric/evas_snapshot'
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=79f2576a8919c288f51939b12cc4edfd67023c17 commit 79f2576a8919c288f51939b12cc4edfd67023c17 Merge: 0d44b94 a7fd98f Author: Cedric BAIL Date: Thu Aug 6 11:06:55 2015 +0200 Merge branch 'devs/cedric/evas_snapshot' Evas snapshot feature is a new attribute for Evas_Objet_Image that allow the object to get the pixels of the object below it in its own buffer. This can be used for two typicall use case. First is improving accessibility by offering a magnifying glass using snapshot together with Evas_Map. Second is to make it possible to blur the underlying content (in conjunction with filters). This should make it possible to do some nice new theme and effect. NOTE: As a technical note, this feature is very costly at the point. We do not support partial update on surface and we can't know if the object below did change, so we are forced to redraw the full content of the snapshot object for every frame. The only way to fix it is to add per surface damage detection. I guess it is time to start rolling this in. src/bin/edje/edje_cc_handlers.c | 9 +- src/lib/edje/Edje_Common.h | 3 +- src/lib/edje/edje_cache.c | 3 + src/lib/edje/edje_calc.c| 7 + src/lib/edje/edje_data.c| 20 +- src/lib/edje/edje_load.c| 5 + src/lib/edje/edje_private.h | 4 +- src/lib/evas/canvas/evas_image.eo | 22 ++ src/lib/evas/canvas/evas_main.c | 4 +- src/lib/evas/canvas/evas_object_image.c | 63 - src/lib/evas/canvas/evas_object_main.c | 2 +- src/lib/evas/canvas/evas_render.c | 440 src/lib/evas/include/evas_inline.x | 3 + src/lib/evas/include/evas_private.h | 4 + 14 files changed, 416 insertions(+), 173 deletions(-) --
[EGIT] [tools/expedite] master 01/02: snapshot: add a test with blur.
cedric pushed a commit to branch master. http://git.enlightenment.org/tools/expedite.git/commit/?id=8e8a0795150dbc65e084d9f4cd28a099144b0e83 commit 8e8a0795150dbc65e084d9f4cd28a099144b0e83 Author: Cedric BAIL Date: Mon May 18 15:44:41 2015 +0200 snapshot: add a test with blur. --- src/bin/Makefile.am | 3 +- src/bin/snapshot_widgets_file_icons.c | 211 ++ src/bin/tests.h | 1 + 3 files changed, 214 insertions(+), 1 deletion(-) diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index d37babc..754b8ab 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -128,7 +128,8 @@ image_mask_13.c \ vg_basic_rect.c \ vg_basic_circle.c \ vg_basic_gradient.c \ -vg_scaled.c +vg_scaled.c \ +snapshot_widgets_file_icons.c # \ # image_mask_14.c \ # image_mask_15.c diff --git a/src/bin/snapshot_widgets_file_icons.c b/src/bin/snapshot_widgets_file_icons.c new file mode 100644 index 000..c78b9d4 --- /dev/null +++ b/src/bin/snapshot_widgets_file_icons.c @@ -0,0 +1,211 @@ +#define EFL_GFX_FILTER_BETA + +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME snapshot_widgets_file_icons_start +#define NAME "Snapshot Widgets File Icons" +#define ICON "widgets.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +/* standard var */ +static int done = 0; +/* private data */ +#define NUM 512 +#define ICON_SIZE 64 +static Evas_Object *o_images[NUM]; +static Evas_Object *o_texts[NUM]; +static Evas_Object *o_snap; + +static const char *icons[] = +{ + "bug.png", + "bulb.png", + "camera.png", + "colorbox.png", + + "e.png", + "error.png", + "flower.png", + "house.png", + + "mushroom.png", + "pulse.png", + "typewriter.png", + "warning.png", + + "watch.png" +}; + +/* setup */ +static void _setup(void) +{ + Evas_Object *o; + Evas_Coord x, y; + int i; + + x = y = 0; + for (i = 0; i < NUM; i++) + { +Evas_Coord tw, th, cent; + +o = eo_add(EVAS_IMAGE_CLASS, evas); +o_images[i] = o; +eo_do(o, + efl_file_set(build_path(icons[i % 13]), NULL), + efl_gfx_fill_set(0, 0, ICON_SIZE, ICON_SIZE), + efl_gfx_size_set(ICON_SIZE, ICON_SIZE), + efl_gfx_position_set(x + 8, y), + efl_gfx_visible_set(EINA_TRUE)); + +o = eo_add(EVAS_TEXT_CLASS, evas); +o_texts[i] = o; +eo_do(o, + efl_text_properties_font_set("Vera-Bold", 10), + efl_text_set(icons[i % 13]), + evas_obj_text_style_set(EVAS_TEXT_STYLE_FAR_SOFT_SHADOW), + efl_gfx_color_set(255, 255, 255, 255), + evas_obj_text_shadow_color_set(0, 0, 0, 24), + efl_gfx_visible_set(EINA_TRUE), + efl_gfx_size_get(&tw, &th)); +cent = ICON_SIZE + 16 - tw / 2; +eo_do(o, efl_gfx_position_set(x + cent, y + ICON_SIZE + 4)); +x += ICON_SIZE + 16; +if (x > win_w) + { + x = 0; + y += ICON_SIZE + 16; + } + } + + const char *filter = + "a = buffer { 'rgba' }" + "blend {}" + "blur { 5, dst = a }" + "blend { src = a, color = '#ff08' }" + ; + + o = eo_add(EVAS_IMAGE_CLASS, evas); + o_snap = o; + eo_do(o, + efl_gfx_visible_set(EINA_TRUE), + efl_gfx_position_set(50, 50), + efl_gfx_size_set(200, 200), + efl_gfx_fill_set(0, 0, 200, 200), + evas_obj_image_snapshot_set(EINA_TRUE), + efl_gfx_filter_program_set(filter, "test")); + + done = 0; +} + +/* cleanup */ +static void _cleanup(void) +{ + int i; + for (i = 0; i < NUM; i++) + { +eo_del(o_images[i]); +eo_del(o_texts[i]); + } + eo_del(o_snap); +} + +/* loop - do things */ +static int dx = 2; +static int dy = 2; + +static void _loop(double t, int f) +{ + int i; + Evas_Coord x, y, tw, th, cent; + x = 0; + y = 0 - f; + for (i = 0; i < NUM; i++) + { +eo_do(o_images[i], efl_gfx_position_set(x + 8, y)); +eo_do(o_texts[i], efl_gfx_size_get(&tw, &th)); +cent = (ICON_SIZE + 16 - tw) / 2; +eo_do(o_texts[i], efl_gfx_position_set(x + cent, y + ICON_SIZE + 4)); +x += ICON_SIZE + 16; +if (x > win_w) + { + x = 0; + y += ICON_SIZE + 16; + } + } + + if (1) + { +evas_object_geometry_get(o_snap, &x, &y, NULL, NULL); +if (dx > 0) + { + if (x + dx >= win_w) dx = -dx; + } +else + { + if (x + dx <= 0) dx = -dx; + } +x = x + dx; + +if (dy > 0) + { + if (y + dy >= win_h) dy = -dy; + } +else + { + if (y + dy <= 0) dy = -dy; + } +x = x + dx; + +evas_object_move(o_snap, x, y); + } + + FPS_STD(NAME); +} + +/* prepend special key handlers if interactive (before ST
[EGIT] [tools/expedite] master 02/02: snapshot: simplify filter code.
cedric pushed a commit to branch master. http://git.enlightenment.org/tools/expedite.git/commit/?id=6c1e40666d3dbbfe73a7b5d3c60323d995994243 commit 6c1e40666d3dbbfe73a7b5d3c60323d995994243 Author: Jean-Philippe Andre Date: Thu Aug 6 09:28:03 2015 +0200 snapshot: simplify filter code. --- src/bin/snapshot_widgets_file_icons.c | 5 + 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/bin/snapshot_widgets_file_icons.c b/src/bin/snapshot_widgets_file_icons.c index c78b9d4..4bfb42f 100644 --- a/src/bin/snapshot_widgets_file_icons.c +++ b/src/bin/snapshot_widgets_file_icons.c @@ -84,10 +84,7 @@ static void _setup(void) } const char *filter = - "a = buffer { 'rgba' }" - "blend {}" - "blur { 5, dst = a }" - "blend { src = a, color = '#ff08' }" + "blur { 5, dst = a, color = '#ff08' }" ; o = eo_add(EVAS_IMAGE_CLASS, evas); --
[EGIT] [core/elementary] master 01/01: Multibuttonentry item: Migrate docs to new eolian format.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=de2e30ad06264b1b593793253bbac0b4401cefce commit de2e30ad06264b1b593793253bbac0b4401cefce Author: Tom Hacohen Date: Thu Aug 6 14:25:44 2015 +0100 Multibuttonentry item: Migrate docs to new eolian format. --- src/lib/elm_multibuttonentry_item.eo | 37 1 file changed, 8 insertions(+), 29 deletions(-) diff --git a/src/lib/elm_multibuttonentry_item.eo b/src/lib/elm_multibuttonentry_item.eo index ad496c1..abaf450 100644 --- a/src/lib/elm_multibuttonentry_item.eo +++ b/src/lib/elm_multibuttonentry_item.eo @@ -3,43 +3,22 @@ class Elm.Multibuttonentry_Item(Elm.Widget_Item) eo_prefix: elm_obj_multibuttonentry_item; methods { @property selected { + [[Control the selected state of an item]] get { - /*@ - Get the selected state of an item - - @ingroup Multibuttonentry - */ } set { - /*@ - Set the selected state of an item - - @ingroup Multibuttonentry - */ } values { - selected: bool; /*@ EINA_TRUE if selected EINA_FALSE otherwise */ + selected: bool; [[$true if selected $false otherwise]] } } - prev_get @const { -/*@ - Get the previous item in the multibuttonentry - - @return The item before the item @p it - - @ingroup Multibuttonentry -*/ -return: Elm_Object_Item *; +prev_get @const { + [[Get the previous item in the multibuttonentry]] + return: Elm_Object_Item *; [[The item before the item]] } - next_get @const { -/*@ - Get the next item in the multibuttonentry - - @return The item after the item @p it - - @ingroup Multibuttonentry - */ - return: Elm_Object_Item *; +next_get @const { + [[Get the next item in the multibuttonentry]] + return: Elm_Object_Item *; [[The item after the item]] } } implements { --
[EGIT] [core/elementary] master 01/01: Eo files: Use Elm.Widget_Item instead of Elm_Object_Item.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=48bdd7125acca41fb8fcef814e58f918a5229424 commit 48bdd7125acca41fb8fcef814e58f918a5229424 Author: Tom Hacohen Date: Thu Aug 6 14:30:34 2015 +0100 Eo files: Use Elm.Widget_Item instead of Elm_Object_Item. This is the correct Eolian type. Elm_Object_Item is dead. --- src/lib/elm_colorselector.eo | 4 ++-- src/lib/elm_ctxpopup.eo | 8 src/lib/elm_ctxpopup_item.eo | 4 ++-- src/lib/elm_diskselector.eo | 8 src/lib/elm_diskselector_item.eo | 4 ++-- src/lib/elm_flipselector.eo | 10 - src/lib/elm_flipselector_item.eo | 4 ++-- src/lib/elm_gengrid.eo | 28 - src/lib/elm_gengrid_item.eo | 4 ++-- src/lib/elm_genlist.eo | 40 ++-- src/lib/elm_genlist_item.eo | 8 src/lib/elm_hoversel.eo | 6 +++--- src/lib/elm_index.eo | 18 src/lib/elm_list.eo | 32 ++--- src/lib/elm_list_item.eo | 4 ++-- src/lib/elm_menu.eo | 16 +++ src/lib/elm_menu_item.eo | 6 +++--- src/lib/elm_multibuttonentry.eo | 20 +- src/lib/elm_multibuttonentry_item.eo | 4 ++-- src/lib/elm_naviframe.eo | 18 src/lib/elm_popup.eo | 2 +- src/lib/elm_segment_control.eo | 8 src/lib/elm_slideshow.eo | 12 +-- src/lib/elm_toolbar.eo | 22 ++-- src/lib/elm_toolbar_item.eo | 4 ++-- src/lib/elm_widget.eo| 2 +- src/lib/elm_widget_item.eo | 2 +- 27 files changed, 149 insertions(+), 149 deletions(-) diff --git a/src/lib/elm_colorselector.eo b/src/lib/elm_colorselector.eo index cc036c7..2f90512 100644 --- a/src/lib/elm_colorselector.eo +++ b/src/lib/elm_colorselector.eo @@ -84,14 +84,14 @@ class Elm.Colorselector (Elm.Layout, Elm_Interface_Atspi_Widget_Action, @since 1.9]] -return: Elm_Object_Item *;[[The selected item, or $null if none +return: Elm.Widget_Item *;[[The selected item, or $null if none selected.]] } } palette_color_add { [[Add a new color item to palette.]] - return: Elm_Object_Item *;[[A new color palette Item.]] + return: Elm.Widget_Item *;[[A new color palette Item.]] params { @in r: int; [[r-value of color]] @in g: int; [[g-value of color]] diff --git a/src/lib/elm_ctxpopup.eo b/src/lib/elm_ctxpopup.eo index bd89305..7dade89 100644 --- a/src/lib/elm_ctxpopup.eo +++ b/src/lib/elm_ctxpopup.eo @@ -143,7 +143,7 @@ class Elm.Ctxpopup (Elm.Layout, Elm_Interface_Atspi_Widget_Action) @since 1.11 ]] -return: Elm_Object_Item *; [[The first item or $null, if it has no items (and on +return: Elm.Widget_Item *; [[The first item or $null, if it has no items (and on errors).]] } @@ -158,7 +158,7 @@ class Elm.Ctxpopup (Elm.Layout, Elm_Interface_Atspi_Widget_Action) @since 1.1 ]] -return: Elm_Object_Item *; [[The last item or $null, if it has no items (and on +return: Elm.Widget_Item *; [[The last item or $null, if it has no items (and on errors).]] } @@ -183,7 +183,7 @@ class Elm.Ctxpopup (Elm.Layout, Elm_Interface_Atspi_Widget_Action) See also \@ref elm_object_content_set. ]] - return: Elm_Object_Item *; [[A handle to the item added or $null, on errors.]] + return: Elm.Widget_Item *; [[A handle to the item added or $null, on errors.]] params { @in label: const(char)*; [[The Label of the new item]] @@ -202,7 +202,7 @@ class Elm.Ctxpopup (Elm.Layout, Elm_Interface_Atspi_Widget_Action) @since 1.11 ]] - return: Elm_Object_Item *; [[A handle to the item added or $null, on errors.]] + return: Elm.Widget_Item *; [[A handle to the item added or $null, on errors.]] params { @in label: const(char)*; [[The Label of the new item]] diff --git a/src/lib/elm_ctxpopup_item.eo b/src/lib/elm_ctxpopup_item.eo index abbbe49..f42979f 100644 --- a/src/lib/elm_ctxpopup_item.eo +++ b/src/lib/elm_ctxpopup_item.eo @@ -13,7 +13,7 @@ class Elm.Ctxpopup_Item(Elm.Widget_Item) ]] } values { - item: Elm_Object_Item *; [[The item before the object in its parent's list. If there is no previous item for $ it or there's an error, $null is returned.]] + item: Elm.Widget_Item *; [[The item before the object in its parent's list. If there is no previous item for $ it or there's an
[EGIT] [core/elementary] master 02/02: Hoversel item: migrate docs.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=251dd3190d0a81cbf53c1f0899bee88dd4b3e716 commit 251dd3190d0a81cbf53c1f0899bee88dd4b3e716 Author: Tom Hacohen Date: Thu Aug 6 14:48:25 2015 +0100 Hoversel item: migrate docs. --- src/lib/elm_hoversel_item.eo | 26 ++ 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/src/lib/elm_hoversel_item.eo b/src/lib/elm_hoversel_item.eo index 237a891..7484150 100644 --- a/src/lib/elm_hoversel_item.eo +++ b/src/lib/elm_hoversel_item.eo @@ -3,31 +3,17 @@ class Elm.Hoversel_Item(Elm.Widget_Item) eo_prefix: elm_obj_hoversel_item; methods { @property icon { - get { - /*@ - @brief This sets the icon for the given hoversel item. - - The icon can be loaded from the standard set, from an image file, or from - an edje file. - - @see elm_hoversel_item_add() + [[This controls the icon for the given hoversel item. - @ingroup Hoversel - */ + The icon can be loaded from the standard set, from an image file, or from an edje file.]] + get { } set { - /*@ - @brief Get the icon object of the hoversel item. - - @see elm_hoversel_item_add() - - @ingroup Hoversel - */ } values { -icon_file: const (char) * @nullable; /*@ An image file path on disk to use for the icon or standard icon name */ -icon_group: const (char) * @nullable; /*@ The edje group to use if @p icon_file is an edje file. Set this to NULL if the icon is not an edje file */ -icon_type: Elm_Icon_Type; /*@ The icon type */ +icon_file: const (char) * @nullable; [[An image file path on disk to use for the icon or standard icon name]] +icon_group: const (char) * @nullable; [[The edje group to use if $icon_file is an edje file. Set this to NULL if the icon is not an edje file]] +icon_type: Elm_Icon_Type; [[The icon type]] } } } --
[EGIT] [core/elementary] master 01/02: Hoversel: migrate docs.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=3403056898a492fc14d8e712f660465ee5943286 commit 3403056898a492fc14d8e712f660465ee5943286 Author: Tom Hacohen Date: Thu Aug 6 14:47:09 2015 +0100 Hoversel: migrate docs. --- src/lib/elm_hoversel.eo | 141 +--- 1 file changed, 36 insertions(+), 105 deletions(-) diff --git a/src/lib/elm_hoversel.eo b/src/lib/elm_hoversel.eo index 59b9bee..324b4da 100644 --- a/src/lib/elm_hoversel.eo +++ b/src/lib/elm_hoversel.eo @@ -5,154 +5,85 @@ class Elm.Hoversel (Elm.Button, Evas.Selectable_Interface, eo_prefix: elm_obj_hoversel; methods { @property horizontal { - set { -/*@ -@brief This sets the hoversel to expand horizontally. - -@note The initial button will display horizontally regardless of this -setting. + [[Control if the hoversel should expand horizontally. -@ingroup Hoversel */ + Note: The initial button will display horizontally regradless of this setting.]] + set { } get { -/*@ -@brief This returns whether the hoversel is set to expand horizontally. - -@return If true, the hover will expand horizontally to the right. - -@see elm_hoversel_horizontal_set() - -@ingroup Hoversel */ } values { -horizontal: bool; /*@ If true, the hover will expand horizontally to the -right. */ +horizontal: bool; [[If $true, the hover will expand horizontally to the right.]] } } @property hover_parent { - set { -/*@ -@brief Set the Hover parent - -Sets the hover parent object, the area that will be darkened when the -hoversel is clicked. Should probably be the window that the hoversel is -in. See @ref Hover objects for more information. + [[Control the hover parent. -@ingroup Hoversel */ + Sets the hover parent object, the area that will be darkened when the + hoversel is clicked. Should probably be the window that the hoversel is + in.]] + set { } get { -/*@ -@brief Get the Hover parent - -@return The used parent - -Get the hover parent object. - -@see elm_hoversel_hover_parent_set() - -@ingroup Hoversel */ } values { -parent: Evas.Object * @nullable; /*@ The parent to use */ +parent: Evas.Object * @nullable; [[The parent to use]] } } @property expanded { get { -/*@ -@brief Returns whether the hoversel is expanded. - -@return This will return @c EINA_TRUE if the hoversel is expanded or -@c EINA_FALSE if it is not expanded. - -@ingroup Hoversel */ -return: bool; +[[Returns whether the hoversel is expanded.]] +return: bool; [[$true if the hoversel is expanded or $false otherwise]] } } @property items { get { -/*@ -@brief Get the list of items within the given hoversel. - -@return Returns a list of Elm.Widget_Item - -@see elm_hoversel_item_add() - -@ingroup Hoversel */ +[[Get the list of items within the given hoversel.]] return: const(list)*; } } @property scroll_enabled { - get { -/*@ -@brief Limit the size of contents and make them scrollable. + [[Control wether scrolling is enabled. -@ingroup Hoversel */ + This Limit the size of contents and make them scrollable.]] + get { } set { -/*@ -@brief Returns whether the contents of hoversel are scrollable or not. - -@return @c EINA_TRUE scrollable. @c EINA_FALSE otherwise. - -@ingroup Hoversel */ } values { -scroll_enabled: bool; +scroll_enabled: bool; [[$true if scrollable $false otherwise.]] } } hover_begin { - /*@ - @brief This triggers the hoversel popup from code, the same as if the user - had clicked the button. - - @ingroup Hoversel */ - + [[This triggers the hoversel popup from code, the same as if the user had clicked the button.]] } clear { - /*@ - @brief This will remove all the children items from the hoversel. - - @warning Should @b not be called while the hoversel is active; use - elm_hoversel_expanded_get() to check first. - - @see elm_object_item_del() - - @ingroup Hoversel */ + [[This will remove all the ch
[EGIT] [core/elementary] master 01/01: Atspi widget action: migrate docs.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=6f7f794e6e95382380c7e274bf7d10bcf8705630 commit 6f7f794e6e95382380c7e274bf7d10bcf8705630 Author: Tom Hacohen Date: Thu Aug 6 14:52:01 2015 +0100 Atspi widget action: migrate docs. --- src/lib/elm_interface_atspi_widget_action.eo | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/lib/elm_interface_atspi_widget_action.eo b/src/lib/elm_interface_atspi_widget_action.eo index 8a1abea..8f2b365 100644 --- a/src/lib/elm_interface_atspi_widget_action.eo +++ b/src/lib/elm_interface_atspi_widget_action.eo @@ -8,8 +8,7 @@ mixin Elm_Interface_Atspi_Widget_Action (Elm_Interface_Atspi_Action) get { } values { -actions: const(Elm_Atspi_Action)*; /*@ NULL-terminated array of Elm_Actions - */ +actions: const(Elm_Atspi_Action)*; [[NULL-terminated array of Elm_Atspi_Action]] } } } --
[EGIT] [core/elementary] master 01/06: Atspi accessible: migrate docs.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=837b51dfc8e94827d37d72001468363a762ebf30 commit 837b51dfc8e94827d37d72001468363a762ebf30 Author: Tom Hacohen Date: Thu Aug 6 14:53:50 2015 +0100 Atspi accessible: migrate docs. --- src/lib/elm_interface_atspi_accessible.eo | 32 ++- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/src/lib/elm_interface_atspi_accessible.eo b/src/lib/elm_interface_atspi_accessible.eo index 9d576b6..0110e50 100644 --- a/src/lib/elm_interface_atspi_accessible.eo +++ b/src/lib/elm_interface_atspi_accessible.eo @@ -6,7 +6,7 @@ mixin Elm_Interface_Atspi_Accessible () methods { @property localized_role_name @protected { get { -/*@ Gets an localized string describing ATSPI widget role name. */ +[[Gets an localized string describing ATSPI widget role name.]] } values { localized_name: const(char)*; @@ -14,19 +14,17 @@ mixin Elm_Interface_Atspi_Accessible () } @property name @protected { get { -/*@ Gets an string describing ATSPI widget role name. -Should be free by a user. */ +[[Gets an string describing ATSPI widget role name. Should be free by a user.]] } set { } values { -name: char*; /*@ obj name */ +name: char*; [[obj name]] } } @property relation_set @protected { get { -/*@ Gets an string describing ATSPI widget role name. Lists and -elements Should be free by a user. */ +[[Gets an string describing ATSPI widget role name. Lists and elements Should be free by a user.]] } values { relations: own(list *); @@ -34,7 +32,7 @@ mixin Elm_Interface_Atspi_Accessible () } @property role @protected { get { -/*@ Gets the role of the widget in ATSPI Accessibility domain. */ +[[Gets the role of the widget in ATSPI Accessibility domain.]] } set { } @@ -44,7 +42,7 @@ mixin Elm_Interface_Atspi_Accessible () } @property children @protected { get { -/*@ Gets widget's accessible children. */ +[[Gets widget's accessible children.]] } values { children: free(own(list *), eina_list_free); @@ -52,8 +50,7 @@ mixin Elm_Interface_Atspi_Accessible () } @property role_name @protected { get { -/*@ Gets human-readable string indentifying widget accessibility -role. */ +[[Gets human-readable string indentifying widget accessibility role.]] } values { role_name: const(char)*; @@ -61,8 +58,7 @@ mixin Elm_Interface_Atspi_Accessible () } @property attributes @protected { get { -/*@ Gets key-value pairs indentifying widget extra -attributes. Must be free by a user. */ +[[Gets key-value pairs indentifying widget extra attributes. Must be free by a user.]] } values { attributes: free(own(list *), elm_atspi_attributes_list_free); @@ -70,7 +66,7 @@ mixin Elm_Interface_Atspi_Accessible () } @property index_in_parent @protected { get { -/*@ Gets index of the child in parent's children list. */ +[[Gets index of the child in parent's children list.]] } values { idx: int; @@ -78,10 +74,10 @@ mixin Elm_Interface_Atspi_Accessible () } @property description @protected { get { -/*@ Gets widget contextual information. */ +[[Gets widget contextual information.]] } set { -/*@ Sets contextual information about widget. */ +[[Sets contextual information about widget.]] } values { description: const(char)*; @@ -89,10 +85,10 @@ mixin Elm_Interface_Atspi_Accessible () } @property parent @protected { get { -/*@ Gets widget accessible parent. */ +[[Gets widget accessible parent.]] } set { -/*@ Sets widget accessible parent. */ +[[Sets widget accessible parent.]] } values { parent: Eo *; @@ -100,7 +96,7 @@ mixin Elm_Interface_Atspi_Accessible () } @property state_set @protected { get { -/*@ Gets set describing widget accessible states. */ +[[Gets set describing widget accessible states.]] } values { states: Elm_Atspi_State_Set; --
[EGIT] [core/elementary] master 02/06: Elm slideshow item: migrate docs.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=d353b88625b96b52b55abe8a1ab90e423b8551b3 commit d353b88625b96b52b55abe8a1ab90e423b8551b3 Author: Tom Hacohen Date: Thu Aug 6 14:56:47 2015 +0100 Elm slideshow item: migrate docs. --- src/lib/elm_slideshow_item.eo | 38 +++--- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/src/lib/elm_slideshow_item.eo b/src/lib/elm_slideshow_item.eo index 62b21cc..b065fc1 100644 --- a/src/lib/elm_slideshow_item.eo +++ b/src/lib/elm_slideshow_item.eo @@ -3,35 +3,27 @@ class Elm.Slideshow_Item(Elm.Widget_Item) eo_prefix: elm_obj_slideshow_item; methods { show { -/*@ - Display a given slideshow widget's item, programmatically. + [[Display a given slideshow widget's item, programmatically. - The change between the current item and @p item will use the - transition @p obj is set to use (@see - elm_slideshow_transition_set()). + The change between the current item and $item will use the + transition $obj is set to use. - @ingroup Slideshow -*/ + See: Elm.Slidshow.transition.get]] + /* FIXME Make a proper ref ^ */ } object_get @const { - /*@ - Get the real Evas object created to implement the view of a - given slideshow item + [[Get the real Evas object created to implement the view of a given slideshow item. - This returns the actual Evas object used to implement the - specified slideshow item's view. This may be @c NULL, as it may - not have been created or may have been deleted, at any time, by - the slideshow. Do not modify this object (move, resize, - show, hide, etc.), as the slideshow is controlling it. This - function is for querying, emitting custom signals or hooking - lower level callbacks for events on that object. Do not delete - this object under any circumstances. + This returns the actual Evas object used to implement the + specified slideshow item's view. This may be $null, as it may + not have been created or may have been deleted, at any time, by + the slideshow. **Do not modify this object** (move, resize, + show, hide, etc.), as the slideshow is controlling it. This + function is for querying, emitting custom signals or hooking + lower level callbacks for events on that object. Do not delete + this object under any circumstances.]] - @see elm_object_item_data_get() - - @ingroup Slideshow - */ - return: Evas.Object*; + return: Evas.Object*; } } implements { --
[EGIT] [core/elementary] master 04/06: Elm segment control item: migrate docs.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=385ecb2ef8d076db02c830f5c139dd5df8f81b2d commit 385ecb2ef8d076db02c830f5c139dd5df8f81b2d Author: Tom Hacohen Date: Thu Aug 6 15:05:42 2015 +0100 Elm segment control item: migrate docs. --- src/lib/elm_segment_control_item.eo | 49 - 1 file changed, 15 insertions(+), 34 deletions(-) diff --git a/src/lib/elm_segment_control_item.eo b/src/lib/elm_segment_control_item.eo index 392a0ed..16c5ac6 100644 --- a/src/lib/elm_segment_control_item.eo +++ b/src/lib/elm_segment_control_item.eo @@ -3,52 +3,33 @@ class Elm.Segment_Control_Item(Elm.Widget_Item) eo_prefix: elm_obj_segment_control_item; methods { index_get @const { - /*@ - Get the index of an item. + [[Get the index of an item. - Index is the position of an item in segment control widget. Its - range is from @c 0 to count - 1 . - Count is the number of items, that can be get with - elm_segment_control_item_count_get(). + Index is the position of an item in segment control widget. Its + range is from 0 to (count - 1). + Count is the number of items, that can be get with elm_segment_control_item_count_get()]] - @return The position of item in segment control widget. - - @ingroup SegmentControl - */ - return: int(-1); + return: int(-1); [[The position of item in segment control widget.]] } object_get @const { - /*@ - Get the real Evas(Edje) object created to implement the view of a given - segment_control @p item. - - Base object is the @c Evas_Object that represents that item. + [[Get the real Evas(Edje) object created to implement the view of a given segment_control item. - @return The base Edje object associated with @p it. - - @ingroup SegmentControl - */ - return: Evas.Object*; + Base object is the @Evas.Object that represents that item.]] + return: Evas.Object*; [[The base Edje object associated with $it]] } selected_set { - /*@ - Set the selected state of an item. - - This sets the selected state of the given item @p it. - @c EINA_TRUE for selected, @c EINA_FALSE for not selected. + [[Set the selected state of an item. - If a new item is selected the previously selected will be unselected. - Selected item can be got with function - elm_segment_control_item_selected_get(). + This sets the selected state of the given item $it. + $true for selected, $false for not selected. - The selected item always will be highlighted on segment control. + If a new item is selected the previously selected will be unselected. + Selected item can be got with function elm_segment_control_item_selected_get(). - @see elm_segment_control_item_selected_get() + The selected item always will be highlighted on segment control.]] - @ingroup SegmentControl - */ params { - selected: bool; /*@ The selected state. */ + selected: bool; [[The selected state.]] } } } --
[EGIT] [core/elementary] master 03/06: Elm index item: migrate docs.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=3ae413c1e69d60ce73dd0427cf32e4f037105d0a commit 3ae413c1e69d60ce73dd0427cf32e4f037105d0a Author: Tom Hacohen Date: Thu Aug 6 14:59:32 2015 +0100 Elm index item: migrate docs. --- src/lib/elm_index_item.eo | 49 --- 1 file changed, 16 insertions(+), 33 deletions(-) diff --git a/src/lib/elm_index_item.eo b/src/lib/elm_index_item.eo index 3cfe709..36d490a 100644 --- a/src/lib/elm_index_item.eo +++ b/src/lib/elm_index_item.eo @@ -4,55 +4,38 @@ class Elm.Index_Item(Elm.Widget_Item) methods { @property selected { set { - /*@ - Set the selected state of an item. + [[Set the selected state of an item. - This sets the selected state of the given item @p it. - @c EINA_TRUE for selected, @c EINA_FALSE for not selected. +This sets the selected state of the given item $it. +$true for selected, $false for not selected. - If a new item is selected the previously selected will be unselected. - Previously selected item can be get with function - elm_index_selected_item_get(). +If a new item is selected the previously selected will be unselected. +Previously selected item can be get with function +elm_index_selected_item_get(). - Selected items will be highlighted. - - @see elm_index_selected_item_get() - - @ingroup Index - */ +Selected items will be highlighted.]] } values { - selected: bool; /*@ EINA_TRUE if selected EINA_FALSE otherwise */ + selected: bool; [[$true if selected, $false otherwise]] } } @property priority { set { - /*@ - Sets the priority of an item. - - The priority is @c -1 by default, which means that the item doesn't belong to a group. - The value of the priority starts from @c 0. + [[Sets the priority of an item. - In elm_index_level_go, the items are sorted in ascending order according to priority. - Items of the same priority make a group and the primary group is shown by default. +The priority is -1 by default, which means that the item doesn't belong to a group. +The value of the priority starts from 0. - @see elm_index_item_priority_get() - - @ingroup Index - */ +In elm_index_level_go, the items are sorted in ascending order according to priority. +Items of the same priority make a group and the primary group is shown by default.]] } values { - priority: int; /*@ The priority */ + priority: int; [[The priority]] } } letter_get @const { -/*@ - Get the letter (string) set on a given index widget item. - @return The letter string set on @p item - - @ingroup Index -*/ -return: const (char)*; + [[Get the letter (string) set on a given index widget item.]] +return: const (char)*; [[The letter string set on $item]] } } implements { --
[EGIT] [core/elementary] master 05/06: Eo files: Replace all occurances of EINA_TRUE/FALSE to true/false.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=d9ed947699b441192c2546fe345dd2f5f2b04ba5 commit d9ed947699b441192c2546fe345dd2f5f2b04ba5 Author: Tom Hacohen Date: Thu Aug 6 15:11:22 2015 +0100 Eo files: Replace all occurances of EINA_TRUE/FALSE to true/false. --- src/lib/elm_datetime.eo | 16 +- src/lib/elm_diskselector.eo | 2 +- src/lib/elm_entry.eo | 58 ++-- src/lib/elm_flip.eo | 4 +-- src/lib/elm_gengrid.eo | 34 ++--- src/lib/elm_gengrid_item.eo | 6 ++-- src/lib/elm_genlist.eo | 32 ++-- src/lib/elm_genlist_item.eo | 14 - src/lib/elm_gesture_layer.eo | 2 +- src/lib/elm_image.eo | 46 ++-- src/lib/elm_index.eo | 20 ++--- src/lib/elm_interface_atspi_text.eo | 2 +- src/lib/elm_interface_atspi_value.eo | 4 +-- src/lib/elm_layout.eo| 42 +- src/lib/elm_list.eo | 22 +++--- src/lib/elm_map.eo | 10 +++ src/lib/elm_multibuttonentry.eo | 10 +++ src/lib/elm_naviframe.eo | 14 - src/lib/elm_popup.eo | 6 ++-- src/lib/elm_prefs.eo | 28 - src/lib/elm_progressbar.eo | 26 src/lib/elm_segment_control.eo | 2 +- src/lib/elm_slider.eo| 28 - src/lib/elm_slideshow.eo | 8 ++--- src/lib/elm_spinner.eo | 12 src/lib/elm_table.eo | 4 +-- src/lib/elm_toolbar.eo | 8 ++--- src/lib/elm_toolbar_item.eo | 26 src/lib/elm_web.eo | 44 +-- src/lib/elm_widget.eo| 2 +- src/lib/elm_widget_item.eo | 16 +- src/lib/elm_win.eo | 32 ++-- 32 files changed, 290 insertions(+), 290 deletions(-) diff --git a/src/lib/elm_datetime.eo b/src/lib/elm_datetime.eo index 674e964..a414d50 100644 --- a/src/lib/elm_datetime.eo +++ b/src/lib/elm_datetime.eo @@ -154,7 +154,7 @@ class Elm.Datetime (Elm.Layout) Minute: default value range is from 0 to 59. - @return @c EINA_TRUE if minimum value is accepted. + @return @c true if minimum value is accepted. @see elm_datetime_value_min_get() @ingroup Datetime */ @@ -179,7 +179,7 @@ class Elm.Datetime (Elm.Layout) Minute: default value range is from 0 to 59. - @return @c EINA_TRUE if minimum value is successfully returned. + @return @c true if minimum value is successfully returned. @see elm_datetime_value_min_set() @ingroup Datepicker */ @@ -203,7 +203,7 @@ class Elm.Datetime (Elm.Layout) Minute: default value range is from 0 to 59. - @return @c EINA_TRUE if current time is set successfully. + @return @c true if current time is set successfully. @see elm_datetime_value_set() @ingroup Datetime */ @@ -228,7 +228,7 @@ class Elm.Datetime (Elm.Layout) Minute: default value range is from 0 to 59. - @return @c EINA_TRUE if current time is returned successfully. + @return @c true if current time is returned successfully. @see elm_datetime_value_set() @ingroup Datetime */ @@ -254,14 +254,14 @@ class Elm.Datetime (Elm.Layout) params { @in fieldtype: Elm.Datetime.Field_Type; /*@ Type of the field. #ELM_DATETIME_YEAR etc. */ -@in visible: bool; /*@ @c EINA_TRUE field can be visible, @c EINA_FALSE otherwise. */ +@in visible: bool; /*@ @c true field can be visible, @c false otherwise. */ } } field_visible_get @const { /*@ @brief Get whether a field can be visible/not - @return bool @c EINA_TRUE, if field can be visible. @c EINA_FALSE otherwise. + @return bool @c true, if field can be visible. @c false otherwise. @see elm_datetime_field_visible_set() @ingroup Datetime */ @@ -285,7 +285,7 @@ class Elm.Datetime (Elm.Layout) Minute: default value range is from 0 to 59. - @return @c EINA_TRUE if maximum value is accepted. + @return @c true if maximum value is accepted. @see elm_datetime_value_max_get() @ingroup Datetime */ @@ -310,7 +310,7 @@ class Elm.Datetime (Elm.Layout) Minute: default value range is from 0 to 59. - @return @c EINA_TRUE if maximum value is returned successfully. + @return @c true if maximum value is returned successfully. @see elm_datetime_value_max_set() @ingroup Datetime */ diff --git a/src/lib/elm_disksele
[EGIT] [core/efl] master 01/01: eolian: @since no longer needs to be its own paragraph in docs
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=aa65c7ef5b5f0a05d33c842630d9cf6143977237 commit aa65c7ef5b5f0a05d33c842630d9cf6143977237 Author: Daniel Kolesa Date: Thu Aug 6 16:53:41 2015 +0100 eolian: @since no longer needs to be its own paragraph in docs However, it still terminates the doc. --- src/lib/eolian/eo_lexer.c | 102 +++--- src/tests/eolian/data/docs.eo | 4 +- 2 files changed, 57 insertions(+), 49 deletions(-) diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c index 35bb3d0..6d8559c 100644 --- a/src/lib/eolian/eo_lexer.c +++ b/src/lib/eolian/eo_lexer.c @@ -258,12 +258,12 @@ enum Doc_Tokens { }; static int -doc_lex(Eo_Lexer *ls, Eina_Bool *term) +doc_lex(Eo_Lexer *ls, Eina_Bool *term, Eina_Bool *since) { int tokret = -1; - Eina_Bool contdoc = EINA_FALSE; eina_strbuf_reset(ls->buff); - for (;; contdoc = EINA_TRUE) switch (ls->current) + *since = EINA_FALSE; + for (;;) switch (ls->current) { /* error case */ case '\0': @@ -315,66 +315,67 @@ doc_lex(Eo_Lexer *ls, Eina_Bool *term) } eina_strbuf_append_char(ls->buff, ']'); continue; - /* @since case - only when starting a new paragraph */ + /* references and @since */ case '@': -eina_strbuf_append_char(ls->buff, '@'); -next_char(ls); -if (contdoc) +if ((size_t)(ls->stream_end - ls->stream) >= (sizeof("since")) && +!memcmp(ls->stream, "since ", sizeof("since"))) { - /* in-class references */ - if (ls->tmp.kls && ls->current == '.') - { - next_char(ls); - if (isalpha(ls->current) || ls->current == '_') -eina_strbuf_append(ls->buff, ls->tmp.kls->full_name); - eina_strbuf_append_char(ls->buff, '.'); - continue; - } - continue; - } -while (ls->current && isalpha(ls->current)) - { - eina_strbuf_append_char(ls->buff, ls->current); next_char(ls); + *since = EINA_TRUE; + for (size_t i = 0; i < sizeof("since"); ++i) + next_char(ls); + skip_ws(ls); + tokret = DOC_TEXT; + goto exit_with_token; } -if (!strcmp(eina_strbuf_string_get(ls->buff), "@since")) +eina_strbuf_append_char(ls->buff, '@'); +next_char(ls); +/* in-class references */ +if (ls->tmp.kls && ls->current == '.') { - /* since-token */ - eina_strbuf_reset(ls->buff); - skip_ws(ls); - while (ls->current && (ls->current == '.' || -ls->current == '_' || -isalnum(ls->current))) - { - eina_strbuf_append_char(ls->buff, ls->current); - next_char(ls); - } - if (!eina_strbuf_length_get(ls->buff)) - return DOC_UNFINISHED; - tokret = DOC_SINCE; - goto force_terminate; + next_char(ls); + if (isalpha(ls->current) || ls->current == '_') + eina_strbuf_append(ls->buff, ls->tmp.kls->full_name); + eina_strbuf_append_char(ls->buff, '.'); } +continue; /* default case - append character */ default: eina_strbuf_append_char(ls->buff, ls->current); next_char(ls); continue; } +terminated: + next_char(ls); + *term = EINA_TRUE; +exit_with_token: + eina_strbuf_trim(ls->buff); + return tokret; +} -force_terminate: +static int +read_since(Eo_Lexer *ls) +{ + eina_strbuf_reset(ls->buff); + while (ls->current && (ls->current == '.' || + ls->current == '_' || + isalnum(ls->current))) + { +eina_strbuf_append_char(ls->buff, ls->current); +next_char(ls); + } + if (!eina_strbuf_length_get(ls->buff)) + return DOC_UNFINISHED; skip_ws(ls); while (is_newline(ls->current)) next_line_ws(ls); - if (ls->current == ']') - next_char(ls); if (ls->current != ']') return DOC_MANGLED; -terminated: next_char(ls); - *term = EINA_TRUE; -exit_with_token: - eina_strbuf_trim(ls->buff); - return tokret; + if (ls->current != ']') + return DOC_MANGLED; + next_char(ls); + return DOC_SINCE; } void doc_error(Eo_Lexer *ls, const char *msg, Eolian_Documentation *doc, Eina_Strbuf *buf) @@ -396,10 +397,17 @@ read_doc(Eo_Lexer *ls, Eo_Token *tok, int line, int column) Eina_Strbuf *rbuf = eina_strbuf_new(); - Eina_Bool term = EINA_FALSE; + Eina_Bool term = EINA_FALSE, since = EINA_FALSE; while (!term) { -int read = doc_lex(ls, &term); +int read; +
[EGIT] [core/enlightenment] master 01/01: Update links in head.html
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=bd305a630f1856841d27afb71c2e8823df40ff63 commit bd305a630f1856841d27afb71c2e8823df40ff63 Author: Yomi Date: Thu Aug 6 12:01:14 2015 -0400 Update links in head.html Summary: Make sure links point to updated URLs. Reviewers: zmike Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D2913 --- doc/head.html | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/head.html b/doc/head.html index 605fec2..9468b5d 100644 --- a/doc/head.html +++ b/doc/head.html @@ -29,15 +29,15 @@ - http://www.enlightenment.org/p.php?p=home";>Home - http://www.enlightenment.org/p.php?p=news";>News - http://www.enlightenment.org/p.php?p=about";>About - http://www.enlightenment.org/p.php?p=download";>Download + https://www.enlightenment.org/";>Home + https://phab.enlightenment.org/phame/live/3/";>News + http://www.enlightenment.org/about";>About + http://www.enlightenment.org/download";>Download http://www.enlightenment.org/p.php?p=support";>Support http://www.enlightenment.org/p.php?p=contribute";>Contribute - http://www.enlightenment.org/p.php?p=contact";>Contact + http://www.enlightenment.org/contact";>Contact https://phab.enlightenment.org/maniphest/";>Tracker - http://www.enlightenment.org/p.php?p=docs";>Docs + http://www.enlightenment.org/docs";>Docs --
[EGIT] [core/efl] master 01/01: eolian: do not treat @since specially in validation (not needed)
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=26d0053a0fb68e233287c6eaaa12f2fdb905c776 commit 26d0053a0fb68e233287c6eaaa12f2fdb905c776 Author: Daniel Kolesa Date: Thu Aug 6 17:04:06 2015 +0100 eolian: do not treat @since specially in validation (not needed) --- src/lib/eolian/database_validate.c | 8 ++-- 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/lib/eolian/database_validate.c b/src/lib/eolian/database_validate.c index 7e96da5..43ab8bc 100644 --- a/src/lib/eolian/database_validate.c +++ b/src/lib/eolian/database_validate.c @@ -72,12 +72,8 @@ _validate_ref(const char *ref, const Eolian_Object *info) return EINA_TRUE; failed: - if (!strcmp(ref, "since")) - fprintf(stderr, "eolian:%s:%d:%d: '@since' treated as a reference (missing blank line?)\n", - info->file, info->line, info->column); - else - fprintf(stderr, "eolian:%s:%d:%d: failed validating reference '%s'\n", - info->file, info->line, info->column, ref); + fprintf(stderr, "eolian:%s:%d:%d: failed validating reference '%s'\n", + info->file, info->line, info->column, ref); return EINA_FALSE; } --
[EGIT] [core/enlightenment] master 02/02: module/geolocation: Use correct unref function for proxies.
stefan pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=1c61bfe049340a5252b9c2986d801431852f36d5 commit 1c61bfe049340a5252b9c2986d801431852f36d5 Author: Stefan Schmidt Date: Thu Aug 6 10:31:24 2015 +0200 module/geolocation: Use correct unref function for proxies. We used the manager unref for client and location as well. Looking at the generated code it does not make any difference right now but might do in the future so better fix this up. --- src/modules/geolocation/e_mod_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/geolocation/e_mod_main.c b/src/modules/geolocation/e_mod_main.c index d3a71b0..5e78f0f 100644 --- a/src/modules/geolocation/e_mod_main.c +++ b/src/modules/geolocation/e_mod_main.c @@ -438,8 +438,8 @@ _gc_shutdown(E_Gadcon_Client *gcc) inst = gcc->data; geolocation_instances = eina_list_remove(geolocation_instances, inst); evas_object_del(inst->icon); - geo_clue2_manager_proxy_unref(inst->location); - geo_clue2_manager_proxy_unref(inst->client); + geo_clue2_location_proxy_unref(inst->location); + geo_clue2_client_proxy_unref(inst->client); geo_clue2_manager_proxy_unref(inst->manager); eldbus_connection_unref(inst->conn); free(inst); --
[EGIT] [core/enlightenment] master 01/02: modules/geolocation: Remove unused eldbus interface variable
stefan pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c53dfe4e597ed74f4d6656658f064929fbf417d1 commit c53dfe4e597ed74f4d6656658f064929fbf417d1 Author: Stefan Schmidt Date: Thu Aug 6 10:30:25 2015 +0200 modules/geolocation: Remove unused eldbus interface variable Never used, no need to keep it. --- src/modules/geolocation/e_mod_main.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/modules/geolocation/e_mod_main.c b/src/modules/geolocation/e_mod_main.c index 11d0282..d3a71b0 100644 --- a/src/modules/geolocation/e_mod_main.c +++ b/src/modules/geolocation/e_mod_main.c @@ -42,7 +42,6 @@ struct _Instance int in_use; int available_accur_level; Eldbus_Connection *conn; - Eldbus_Service_Interface *iface; Eldbus_Proxy *manager; Eldbus_Proxy *client; Eldbus_Proxy *location; --
[EGIT] [core/elementary] master 02/04: elm_module: Load not installed modules from build dir with ELM_RUN_IN_TREE
stefan pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=d5d0b689537a4eef2025e098b686c70d488a commit d5d0b689537a4eef2025e098b686c70d488a Author: Stefan Schmidt Date: Thu Apr 23 11:27:06 2015 +0200 elm_module: Load not installed modules from build dir with ELM_RUN_IN_TREE If we want to run from the local build dir without make install before elm_module would fail to load the modules as it is expecting them in the final install location. We can now change this by setting ELM_RUN_IN_TREE to force it load the not yet installed modules. ref T2028 --- src/lib/Makefile.am | 1 + src/lib/elm_module.c | 11 +-- src/tests/Makefile.am | 3 ++- src/tests/elm_suite.c | 2 ++ 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am index 999faef..41f5ec3 100644 --- a/src/lib/Makefile.am +++ b/src/lib/Makefile.am @@ -22,6 +22,7 @@ AM_CPPFLAGS = \ -DLOCALE_DIR=\"$(localedir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -DICON_DIR=\"$(datadir)/icons\" \ +-DELM_TOP_BUILD_DIR=\"$(top_builddir)\" \ -DELEMENTARY_BUILD \ @ELEMENTARY_CFLAGS@ diff --git a/src/lib/elm_module.c b/src/lib/elm_module.c index 39c7c6a..febb15e 100644 --- a/src/lib/elm_module.c +++ b/src/lib/elm_module.c @@ -131,9 +131,16 @@ _elm_module_load(Elm_Module *m) if (m->module) return EINA_TRUE; if (strchr(m->name, '/')) return EINA_FALSE; - snprintf(buf, sizeof(buf), -"%s/elementary/modules/%s/%s/module"EFL_SHARED_EXTENSION, + if (getenv("ELM_RUN_IN_TREE")) + { +snprintf(buf, sizeof(buf), + ELM_TOP_BUILD_DIR "/src/modules/%s/.libs/module"EFL_SHARED_EXTENSION, m->name); + } + else + { +snprintf(buf, sizeof(buf), "%s/elementary/modules/%s/%s/module"EFL_SHARED_EXTENSION, _elm_lib_dir, m->name, MODULE_ARCH); + } m->module = eina_module_new(buf); if ((m->module) && (eina_module_load(m->module) == EINA_TRUE)) { diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am index a33bfa5..664077f 100644 --- a/src/tests/Makefile.am +++ b/src/tests/Makefile.am @@ -1,5 +1,6 @@ AM_TESTS_ENVIRONMENT = \ - ELM_DATA_DIR=${top_builddir}/data + ELM_DATA_DIR=${top_builddir}/data \ + ELM_RUN_IN_TREE=1 AUTOMAKE_OPTIONS = 1.4 foreign MAINTAINERCLEANFILES = Makefile.in diff --git a/src/tests/elm_suite.c b/src/tests/elm_suite.c index dde1962..bb9625f 100644 --- a/src/tests/elm_suite.c +++ b/src/tests/elm_suite.c @@ -108,6 +108,8 @@ main(int argc EINA_UNUSED, char **argv EINA_UNUSED) Suite *s; SRunner *sr; + putenv("ELM_RUN_IN_TREE=1"); + s = elm_suite(); sr = srunner_create(s); --
[EGIT] [core/elementary] master 04/04: build: Enable make check run during distcheck
stefan pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=1e399b6fe9813c029d0cd64239350d54849b56e2 commit 1e399b6fe9813c029d0cd64239350d54849b56e2 Author: Stefan Schmidt Date: Wed Apr 22 17:16:15 2015 +0200 build: Enable make check run during distcheck Hand over the regular tests configure option for the internal distcheck run. Fixes T2028 --- Makefile.am | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile.am b/Makefile.am index 619f0ed..72a2d35 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,3 +1,4 @@ +AM_DISTCHECK_CONFIGURE_FLAGS = --with-tests=regular SUBDIRS = src data config doc if HAVE_PO --
[EGIT] [core/elementary] master 01/04: tests/build: Make sure tests are finding the theme file
stefan pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=e6b4283c6afb93eba5d628830a6b00545691ad53 commit e6b4283c6afb93eba5d628830a6b00545691ad53 Author: Stefan Schmidt Date: Wed Apr 22 17:03:18 2015 +0200 tests/build: Make sure tests are finding the theme file Our tests require a theme file. So far they picked this just from the system where it was installed to in a previous run. We have situations where this would not work though. Running make check before install on a new system or during distcheck comes to mind. With AM_TESTS_ENVIRONMENT we make that the theme is also looked for in the not yet installed builddir. Thanks to Lukasz Stanislawski for pointing me to this. ref T2028 --- src/tests/Makefile.am | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am index 551a255..a33bfa5 100644 --- a/src/tests/Makefile.am +++ b/src/tests/Makefile.am @@ -1,3 +1,6 @@ +AM_TESTS_ENVIRONMENT = \ + ELM_DATA_DIR=${top_builddir}/data + AUTOMAKE_OPTIONS = 1.4 foreign MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = \ --
[EGIT] [core/elementary] master 03/04: tests: Correct ATSPI role check for popup.
stefan pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=ca8044c39e8645eeba720d65c6ce892ec2c3350b commit ca8044c39e8645eeba720d65c6ce892ec2c3350b Author: Stefan Schmidt Date: Thu Aug 6 15:55:02 2015 +0200 tests: Correct ATSPI role check for popup. ctxpopup is using ELM_ATSPI_ROLE_POPUP_MENU while the normal popup uses ELM_ATSPI_ROLE_NOTIFICATION. ref T2028 --- src/tests/elm_test_popup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/elm_test_popup.c b/src/tests/elm_test_popup.c index 6da552a..f98adf1 100644 --- a/src/tests/elm_test_popup.c +++ b/src/tests/elm_test_popup.c @@ -18,7 +18,7 @@ START_TEST (elm_atspi_role_get) popup = elm_popup_add(win); eo_do(popup, role = elm_interface_atspi_accessible_role_get()); - ck_assert(role == ELM_ATSPI_ROLE_POPUP_MENU); + ck_assert(role == ELM_ATSPI_ROLE_NOTIFICATION); elm_shutdown(); } --
[EGIT] [apps/terminology] master 02/02: rewrite whether a term container is splittable. CID1315267 and CID1315268
billiob pushed a commit to branch master. http://git.enlightenment.org/apps/terminology.git/commit/?id=fc79e3857532f314ba8a26453b4582c767eddbdf commit fc79e3857532f314ba8a26453b4582c767eddbdf Author: Boris Faure Date: Thu Aug 6 21:50:58 2015 +0200 rewrite whether a term container is splittable. CID1315267 and CID1315268 --- src/bin/win.c | 47 +++ 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/src/bin/win.c b/src/bin/win.c index 35a3887..9293f5b 100644 --- a/src/bin/win.c +++ b/src/bin/win.c @@ -911,20 +911,25 @@ _win_set_title(Term_Container *tc, Term_Container *child EINA_UNUSED, } Eina_Bool -_win_term_is_splittable(Term *tm, Eina_Bool is_horizontal) +_term_container_is_splittable(Term_Container *tc, Eina_Bool is_horizontal) { - int grid_w = 0, grid_h = 0, c_w = 0, c_h = 0; - evas_object_geometry_get(tm->bg, NULL, NULL, &grid_w, &grid_h); + int w = 0, h = 0, c_w = 0, c_h = 0; + Term *tm; + Evas_Object *o; + + o = tc->get_evas_object(tc); + evas_object_geometry_get(o, NULL, NULL, &w, &h); + tm = tc->term_first(tc); evas_object_textgrid_cell_size_get(termio_textgrid_get(tm->termio), &c_w, &c_h); if (is_horizontal) { -if (c_h * 2 > grid_h) +if (c_h * 2 > h) return EINA_FALSE; } else { -if (c_w * 2 > grid_w) +if (c_w * 2 > w) return EINA_FALSE; } return EINA_TRUE; @@ -934,20 +939,21 @@ static void _win_split(Term_Container *tc, Term_Container *child, const char *cmd, Eina_Bool is_horizontal) { - Term *tm_new, *tm; - Term_Container *tc_split, *tc_solo_new; Win *wn; - char buf[PATH_MAX], *wdir = NULL; - Evas_Object *base; - Evas_Object *o; assert (tc->type == TERM_CONTAINER_TYPE_WIN); wn = (Win*) tc; - tm = tc->focused_term_get(tc); - if (_win_term_is_splittable(tm, is_horizontal)) + if (_term_container_is_splittable(tc, is_horizontal)) { -if (tm && termio_cwd_get(tm->termio, buf, sizeof(buf))) +Term *tm_new, *tm; +Term_Container *tc_split, *tc_solo_new; +char buf[PATH_MAX], *wdir = NULL; +Evas_Object *base; +Evas_Object *o; + +tm = tc->focused_term_get(tc); +if (termio_cwd_get(tm->termio, buf, sizeof(buf))) wdir = buf; tm_new = term_new(wn, wn->config, cmd, wn->config->login_shell, wdir, @@ -1410,21 +1416,22 @@ static void _split_split(Term_Container *tc, Term_Container *child, const char *cmd, Eina_Bool is_horizontal) { - Term *tm_new, *tm; - Term_Container *tc_split, *tc_solo_new; Split *split; Win *wn; - Evas_Object *obj_split; - char buf[PATH_MAX], *wdir = NULL; assert (tc->type == TERM_CONTAINER_TYPE_SPLIT); split = (Split *)tc; wn = tc->wn; - tm = child->focused_term_get(child); - if (_win_term_is_splittable(tm, is_horizontal)) + if (_term_container_is_splittable(tc, is_horizontal)) { -if (tm && termio_cwd_get(tm->termio, buf, sizeof(buf))) +Term *tm_new, *tm; +char buf[PATH_MAX], *wdir = NULL; +Term_Container *tc_split, *tc_solo_new; +Evas_Object *obj_split; + +tm = child->focused_term_get(child); +if (termio_cwd_get(tm->termio, buf, sizeof(buf))) wdir = buf; tm_new = term_new(wn, wn->config, cmd, wn->config->login_shell, wdir, --
[EGIT] [apps/terminology] master 01/02: remove logically dead code. CID1315103 and CID1315104
billiob pushed a commit to branch master. http://git.enlightenment.org/apps/terminology.git/commit/?id=41579e92e84402b14da4f1be9fa7923d66590969 commit 41579e92e84402b14da4f1be9fa7923d66590969 Author: Boris Faure Date: Thu Aug 6 21:39:20 2015 +0200 remove logically dead code. CID1315103 and CID1315104 --- src/bin/termptysave.c | 351 +- 1 file changed, 1 insertion(+), 350 deletions(-) diff --git a/src/bin/termptysave.c b/src/bin/termptysave.c index 0c5ae01..a6d7971 100644 --- a/src/bin/termptysave.c +++ b/src/bin/termptysave.c @@ -27,105 +27,6 @@ struct _Alloc unsigned char __pad; }; -#if 0 -static uint64_t _allocated = 0; -#endif -static unsigned char cur_gen = 0; -static Alloc *alloc[MEM_BLOCKS] = { 0 }; - -#if 0 -static int -roundup_block_size(int sz) -{ - return MEM_ALLOC_ALIGN * ((sz + MEM_ALLOC_ALIGN - 1) / MEM_ALLOC_ALIGN); -} - -static Alloc * -_alloc_find(void *mem) -{ - unsigned char *memptr = mem; - int i; - - for (i = 0; i < MEM_BLOCKS; i++) - { -unsigned char *al; - -al = (unsigned char *)alloc[i]; -if (!al) continue; -if (memptr < al) continue; -if ((al + TS_MMAP_SIZE) <= memptr) continue; -return alloc[i]; - } - return NULL; -} - -static void * -_alloc_new(int size, unsigned char gen) -{ - Alloc *al; - unsigned char *ptr; - unsigned int newsize, sz; - int i, firstnull = -1; - - // allocations sized up to nearest size alloc alignment - newsize = roundup_block_size(size); - for (i = 0; i < MEM_BLOCKS; i++) - { -if (!alloc[i]) - { - if (firstnull < 0) firstnull = i; - continue; - } -// if generation count matches -if (alloc[i]->gen == gen) - { - // if there is space in the block - if ((alloc[i]->size - alloc[i]->last) >= newsize) - { - ptr = (unsigned char *)alloc[i]; - ptr += alloc[i]->last; - alloc[i]->last += newsize; - alloc[i]->count++; - alloc[i]->allocated += newsize; - _allocated += newsize; - return ptr; - } - } - } - // out of slots for new blocks - no null blocks - if (firstnull < 0) { -ERR("Cannot find new null blocks"); -return NULL; - } - - // so allocate a new block - sz = TS_MMAP_SIZE; - // get mmaped anonymous memory so when freed it goes away from the system - ptr = (unsigned char*) mmap(NULL, sz, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); - if (ptr == MAP_FAILED) - { -ERR("Cannot allocate more memory with mmap MAP_ANONYMOUS"); -return NULL; - } - - // note - we SHOULD memset to 0, but we are assuming mmap anon give 0 pages - //memset(ptr, 0, newsize); - - al = (Alloc *)ptr; - al->size = sz; - al->last = sizeof(Alloc) + newsize; - al->count = 1; - al->allocated = newsize; - al->slot = firstnull; - al->gen = gen; - _allocated += newsize; - alloc[al->slot] = al; - ptr = (unsigned char *)al; - ptr += sizeof(Alloc); - return ptr; -} -#endif static void * _ts_new(int size) @@ -143,249 +44,13 @@ static void _ts_free(void *ptr) { free(ptr); -#if 0 - Alloc *al; - unsigned int sz; - Termsavecomp *ts = ptr; - - if (!ptr) return; - - if (ts->comp) - sz = sizeof(Termsavecomp) + ts->w; - else - sz = sizeof(Termsave) + ((ts->w - 1) * sizeof(Termcell)); - sz = roundup_block_size(sz); - _allocated -= sz; - - al = _alloc_find(ptr); - if (!al) - { -ERR("Cannot find %p in alloc blocks", ptr); -return; - } - al->count--; - al->allocated -= sz; - if (al->count > 0) return; - alloc[al->slot] = NULL; -#if defined (__sun) || defined (__sun__) - munmap((caddr_t)al, al->size); -#else - munmap(al, al->size); -#endif -#endif -} - -static void -_mem_defrag(void) -{ - int i, j = 0; - Alloc *alloc2[MEM_BLOCKS]; - - for (i = 0; i < MEM_BLOCKS; i++) - { -if (alloc[i]) - { -// printf("block %i @ %i [%i/%i] # %i\n", -//j, alloc[i]->gen, alloc[i]->last, alloc[i]->size, alloc[i]->count); - alloc2[j] = alloc[i]; - alloc2[j]->slot = j; - j++; - } - } - // XXX: quicksort blocks with most space at start - for (i = 0; i < j; i++) alloc[i] = alloc2[i]; - for (; i < MEM_BLOCKS; i++) alloc[i] = NULL; -} - -static void -_mem_gen_next(void) -{ - cur_gen++; -} - -static unsigned char -_mem_gen_get(void) -{ - return cur_gen; } static int ts_comp = 0; static int ts_uncomp = 0; static int ts_freeops = 0; static int ts_compfreeze = 0; -static int freeze = 0; static Eina_List *ptys = NULL; -static Ecore_Idler *idler = NULL; -static Ecore_Timer *timer = NULL; - -#if 0 -static Termsave * -_save_comp(Termsave *ts) -{
[EGIT] [apps/terminology] master 02/02: do not expand window on zoom, resize the content. Closes T886
billiob pushed a commit to branch master. http://git.enlightenment.org/apps/terminology.git/commit/?id=49be05a02fdf337536cb47cb47aecaf0711b1dd8 commit 49be05a02fdf337536cb47cb47aecaf0711b1dd8 Author: Boris Faure Date: Thu Aug 6 22:40:19 2015 +0200 do not expand window on zoom, resize the content. Closes T886 --- src/bin/termio.c | 7 --- 1 file changed, 7 deletions(-) diff --git a/src/bin/termio.c b/src/bin/termio.c index d8f319a..82b7972 100644 --- a/src/bin/termio.c +++ b/src/bin/termio.c @@ -455,19 +455,12 @@ _font_size_set(Evas_Object *obj, int size) else if (size > 100) size = 100; if (config) { -Evas_Coord mw = 1, mh = 1; -int gw, gh; - config->temporary = EINA_TRUE; config->font.size = size; -gw = sd->grid.w; -gh = sd->grid.h; sd->noreqsize = 1; termio_config_update(obj); sd->noreqsize = 0; -evas_object_size_hint_min_get(obj, &mw, &mh); evas_object_data_del(obj, "sizedone"); -evas_object_size_hint_request_set(obj, mw * gw, mh * gh); } } --
[EGIT] [apps/terminology] master 01/02: apply zoom level/font size to all terms in a window
billiob pushed a commit to branch master. http://git.enlightenment.org/apps/terminology.git/commit/?id=3716c7ec51d25d93b70a5197bfbef4eb2f7b9e68 commit 3716c7ec51d25d93b70a5197bfbef4eb2f7b9e68 Author: Boris Faure Date: Thu Aug 6 21:26:43 2015 +0200 apply zoom level/font size to all terms in a window --- src/bin/termcmd.c | 27 --- src/bin/termio.c | 20 ++-- src/bin/win.c | 34 ++ src/bin/win.h | 8 4 files changed, 68 insertions(+), 21 deletions(-) diff --git a/src/bin/termcmd.c b/src/bin/termcmd.c index cf5792f..cbe0073 100644 --- a/src/bin/termcmd.c +++ b/src/bin/termcmd.c @@ -23,12 +23,17 @@ _termcmd_search(Evas_Object *obj EINA_UNUSED, Evas_Object *win EINA_UNUSED, Evas } static Eina_Bool -_termcmd_font_size(Evas_Object *obj, Evas_Object *win EINA_UNUSED, Evas_Object *bg EINA_UNUSED, const char *cmd) +_termcmd_font_size(Evas_Object *obj, Evas_Object *win EINA_UNUSED, + Evas_Object *bg EINA_UNUSED, const char *cmd) { Config *config = termio_config_get(obj); if (config) { +Term *term = termio_term_get(obj); +Win *wn = term_win_get(term); +int new_size; + if (cmd[0] == 0) // back to default { config->font.bitmap = config->font.orig_bitmap; @@ -37,8 +42,7 @@ _termcmd_font_size(Evas_Object *obj, Evas_Object *win EINA_UNUSED, Evas_Object * eina_stringshare_del(config->font.name); config->font.name = eina_stringshare_add(config->font.orig_name); } - termio_font_size_set(obj, config->font.orig_size); - return EINA_TRUE; + new_size = config->font.orig_size; } else if (cmd[0] == 'b') // big font size { @@ -47,23 +51,24 @@ _termcmd_font_size(Evas_Object *obj, Evas_Object *win EINA_UNUSED, Evas_Object * config->font.bitmap = 1; eina_stringshare_del(config->font.name); config->font.name = eina_stringshare_add("10x20.pcf"); - termio_font_size_set(obj, 20); - } - else - { - termio_font_size_set(obj, 20); } + new_size = 20; } else if (cmd[0] == '+') // size up { - termio_font_size_set(obj, config->font.size + 1); + new_size = config->font.size + 1; } else if (cmd[0] == '-') // size down { - termio_font_size_set(obj, config->font.size - 1); + new_size = config->font.size - 1; } else - ERR(_("Unknown font command: %s"), cmd); + { + ERR(_("Unknown font command: %s"), cmd); + return EINA_TRUE; + } + +win_font_size_set(wn, new_size); } return EINA_TRUE; } diff --git a/src/bin/termio.c b/src/bin/termio.c index 39cec99..d8f319a 100644 --- a/src/bin/termio.c +++ b/src/bin/termio.c @@ -4422,11 +4422,10 @@ _smart_cb_gest_zoom_start(void *data, void *event) config = sd->config; if (config) { -int sz; - +int sz = (double)config->font.size * p->zoom; sd->zoom_fontsize_start = config->font.size; -sz = (double)sd->zoom_fontsize_start * p->zoom; -if (sz != config->font.size) _font_size_set(data, sz); +if (sz != config->font.size) + win_font_size_set(term_win_get(sd->term), sz); } sd->didclick = EINA_TRUE; return EVAS_EVENT_FLAG_ON_HOLD; @@ -4443,8 +4442,9 @@ _smart_cb_gest_zoom_move(void *data, void *event) config = sd->config; if (config) { -int sz = (double)sd->zoom_fontsize_start * p->zoom; -if (sz != config->font.size) _font_size_set(data, sz); +int sz = (double)config->font.size * p->zoom; +if (sz != config->font.size) + win_font_size_set(term_win_get(sd->term), sz); } sd->didclick = EINA_TRUE; return EVAS_EVENT_FLAG_ON_HOLD; @@ -4461,8 +4461,9 @@ _smart_cb_gest_zoom_end(void *data, void *event) config = sd->config; if (config) { -int sz = (double)sd->zoom_fontsize_start * p->zoom; -if (sz != config->font.size) _font_size_set(data, sz); +int sz = (double)config->font.size * p->zoom; +if (sz != config->font.size) + win_font_size_set(term_win_get(sd->term), sz); } sd->didclick = EINA_TRUE; return EVAS_EVENT_FLAG_ON_HOLD; @@ -4471,7 +4472,6 @@ _smart_cb_gest_zoom_end(void *data, void *event) static Evas_Event_Flags _smart_cb_gest_zoom_abort(void *data, void *event EINA_UNUSED) { -// Elm_Gesture_Zoom_Info *p = event; Termio *sd = evas_object_smart_data_get(data); Config *config; @@ -4480,7 +4480,7 @@ _smart_cb_gest_zoom_abort(void *data, void *event EINA_UNUSED) if (config) { if (sd->zoom_fontsize_start !=
[EGIT] [core/enlightenment] master 12/14: alias xwl client pixmaps -> wl surface pixmaps
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=3c722ac7f21937f150cc2bb24968961a04e0a157 commit 3c722ac7f21937f150cc2bb24968961a04e0a157 Author: Mike Blumenkrantz Date: Thu Aug 6 19:17:51 2015 -0400 alias xwl client pixmaps -> wl surface pixmaps it's now possible to retrieve the xwl client using the xwl xwindow --- src/bin/e_comp_x.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c index 6592d27..5984fc4 100644 --- a/src/bin/e_comp_x.c +++ b/src/bin/e_comp_x.c @@ -4468,6 +4468,7 @@ _e_comp_x_hook_client_del(void *d EINA_UNUSED, E_Client *ec) e_comp_wl_client_xwayland_setup(ec, NULL, NULL); else { + e_pixmap_alias(NULL, E_PIXMAP_TYPE_X, e_comp_x_client_pixmap_get(ec)); free(cd); e_pixmap_free(e_comp_x_client_pixmap_get(ec)); } @@ -5454,6 +5455,7 @@ e_comp_x_xwayland_client_setup(E_Client *ec, E_Client *wc) evas_object_layer_set(wc->frame, evas_object_layer_get(ec->frame)); evas_object_geometry_set(wc->frame, ec->x, ec->y, ec->w, ec->h); evas_object_show(wc->frame); + e_pixmap_alias(wc->pixmap, E_PIXMAP_TYPE_X, e_pixmap_window_get(ec->pixmap)); e_object_del(E_OBJECT(ec)); e_hints_window_visible_set(wc); _e_comp_x_client_stack(wc); --
[EGIT] [core/enlightenment] master 06/14: only attempt to provide wayland drag motion data if drag exists
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=106dfe4e214d64c2e1cbe0f39173480a11985b7e commit 106dfe4e214d64c2e1cbe0f39173480a11985b7e Author: Mike Blumenkrantz Date: Thu Aug 6 19:07:26 2015 -0400 only attempt to provide wayland drag motion data if drag exists --- 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 51d596e..bdfda1b 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -903,7 +903,7 @@ _e_comp_wl_cb_mouse_move(void *d EINA_UNUSED, int t EINA_UNUSED, Ecore_Event_Mou e_comp->wl_comp_data->ptr.x = wl_fixed_from_int(ev->x); e_comp->wl_comp_data->ptr.y = wl_fixed_from_int(ev->y); e_screensaver_notidle(); - if (e_comp->wl_comp_data->selection.target) + if (e_comp->wl_comp_data->selection.target && e_comp->wl_comp_data->drag) { struct wl_resource *res; int x, y; --
[EGIT] [core/enlightenment] master 10/14: make dummy e_drag rect invisible
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=8557da360ca17016b3b6d7121801941a5efb63f0 commit 8557da360ca17016b3b6d7121801941a5efb63f0 Author: Mike Blumenkrantz Date: Thu Aug 6 19:15:18 2015 -0400 make dummy e_drag rect invisible --- src/bin/e_dnd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bin/e_dnd.c b/src/bin/e_dnd.c index 3926012..a8f5d69 100644 --- a/src/bin/e_dnd.c +++ b/src/bin/e_dnd.c @@ -135,7 +135,8 @@ _e_drag_finalize(E_Drag *drag, E_Drag_Type type, int x, int y) if (!drag->object) { e_drag_object_set(drag, evas_object_rectangle_add(drag->evas)); -evas_object_color_set(drag->object, 255, 0, 0, 255); +evas_object_color_set(drag->object, 0, 0, 0, 0); +//evas_object_color_set(drag->object, 255, 0, 0, 255); } evas_object_move(drag->comp_object, drag->x, drag->y); evas_object_resize(drag->comp_object, drag->w, drag->h); --
[EGIT] [core/enlightenment] master 03/14: move wl compositor function for creating data sources to be external
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=aa5788175b53c0cedd4e059585bb8165df985af1 commit aa5788175b53c0cedd4e059585bb8165df985af1 Author: Mike Blumenkrantz Date: Thu Aug 6 18:57:40 2015 -0400 move wl compositor function for creating data sources to be external --- src/bin/e_comp_wl_data.c | 71 src/bin/e_comp_wl_data.h | 1 + 2 files changed, 37 insertions(+), 35 deletions(-) diff --git a/src/bin/e_comp_wl_data.c b/src/bin/e_comp_wl_data.c index 2c53bd6..1a6b3e5 100644 --- a/src/bin/e_comp_wl_data.c +++ b/src/bin/e_comp_wl_data.c @@ -384,40 +384,6 @@ _e_comp_wl_data_device_cb_unbind(struct wl_resource *resource) eina_hash_del_by_key(e_comp->wl_comp_data->mgr.data_resources, &resource); } -static void -_e_comp_wl_data_manager_cb_source_create(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, uint32_t id EINA_UNUSED) -{ - E_Comp_Wl_Data_Source *source; - - DBG("Data Manager Source Create"); - - source = E_NEW(E_Comp_Wl_Data_Source, 1); - if (!source) - { -wl_resource_post_no_memory(resource); -return; - } - - wl_signal_init(&source->destroy_signal); - source->target = _e_comp_wl_data_source_target_send; - source->send = _e_comp_wl_data_source_send_send; - source->cancelled = _e_comp_wl_data_source_cancelled_send; - - source->resource = - wl_resource_create(client, &wl_data_source_interface, 1, id); - if (!source->resource) - { -ERR("Could not create data source resource: %m"); -free(source); -wl_resource_post_no_memory(resource); -return; - } - - wl_resource_set_implementation(source->resource, - &_e_data_source_interface, source, - _e_comp_wl_data_source_cb_resource_destroy); -} - static void _e_comp_wl_data_manager_cb_device_get(struct wl_client *client, struct wl_resource *manager_resource, uint32_t id, struct wl_resource *seat_resource EINA_UNUSED) { @@ -442,7 +408,7 @@ _e_comp_wl_data_manager_cb_device_get(struct wl_client *client, struct wl_resour static const struct wl_data_device_manager_interface _e_manager_interface = { - _e_comp_wl_data_manager_cb_source_create, + (void*)e_comp_wl_data_manager_source_create, _e_comp_wl_data_manager_cb_device_get }; @@ -818,3 +784,38 @@ e_comp_wl_data_find_for_client(struct wl_client *client) { return eina_hash_find(e_comp->wl_comp_data->mgr.data_resources, &client); } + +E_API E_Comp_Wl_Data_Source * +e_comp_wl_data_manager_source_create(struct wl_client *client, struct wl_resource *resource, uint32_t id) +{ + E_Comp_Wl_Data_Source *source; + + DBG("Data Manager Source Create"); + + source = E_NEW(E_Comp_Wl_Data_Source, 1); + if (!source) + { +wl_resource_post_no_memory(resource); +return NULL; + } + + wl_signal_init(&source->destroy_signal); + source->target = _e_comp_wl_data_source_target_send; + source->send = _e_comp_wl_data_source_send_send; + source->cancelled = _e_comp_wl_data_source_cancelled_send; + + source->resource = + wl_resource_create(client, &wl_data_source_interface, 1, id); + if (!source->resource) + { +ERR("Could not create data source resource: %m"); +free(source); +wl_resource_post_no_memory(resource); +return NULL; + } + + wl_resource_set_implementation(source->resource, + &_e_data_source_interface, source, + _e_comp_wl_data_source_cb_resource_destroy); + return source; +} diff --git a/src/bin/e_comp_wl_data.h b/src/bin/e_comp_wl_data.h index 5fc56c2..5185e14 100644 --- a/src/bin/e_comp_wl_data.h +++ b/src/bin/e_comp_wl_data.h @@ -57,5 +57,6 @@ EINTERN void e_comp_wl_data_device_keyboard_focus_set(void); EINTERN Eina_Bool e_comp_wl_data_manager_init(void); EINTERN void e_comp_wl_data_manager_shutdown(void); EINTERN struct wl_resource *e_comp_wl_data_find_for_client(struct wl_client *client); +E_API E_Comp_Wl_Data_Source *e_comp_wl_data_manager_source_create(struct wl_client *client, struct wl_resource *resource, uint32_t id); # endif #endif --
[EGIT] [core/enlightenment] master 13/14: implement x11->wayland dnd operations
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=5bde1a864838d9c86cf5cf59564e3efaf1389393 commit 5bde1a864838d9c86cf5cf59564e3efaf1389393 Author: Mike Blumenkrantz Date: Thu Aug 6 19:26:08 2015 -0400 implement x11->wayland dnd operations still a little rough, but the basics are functional. works by showing the x11 compositor selection window, which has rects to exclude geometries of xwl clients, for getting x11 xdnd events, and then manually sending all the related client messages in order to inform the x11 client that enlightenment is, in fact, an extremely credible xdnd drop site and not a rogue compositor which will mangle/destroy the dnd data. still render crashes after the operation completes, so possibly not the most useful thing to be using now --- src/bin/e_comp_wl_data.c | 35 ++- src/bin/e_dnd.c | 15 +++ src/modules/Makefile_xwayland.mk | 3 +- src/modules/xwayland/dnd.c| 202 ++ src/modules/xwayland/e_mod_main.c | 3 + 5 files changed, 256 insertions(+), 2 deletions(-) diff --git a/src/bin/e_comp_wl_data.c b/src/bin/e_comp_wl_data.c index 11d5c78..d42fb0c 100644 --- a/src/bin/e_comp_wl_data.c +++ b/src/bin/e_comp_wl_data.c @@ -685,6 +685,30 @@ e_comp_wl_data_device_send_enter(E_Client *ec) e_comp->wl_comp_data->selection.target = ec; evas_object_event_callback_add(ec->frame, EVAS_CALLBACK_DEL, _e_comp_wl_data_device_target_del, ec); +#ifndef HAVE_WAYLAND_ONLY + if (e_client_has_xwindow(e_comp->wl_comp_data->drag_client)) + { +int d1 = 0x5UL, d2, d3, d4; + +d2 = d3 = d4 = 0; + +if (e_comp->wl_comp_data->drag->num_types > 3) + d1 |= 0x1UL; +else + { + if (e_comp->wl_comp_data->drag->num_types > 0) + d2 = ecore_x_atom_get(e_comp->wl_comp_data->drag->types[0]); + if (e_comp->wl_comp_data->drag->num_types > 1) + d3 = ecore_x_atom_get(e_comp->wl_comp_data->drag->types[1]); + if (e_comp->wl_comp_data->drag->num_types > 2) + d4 = ecore_x_atom_get(e_comp->wl_comp_data->drag->types[2]); + } + + ecore_x_client_message32_send(e_client_util_win_get(e_comp->wl_comp_data->drag_client), + ECORE_X_ATOM_XDND_ENTER, ECORE_X_EVENT_MASK_NONE, + e_comp->cm_selection, d1, d2, d3, d4); + } +#endif x = wl_fixed_to_int(e_comp->wl_comp_data->ptr.x) - e_comp->wl_comp_data->selection.target->client.x; y = wl_fixed_to_int(e_comp->wl_comp_data->ptr.y) - e_comp->wl_comp_data->selection.target->client.y; serial = wl_display_next_serial(e_comp->wl_comp_data->wl.disp); @@ -701,8 +725,17 @@ e_comp_wl_data_device_send_leave(E_Client *ec) evas_object_event_callback_del_full(ec->frame, EVAS_CALLBACK_DEL, _e_comp_wl_data_device_target_del, ec); if (e_comp->wl_comp_data->selection.target == ec) e_comp->wl_comp_data->selection.target = NULL; +#ifndef HAVE_WAYLAND_ONLY + if (e_client_has_xwindow(e_comp->wl_comp_data->drag_client)) + { + ecore_x_client_message32_send(e_client_util_win_get(e_comp->wl_comp_data->drag_client), + ECORE_X_ATOM_XDND_LEAVE, ECORE_X_EVENT_MASK_NONE, + e_comp->cm_selection, 0, 0, 0, 0); + } +#endif res = e_comp_wl_data_find_for_client(wl_resource_get_client(ec->comp_data->surface)); - wl_data_device_send_leave(res); + if (res) + wl_data_device_send_leave(res); } EINTERN void * diff --git a/src/bin/e_dnd.c b/src/bin/e_dnd.c index a8f5d69..167515e 100644 --- a/src/bin/e_dnd.c +++ b/src/bin/e_dnd.c @@ -227,6 +227,8 @@ e_dnd_init(void) if (e_comp->comp_type == E_PIXMAP_TYPE_X) e_drop_xdnd_register_set(e_comp->ee_win, 1); + else + e_drop_xdnd_register_set(e_comp->cm_selection, 1); _action = ECORE_X_ATOM_XDND_ACTION_PRIVATE; #endif @@ -1211,6 +1213,18 @@ _e_dnd_cb_mouse_move(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) if (!_xdnd) _e_drag_update(_drag_win_root, ev->x, ev->y, _action ?: ECORE_X_ATOM_XDND_ACTION_PRIVATE); +# ifdef HAVE_WAYLAND + if ((e_comp->comp_type == E_PIXMAP_TYPE_WL) && e_comp_util_has_x()) + { +if (e_comp->wl_comp_data->drag != _drag_current) return ECORE_CALLBACK_RENEW; +if (!e_comp->wl_comp_data->ptr.ec) return ECORE_CALLBACK_RENEW; +if (e_client_has_xwindow(e_comp->wl_comp_data->ptr.ec)) return ECORE_CALLBACK_RENEW; + ecore_x_client_message32_send(e_client_util_win_get(e_comp->wl_comp_data->drag_client), + ECORE_X_ATOM_XDND_POSITION, ECORE_X_EVENT_MASK_NONE, + e_comp->cm_selection, 0, ((ev->x << 16) & 0x) | (ev->y & 0x), + ev->timestamp, ECORE_X_ATOM_XDND_ACTION_COPY); + } +# endif #endif return ECORE_CALLBACK_PASS_ON; @@ -1421,6 +1435,7 @@ _e_dnd_cb_event_dnd_selection(voi
[EGIT] [core/enlightenment] master 07/14: make most wayland data device functions external
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=550cc56e59fbc4865b76328c0c70d42e530d commit 550cc56e59fbc4865b76328c0c70d42e530d Author: Mike Blumenkrantz Date: Thu Aug 6 19:08:53 2015 -0400 make most wayland data device functions external --- src/bin/e_comp_wl_data.c | 6 +++--- src/bin/e_comp_wl_data.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/bin/e_comp_wl_data.c b/src/bin/e_comp_wl_data.c index b54fe29..5e5218c 100644 --- a/src/bin/e_comp_wl_data.c +++ b/src/bin/e_comp_wl_data.c @@ -668,7 +668,7 @@ _e_comp_wl_data_device_target_del(void *data, Evas *e EINA_UNUSED, Evas_Object * e_comp->wl_comp_data->selection.target = NULL; } -EINTERN void +E_API void e_comp_wl_data_device_send_enter(E_Client *ec) { struct wl_resource *data_device_res, *offer_res; @@ -691,7 +691,7 @@ e_comp_wl_data_device_send_enter(E_Client *ec) wl_fixed_from_int(x), wl_fixed_from_int(y), offer_res); } -EINTERN void +E_API void e_comp_wl_data_device_send_leave(E_Client *ec) { struct wl_resource *res; @@ -779,7 +779,7 @@ e_comp_wl_data_manager_shutdown(void) E_FREE_FUNC(e_comp->wl_comp_data->mgr.data_resources, eina_hash_free); } -EINTERN struct wl_resource * +E_API struct wl_resource * e_comp_wl_data_find_for_client(struct wl_client *client) { return eina_hash_find(e_comp->wl_comp_data->mgr.data_resources, &client); diff --git a/src/bin/e_comp_wl_data.h b/src/bin/e_comp_wl_data.h index 5185e14..322502e 100644 --- a/src/bin/e_comp_wl_data.h +++ b/src/bin/e_comp_wl_data.h @@ -50,13 +50,13 @@ struct _E_Comp_Wl_Clipboard_Offer size_t offset; }; -EINTERN void e_comp_wl_data_device_send_enter(E_Client *ec); -EINTERN void e_comp_wl_data_device_send_leave(E_Client *ec); +E_API void e_comp_wl_data_device_send_enter(E_Client *ec); +E_API void e_comp_wl_data_device_send_leave(E_Client *ec); EINTERN void *e_comp_wl_data_device_send_offer(E_Client *ec); EINTERN void e_comp_wl_data_device_keyboard_focus_set(void); EINTERN Eina_Bool e_comp_wl_data_manager_init(void); EINTERN void e_comp_wl_data_manager_shutdown(void); -EINTERN struct wl_resource *e_comp_wl_data_find_for_client(struct wl_client *client); +E_API struct wl_resource *e_comp_wl_data_find_for_client(struct wl_client *client); E_API E_Comp_Wl_Data_Source *e_comp_wl_data_manager_source_create(struct wl_client *client, struct wl_resource *resource, uint32_t id); # endif #endif --
[EGIT] [core/enlightenment] master 11/14: add pixmap aliasing
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=6aa9a9477e218b987424cf740b3f39020079a7d8 commit 6aa9a9477e218b987424cf740b3f39020079a7d8 Author: Mike Blumenkrantz Date: Thu Aug 6 19:16:10 2015 -0400 add pixmap aliasing this provides the ability to alias one pixmap id as another pixmap --- src/bin/e_pixmap.c | 45 +++-- src/bin/e_pixmap.h | 2 ++ 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c index 1ee17ac..2d5943e 100644 --- a/src/bin/e_pixmap.c +++ b/src/bin/e_pixmap.c @@ -10,6 +10,7 @@ #include static Eina_Hash *pixmaps[2] = {NULL}; +static Eina_Hash *aliases[2] = {NULL}; struct _E_Pixmap { @@ -155,6 +156,7 @@ _e_pixmap_find(E_Pixmap_Type type, va_list *l) #ifdef HAVE_WAYLAND uintptr_t id; #endif + E_Pixmap *cp; if (!pixmaps[type]) return NULL; switch (type) @@ -162,13 +164,17 @@ _e_pixmap_find(E_Pixmap_Type type, va_list *l) case E_PIXMAP_TYPE_X: #ifndef HAVE_WAYLAND_ONLY xwin = va_arg(*l, uint32_t); -return eina_hash_find(pixmaps[type], &xwin); +cp = eina_hash_find(aliases[type], &xwin); +if (!cp) cp = eina_hash_find(pixmaps[type], &xwin); +return cp; #endif break; case E_PIXMAP_TYPE_WL: #ifdef HAVE_WAYLAND id = va_arg(*l, uintptr_t); -return eina_hash_find(pixmaps[type], &id); +cp = eina_hash_find(aliases[type], &id); +if (!cp) cp = eina_hash_find(pixmaps[type], &id); +return cp; #endif break; default: break; @@ -881,3 +887,38 @@ e_pixmap_image_opaque_get(E_Pixmap *cp, int *x, int *y, int *w, int *h) if (h) *h = 0; #endif } + +E_API void +e_pixmap_alias(E_Pixmap *cp, E_Pixmap_Type type, ...) +{ + va_list l; +#ifndef HAVE_WAYLAND_ONLY + Ecore_X_Window xwin; +#endif +#ifdef HAVE_WAYLAND + uintptr_t id; +#endif + + va_start(l, type); + switch (type) + { + case E_PIXMAP_TYPE_X: +#ifndef HAVE_WAYLAND_ONLY +xwin = va_arg(l, uint32_t); +if (!aliases[type]) + aliases[type] = eina_hash_int32_new(NULL); +eina_hash_set(aliases[type], &xwin, cp); +#endif +break; + case E_PIXMAP_TYPE_WL: +#ifdef HAVE_WAYLAND +id = va_arg(l, uintptr_t); +if (!aliases[type]) + aliases[type] = eina_hash_pointer_new(NULL); +eina_hash_set(aliases[type], &id, cp); +#endif +break; + default: break; + } + va_end(l); +} diff --git a/src/bin/e_pixmap.h b/src/bin/e_pixmap.h index 98ffe4a..c7c7a0c 100644 --- a/src/bin/e_pixmap.h +++ b/src/bin/e_pixmap.h @@ -49,6 +49,8 @@ E_API Eina_Bool e_pixmap_image_draw(E_Pixmap *cp, const Eina_Rectangle *r); E_API void e_pixmap_image_opaque_set(E_Pixmap *cp, int x, int y, int w, int h); E_API void e_pixmap_image_opaque_get(E_Pixmap *cp, int *x, int *y, int *w, int *h); +E_API void e_pixmap_alias(E_Pixmap *cp, E_Pixmap_Type type, ...); + static inline Eina_Bool e_pixmap_is_x(const E_Pixmap *cp) { --
[EGIT] [core/enlightenment] master 09/14: set pass events on DND type windows
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=e37f5d8c28328c85085e30063e5b86ce8b7b27f9 commit e37f5d8c28328c85085e30063e5b86ce8b7b27f9 Author: Mike Blumenkrantz Date: Thu Aug 6 19:14:03 2015 -0400 set pass events on DND type windows these are the actual drag windows from external apps and will be stuck under the cursor, ideally not blocking/intercepting all motion events --- src/bin/e_comp_x.c | 4 ++-- src/bin/e_hints.c | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c index 7add784..6592d27 100644 --- a/src/bin/e_comp_x.c +++ b/src/bin/e_comp_x.c @@ -3848,7 +3848,7 @@ _e_comp_x_hook_client_fetch(void *d EINA_UNUSED, E_Client *ec) free(rects); if (ec->shape_changed) e_comp_object_frame_theme_set(ec->frame, E_COMP_OBJECT_FRAME_RESHADOW); - evas_object_pass_events_set(ec->frame, 0); + evas_object_pass_events_set(ec->frame, ec->netwm.type == E_WINDOW_TYPE_DND); } else { @@ -3920,7 +3920,7 @@ _e_comp_x_hook_client_fetch(void *d EINA_UNUSED, E_Client *ec) ec->shape_input_rects = (Eina_Rectangle*)rects; ec->shape_input_rects_num = num; } - evas_object_pass_events_set(ec->frame, 0); + evas_object_pass_events_set(ec->frame, ec->netwm.type == E_WINDOW_TYPE_DND); } else { diff --git a/src/bin/e_hints.c b/src/bin/e_hints.c index 8d3084a..2a25a4f 100644 --- a/src/bin/e_hints.c +++ b/src/bin/e_hints.c @@ -720,6 +720,7 @@ e_hints_window_type_get(E_Client *ec) } } free(types); +evas_object_pass_events_set(ec->frame, ec->netwm.type == E_WINDOW_TYPE_DND); } ec->dialog = (ec->netwm.type == E_WINDOW_TYPE_DIALOG); if (!ec->dialog) --
[EGIT] [core/enlightenment] master 05/14: block wayland mouse button propagation to clients while drag is active
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=3dca058dfa353bed5278a84311d826296d7c1d6e commit 3dca058dfa353bed5278a84311d826296d7c1d6e Author: Mike Blumenkrantz Date: Thu Aug 6 19:07:05 2015 -0400 block wayland mouse button propagation to clients while drag is active --- 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 82d5f48..51d596e 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -258,7 +258,7 @@ _e_comp_wl_evas_handle_mouse_button(E_Client *ec, uint32_t timestamp, uint32_t b uint32_t serial, btn; struct wl_resource *res; - if (ec->cur_mouse_action || ec->border_menu) return EINA_FALSE; + if (ec->cur_mouse_action || ec->border_menu || e_comp->wl_comp_data->drag) return EINA_FALSE; if (e_object_is_del(E_OBJECT(ec))) return EINA_FALSE; if (ec->ignored) return EINA_FALSE; --
[EGIT] [core/enlightenment] master 08/14: reject xwl clients from wayland data device enter/leave functions
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=000c97659f00ee10dfb212ae69c09671289bad65 commit 000c97659f00ee10dfb212ae69c09671289bad65 Author: Mike Blumenkrantz Date: Thu Aug 6 19:11:11 2015 -0400 reject xwl clients from wayland data device enter/leave functions NYI --- src/bin/e_comp_wl_data.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/e_comp_wl_data.c b/src/bin/e_comp_wl_data.c index 5e5218c..11d5c78 100644 --- a/src/bin/e_comp_wl_data.c +++ b/src/bin/e_comp_wl_data.c @@ -675,6 +675,7 @@ e_comp_wl_data_device_send_enter(E_Client *ec) uint32_t serial; int x, y; + if (e_client_has_xwindow(ec)) return; data_device_res = e_comp_wl_data_find_for_client(wl_resource_get_client(ec->comp_data->surface)); if (!data_device_res) return; @@ -696,6 +697,7 @@ e_comp_wl_data_device_send_leave(E_Client *ec) { struct wl_resource *res; + if (e_client_has_xwindow(ec)) return; evas_object_event_callback_del_full(ec->frame, EVAS_CALLBACK_DEL, _e_comp_wl_data_device_target_del, ec); if (e_comp->wl_comp_data->selection.target == ec) e_comp->wl_comp_data->selection.target = NULL; --
[EGIT] [core/enlightenment] master 01/14: block internal usage of x11 input grabs under wayland
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=fa75d181d46e97eeb14e0afdfe8f8e33a354b74d commit fa75d181d46e97eeb14e0afdfe8f8e33a354b74d Author: Mike Blumenkrantz Date: Thu Aug 6 18:43:56 2015 -0400 block internal usage of x11 input grabs under wayland these shouldn't be necessary since we control the input --- src/bin/e_grabinput.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/bin/e_grabinput.c b/src/bin/e_grabinput.c index 7fc1561..effe19b 100644 --- a/src/bin/e_grabinput.c +++ b/src/bin/e_grabinput.c @@ -33,7 +33,7 @@ e_grabinput_get(Ecore_Window mouse_win, int confine_mouse, Ecore_Window key_win) if (grab_mouse_win) { #ifndef HAVE_WAYLAND_ONLY -if (e_comp_util_has_x()) +if (e_comp->comp_type == E_PIXMAP_TYPE_X) ecore_x_pointer_ungrab(); #else if (e_comp->comp_type == E_PIXMAP_TYPE_WL) @@ -44,7 +44,7 @@ e_grabinput_get(Ecore_Window mouse_win, int confine_mouse, Ecore_Window key_win) if (grab_key_win) { #ifndef HAVE_WAYLAND_ONLY -if (e_comp_util_has_x()) +if (e_comp->comp_type == E_PIXMAP_TYPE_X) ecore_x_keyboard_ungrab(); #else if (e_comp->comp_type == E_PIXMAP_TYPE_WL) @@ -57,7 +57,7 @@ e_grabinput_get(Ecore_Window mouse_win, int confine_mouse, Ecore_Window key_win) if (mouse_win) { #ifndef HAVE_WAYLAND_ONLY -if (e_comp_util_has_x()) +if (e_comp->comp_type == E_PIXMAP_TYPE_X) { int ret = 0; if (confine_mouse) @@ -80,7 +80,7 @@ e_grabinput_get(Ecore_Window mouse_win, int confine_mouse, Ecore_Window key_win) if (key_win) { #ifndef HAVE_WAYLAND_ONLY -if (e_comp_util_has_x()) +if (e_comp->comp_type == E_PIXMAP_TYPE_X) { int ret = 0; @@ -118,7 +118,7 @@ e_grabinput_release(Ecore_Window mouse_win, Ecore_Window key_win) if (mouse_win == grab_mouse_win) { #ifndef HAVE_WAYLAND_ONLY -if (e_comp_util_has_x()) +if (e_comp->comp_type == E_PIXMAP_TYPE_X) ecore_x_pointer_ungrab(); #else if (e_comp->comp_type == E_PIXMAP_TYPE_WL) @@ -130,7 +130,7 @@ e_grabinput_release(Ecore_Window mouse_win, Ecore_Window key_win) if (key_win == grab_key_win) { #ifndef HAVE_WAYLAND_ONLY -if (e_comp_util_has_x()) +if (e_comp->comp_type == E_PIXMAP_TYPE_X) ecore_x_keyboard_ungrab(); #else if (e_comp->comp_type == E_PIXMAP_TYPE_WL) --
[EGIT] [core/enlightenment] master 02/14: reenable compositor shape cutting onto the selection window in xwl
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=0f070c668342643205c0a89fdf48ede25b1cce4d commit 0f070c668342643205c0a89fdf48ede25b1cce4d Author: Mike Blumenkrantz Date: Thu Aug 6 18:45:27 2015 -0400 reenable compositor shape cutting onto the selection window in xwl this will provide x11 eventing as needed on an already existing window --- src/bin/e_comp.c | 9 +++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index ca0176f..bec3a56 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -698,6 +698,7 @@ _e_comp_shapes_update_job(void *d EINA_UNUSED) Eina_Iterator *ti; Eina_Rectangle *exr; unsigned int i, tile_count; + Ecore_Window win; #ifdef SHAPE_DEBUG Eina_Rectangle *r; Eina_List *rl = NULL; @@ -706,6 +707,10 @@ _e_comp_shapes_update_job(void *d EINA_UNUSED) INF("-"); #endif + if (e_comp->comp_type == E_PIXMAP_TYPE_X) + win = e_comp->win; + else + win = e_comp->cm_selection; E_FREE_LIST(e_comp->debug_rects, evas_object_del); tb = eina_tiler_new(e_comp->w, e_comp->h); eina_tiler_tile_size_set(tb, 1, 1); @@ -759,7 +764,7 @@ _e_comp_shapes_update_job(void *d EINA_UNUSED) } #ifndef HAVE_WAYLAND_ONLY - ecore_x_window_shape_input_rectangles_set(e_comp->win, (Ecore_X_Rectangle*)exr, i); + ecore_x_window_shape_input_rectangles_set(win, (Ecore_X_Rectangle*)exr, i); #endif #ifdef SHAPE_DEBUG @@ -1348,7 +1353,7 @@ e_comp_render_queue(void) E_API void e_comp_shape_queue(void) { - if (e_comp->comp_type != E_PIXMAP_TYPE_X) return; + if ((e_comp->comp_type != E_PIXMAP_TYPE_X) && (!e_comp_util_has_x())) return; if (!e_comp->shape_job) e_comp->shape_job = ecore_job_add(_e_comp_shapes_update_job, NULL); } --
[EGIT] [core/enlightenment] master 04/14: store global wayland data manager resource
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=9740477615fde1263e309fa81e0cb7aee6caba2c commit 9740477615fde1263e309fa81e0cb7aee6caba2c Author: Mike Blumenkrantz Date: Thu Aug 6 19:06:36 2015 -0400 store global wayland data manager resource --- src/bin/e_comp_wl.h | 1 + src/bin/e_comp_wl_data.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h index 27c350c..2bd81a4 100644 --- a/src/bin/e_comp_wl.h +++ b/src/bin/e_comp_wl.h @@ -183,6 +183,7 @@ struct _E_Comp_Wl_Data struct { struct wl_global *global; +struct wl_resource *resource; Eina_Hash *data_resources; } mgr; diff --git a/src/bin/e_comp_wl_data.c b/src/bin/e_comp_wl_data.c index 1a6b3e5..b54fe29 100644 --- a/src/bin/e_comp_wl_data.c +++ b/src/bin/e_comp_wl_data.c @@ -430,7 +430,7 @@ _e_comp_wl_data_cb_bind_manager(struct wl_client *client, void *data EINA_UNUSED struct wl_resource *res; /* try to create data manager resource */ - res = wl_resource_create(client, &wl_data_device_manager_interface, 1, id); + e_comp->wl_comp_data->mgr.resource = res = wl_resource_create(client, &wl_data_device_manager_interface, 1, id); if (!res) { ERR("Could not create data device manager: %m"); --
[EGIT] [core/enlightenment] master 14/14: force render update on wayland clients during commit
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=a579c2ec364ec67811e215657446b4fca991664a commit a579c2ec364ec67811e215657446b4fca991664a Author: Mike Blumenkrantz Date: Thu Aug 6 19:40:10 2015 -0400 force render update on wayland clients during commit an unmapped wayland client must still run post-render code to execute frame callbacks fixes terminology initial render with efl from git --- 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 bdfda1b..8f13eb5 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -2767,6 +2767,7 @@ e_comp_wl_surface_commit(E_Client *ec) Eina_Bool ignored; _e_comp_wl_surface_state_commit(ec, &ec->comp_data->pending); + e_comp_object_render_update_add(ec->frame); ignored = ec->ignored; --
[EGIT] [admin/devs] master 01/01: devs -> andreas wants his commit access back. restore it with new keys
raster pushed a commit to branch master. http://git.enlightenment.org/admin/devs.git/commit/?id=a90ed6a097a0956b0ed317a32f876067175d79b9 commit a90ed6a097a0956b0ed317a32f876067175d79b9 Author: Carsten Haitzler (Rasterman) Date: Fri Aug 7 08:52:24 2015 +0900 devs -> andreas wants his commit access back. restore it with new keys --- {inactive => developers}/andreas/icon-big.png | Bin {inactive => developers}/andreas/icon-map.png | Bin {inactive => developers}/andreas/icon-med.png | Bin {inactive => developers}/andreas/icon-sml.png | Bin developers/andreas/id_dsa_lenovix.pub | 1 + developers/andreas/id_dsa_thor.pub| 1 + {inactive => developers}/andreas/info.txt | 0 inactive/andreas/id_dsa.pub | 1 - inactive/andreas/id_dsa_er00923n.pub | 1 - inactive/andreas/id_dsa_tuxedo.pub| 1 - 10 files changed, 2 insertions(+), 3 deletions(-) diff --git a/inactive/andreas/icon-big.png b/developers/andreas/icon-big.png similarity index 100% rename from inactive/andreas/icon-big.png rename to developers/andreas/icon-big.png diff --git a/inactive/andreas/icon-map.png b/developers/andreas/icon-map.png similarity index 100% rename from inactive/andreas/icon-map.png rename to developers/andreas/icon-map.png diff --git a/inactive/andreas/icon-med.png b/developers/andreas/icon-med.png similarity index 100% rename from inactive/andreas/icon-med.png rename to developers/andreas/icon-med.png diff --git a/inactive/andreas/icon-sml.png b/developers/andreas/icon-sml.png similarity index 100% rename from inactive/andreas/icon-sml.png rename to developers/andreas/icon-sml.png diff --git a/developers/andreas/id_dsa_lenovix.pub b/developers/andreas/id_dsa_lenovix.pub new file mode 100644 index 000..d3bff4f --- /dev/null +++ b/developers/andreas/id_dsa_lenovix.pub @@ -0,0 +1 @@ +ssh-dss B3NzaC1kc3MAAACBAJJUWcMTqdSXijfeveXrDJ4xGwn0W6wr9HMnQZJdttC8PglQy/zEcjFDGWrd/iF1JoDMlxc2gTea0YRvf7ha9+MDqsYuHYjgQUVxSu+4B6mtB4tKSkuwOKDQYb5TFBsvIkLkfzyROYElo0Ir4kcR7f02vxYb9eYsiLlwXQweTu99FQDsvo1xuWMt9xeQrWUl+iLnSBuhnwAAAIBx/YDP3qYo1ZjHBpoZRBAci24FWwXMFLAG0zYIt0mTMF6VwbeZ3exad7c06AaMJR6Mput/ZLIeve0SQ1wG+WPj3j9BVTnp1E3v8GQoS8heLMWuEv6HQLI91gM6orxoqfCUFFv7O3yDT2pa1o9qyJJJq5+UoQ8fT06+PyYer/GufwAAAIAFaD9gMYWNx0HDuAjO7NpS6pQxIJv8lgR/EfctnRqbVm4JACJgW/X+AahGxAFtU7kV874dBVB7bhEN [...] diff --git a/developers/andreas/id_dsa_thor.pub b/developers/andreas/id_dsa_thor.pub new file mode 100644 index 000..4891ca3 --- /dev/null +++ b/developers/andreas/id_dsa_thor.pub @@ -0,0 +1 @@ +ssh-dss B3NzaC1kc3MAAACBAKnJdC5SU4K7+C911LEhb8A2CqWuGWwj55uCMBkfm6H8LfRU+TUYGEBAYrYaaGkXVJ9bSY1c9NPk0PVthv/O3uBWbX0kCUxwYS5uRCHmH2LfWqw2mlkXk4gAz8BbeFv5iW4dFgBfkrdJFokwkxA/PprzavVn7hhSrZaTSyUKF3jVFQDpo024ED1YYnqSrNcHnM6A+tWAUwAAAIBZSd1tdMT7F72I9eX2oX5fCJAht9jwcSCdzg5AHTM0QStrwWrZZYNSSorwWQFGH4dVp7nT/w/nHyOOGGfzL+CebyDzoNUIUG2TmZ2jC5ht35un68fAWRgYIoSvr1j03Sgrg/x7Fl2qAO6x8P1mzNobLujTAvDdrDA6vbF1Hum7lwAAAIEAi1f89UcHlQeBR8oV4F6tSOcemuJ30t3/C3EJtMOXmXJYBUYoHhFnJZ/G/kr65fqT8FBbn7Ep1WCt [...] diff --git a/inactive/andreas/info.txt b/developers/andreas/info.txt similarity index 100% rename from inactive/andreas/info.txt rename to developers/andreas/info.txt diff --git a/inactive/andreas/id_dsa.pub b/inactive/andreas/id_dsa.pub deleted file mode 100644 index 4596ac3..000 --- a/inactive/andreas/id_dsa.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-dss B3NzaC1kc3MAAACBAOIIeVJNSw99ftTTFAjhUxMEax9Xbl7OTLZj0SHItDMuJ6VJuHvbSzZYdi8I/s+APT2lNoyOkX2zNBBJ69vCNoToEhnlmyeFjqlAEWw8GVwQw/lmAJfMZxzNXq0SVWRktpZNBDz2TZqPya8ZtHvozOkn0h7QbwNt/KfaVDJPqVSdFQCcE/d8YpBI0FPSHuJ5wSaRmnF5GQAAAIEAuhmVZIctLfV3w4CxGK2pOID+cGDruJ9puoa3yG6spjW3vjFte/EtHZ0jj5/10im8Wk0SNYp+HhGg9kWaJMhOfhhxRfkSFaNRrQA+3q0xLhWzwdHoFznt9dwbLM6/89EvC2+KW8Z3bG7MfBbpDljfbVvElbRlUPcdTs/b/XjX8VkAAACBAINv0jDJBjFqbINAxMqJ1KMN44PNjd9TldOK8kI+ImW79GVJxv+86oUKbG+zvaNt+KyyblzuVt5R [...] diff --git a/inactive/andreas/id_dsa_er00923n.pub b/inactive/andreas/id_dsa_er00923n.pub deleted file mode 100644 index cabf60c..000 --- a/inactive/andreas/id_dsa_er00923n.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-dss B3NzaC1kc3MAAACBAOFl5JXTDv6qOksBfv9RIYemOtTWLDY0abQShEO0IfY5J62bpCB5ZiWxRsVOkego+m2XDKwvhz5mxCbLJyXKqqpUQjZMOuhDyGYpvCh0yftzcED1RlHKDXN6B2E+EB4Al6vwh2xwVKdgfi9Csa1gnwDOnoozDt5ABQvNyPt6X8DvFQDkqduzp2e2/1yvs2RrDcqX3YLSJQAAAIEAq1VeCmtx8AiCsSufVfMiyOeSxyXlOSPTWI/2bB0tVe8HXcIEesO0OxbfRZDfN85ejupNA7AaydNI/LbtlCdDxC0jOFzTh5NQxfSVLSVfVnwf0AQHpQcU10M4eAhIOeHPyE8EnY60RFSCu7BPoguJWfGadpffQEXqIbAhMr4mR1sAAACAG4KCR4aoPYkkXm8HZusP9CfgF8KVpT0rh0tbGkPhTg6gVyVxxDU/xv3T/nRIIc+CPgUpVJF10fmt [...] diff --git a/inactive/andreas/id_dsa_tuxedo.pub b/inactive/andreas/id_dsa_tuxedo.pub deleted file mode 100644 index 800ffe0..000 --- a/inactive/andreas/id_dsa_tuxedo.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-dss B3NzaC1kc3MAAACBAIqu8TW3BBs+nWbIhCAFoQJEsyUQKBMkVbPQ91bXKpSkmA4FbuD9nx2Pz/NYkW1FJXOy1Sy9ZsRIKMaNmqFs/essb7Qr7fA7WLN5i+85I2+O6TlpgpL6LHiR8gtCIE5
[EGIT] [core/efl] master 01/01: ecore_evas: fix first render skip in several windows
jypark pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b0e48bc084b99d70b3272440ed506fe28e5be6e9 commit b0e48bc084b99d70b3272440ed506fe28e5be6e9 Author: Ji-Youn Park Date: Fri Aug 7 11:53:02 2015 +0900 ecore_evas: fix first render skip in several windows ecore_evas_first only can be set first render even though there are several windows. because of this, second or third ecore_evas loses chance to render first frame. @fix --- src/lib/ecore_evas/ecore_evas.c | 4 1 file changed, 4 insertions(+) diff --git a/src/lib/ecore_evas/ecore_evas.c b/src/lib/ecore_evas/ecore_evas.c index f7fa61f..1de6dea 100644 --- a/src/lib/ecore_evas/ecore_evas.c +++ b/src/lib/ecore_evas/ecore_evas.c @@ -3070,6 +3070,10 @@ _ecore_evas_register(Ecore_Evas *ee) ee->registered = 1; ecore_evases = (Ecore_Evas *)eina_inlist_prepend (EINA_INLIST_GET(ecore_evases), EINA_INLIST_GET(ee)); + +#ifdef RENDER_SYNC + ecore_evas_first = EINA_TRUE; +#endif } EAPI void --
[EGIT] [core/efl] master 01/01: edje_container: fix typo in edje_container_align_set
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=36dd11e8d6fb307df5f96444e64b7cf67e425169 commit 36dd11e8d6fb307df5f96444e64b7cf67e425169 Author: Jee-Yong Um Date: Fri Aug 7 14:45:47 2015 +0900 edje_container: fix typo in edje_container_align_set Summary: Fix type in edje_container_align_set, it was originally named as edje_contain(t)er_align_set. Reviewers: Hermet Subscribers: cedric, Hermet Differential Revision: https://phab.enlightenment.org/D2927 --- src/lib/edje/edje_container.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/edje/edje_container.c b/src/lib/edje/edje_container.c index 6bf428f..30d0df5 100644 --- a/src/lib/edje/edje_container.c +++ b/src/lib/edje/edje_container.c @@ -692,7 +692,7 @@ edje_container_max_size_get(Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *maxh } void -edje_containter_align_set(Evas_Object *obj, double halign, double valign) +edje_container_align_set(Evas_Object *obj, double halign, double valign) { Smart_Data *sd; --
[EGIT] [core/elementary] master 01/01: elm_win: add new condition about engine set when generate the elm_win object
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=72c5b5fb270b0e7b533b52321532663665764196 commit 72c5b5fb270b0e7b533b52321532663665764196 Author: jiin.moon Date: Fri Aug 7 15:10:02 2015 +0900 elm_win: add new condition about engine set when generate the elm_win object Summary: Calling the elm_config_accel_preference_get api with "none" as parameter, it means user does not want to use acceleration. Reviewers: Hermet Reviewed By: Hermet Differential Revision: https://phab.enlightenment.org/D2920 --- src/lib/elm_config.h | 1 + src/lib/elm_win.c| 8 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/lib/elm_config.h b/src/lib/elm_config.h index 786174e..ce1b45c 100644 --- a/src/lib/elm_config.h +++ b/src/lib/elm_config.h @@ -919,6 +919,7 @@ EAPI const char *elm_config_accel_preference_get(void); * "gl", "opengl" - try use OpenGL. * "3d" - try and use a 3d acceleration unit. * "hw", "hardware", "accel" - try any acceleration unit (best possible) + * "none" - use no acceleration. try use software * * Since 1.14, it is also possible to specify some GL properties for the GL * window surface. This allows applications to use GLView with depth, stencil diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c index 3fafa50..f27d425 100644 --- a/src/lib/elm_win.c +++ b/src/lib/elm_win.c @@ -3492,8 +3492,12 @@ _elm_win_finalize_internal(Eo *obj, Elm_Win_Data *sd, const char *name, Elm_Win_ else { // add all engines with selected engine first - if any - enginelist[p++] = ENGINE_GET(); - + if (elm_config_preferred_engine_get()) +enginelist[p++] = elm_config_preferred_engine_get(); +// add check _elm_gl_preference whether "none" or not + else if (!elm_config_accel_preference_get() || + strcmp(elm_config_accel_preference_get(),"none")) +enginelist[p++] = elm_config_engine_get(); // add all engines with gl/accelerated ones first - only engines compiled #ifdef HAVE_ELEMENTARY_X enginelist[p++] = ELM_SOFTWARE_X11; --
[EGIT] [core/elementary] master 01/01: config: add missing since tag in doc.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=12586bc6e8cf9fb97ada6e17496c1d4a12f826fd commit 12586bc6e8cf9fb97ada6e17496c1d4a12f826fd Author: ChunEon Park Date: Fri Aug 7 15:11:59 2015 +0900 config: add missing since tag in doc. --- src/lib/elm_config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elm_config.h b/src/lib/elm_config.h index ce1b45c..9aa1119 100644 --- a/src/lib/elm_config.h +++ b/src/lib/elm_config.h @@ -919,7 +919,7 @@ EAPI const char *elm_config_accel_preference_get(void); * "gl", "opengl" - try use OpenGL. * "3d" - try and use a 3d acceleration unit. * "hw", "hardware", "accel" - try any acceleration unit (best possible) - * "none" - use no acceleration. try use software + * "none" - use no acceleration. try use software (since 1.16) * * Since 1.14, it is also possible to specify some GL properties for the GL * window surface. This allows applications to use GLView with depth, stencil --
[EGIT] [core/elementary] master 01/01: multibuttonentry/spinner: Fix memory leak when eina_strbuf_string_steal is misused.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=ba7588d21a9ec9f859ef6da6ad0282a30a376df8 commit ba7588d21a9ec9f859ef6da6ad0282a30a376df8 Author: Youngbok Shin Date: Fri Aug 7 15:15:45 2015 +0900 multibuttonentry/spinner: Fix memory leak when eina_strbuf_string_steal is misused. Summary: _elm_access_say() does not free the given text. But, the text from eina_strbuf_string_steal() is not cared from outside of _elm_access_say(), too. It should be changed to eina_strbuf_string_get(). Test Plan: N/A Reviewers: cedric, woohyun, kimcinoo, JackDanielZ, Hermet Reviewed By: Hermet Differential Revision: https://phab.enlightenment.org/D2918 --- src/lib/elc_multibuttonentry.c | 9 +++-- src/lib/elm_spinner.c | 8 ++-- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index 9c8d15a..f8558a3 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -463,7 +463,7 @@ _item_select(Evas_Object *obj, { Evas_Object *ao, *po; Eina_Strbuf *buf; - const char *part, *text; + const char *part; part = "elm.btn.text"; po = (Evas_Object *)edje_object_part_object_get(elm_layout_edje_get(VIEW(it)), part); @@ -475,8 +475,7 @@ _item_select(Evas_Object *obj, "multi button entry item %s is selected", edje_object_part_text_get(elm_layout_edje_get(VIEW(it)), part)); - text = (const char*)eina_strbuf_string_steal(buf); - _elm_access_say(text); + _elm_access_say(eina_strbuf_string_get(buf)); eina_strbuf_free(buf); } } @@ -758,7 +757,6 @@ _item_new(Elm_Multibuttonentry_Data *sd, // ACCESS if (_elm_config->access_mode == ELM_ACCESS_MODE_ON) { -const char *text; Eina_Strbuf *buf; buf = eina_strbuf_new(); @@ -766,8 +764,7 @@ _item_new(Elm_Multibuttonentry_Data *sd, "multi button entry item %s is added", edje_object_part_text_get(elm_layout_edje_get(VIEW(item)), "elm.btn.text")); -text = (const char*)eina_strbuf_string_steal(buf); -_elm_access_say(text); +_elm_access_say(eina_strbuf_string_get(buf)); eina_strbuf_free(buf); _access_multibuttonentry_item_register(obj, eo_item, EINA_TRUE); diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c index 46e884c..255135f 100644 --- a/src/lib/elm_spinner.c +++ b/src/lib/elm_spinner.c @@ -788,10 +788,8 @@ _access_activate_cb(void *data, eina_strbuf_append_printf(buf, "%s, %s", text, elm_layout_text_get(data, "elm.text")); - text = eina_strbuf_string_steal(buf); + _elm_access_say(eina_strbuf_string_get(buf)); eina_strbuf_free(buf); - - _elm_access_say(text); } static char * @@ -842,7 +840,6 @@ static void _access_increment_decrement_info_say(Evas_Object *obj, Eina_Bool is_incremented) { - char *text; Eina_Strbuf *buf; ELM_SPINNER_DATA_GET(obj, sd); @@ -864,9 +861,8 @@ _access_increment_decrement_info_say(Evas_Object *obj, eina_strbuf_append_printf (buf, "%s", elm_object_text_get(sd->text_button)); - text = eina_strbuf_string_steal(buf); + _elm_access_say(eina_strbuf_string_get(buf)); eina_strbuf_free(buf); - _elm_access_say(text); } static void --
[EGIT] [core/elementary] elementary-1.15 01/01: multibuttonentry/spinner: Fix memory leak when eina_strbuf_string_steal is misused.
hermet pushed a commit to branch elementary-1.15. http://git.enlightenment.org/core/elementary.git/commit/?id=8746e5ad4b96f7b4cf0c9cdacbb1480458ef832a commit 8746e5ad4b96f7b4cf0c9cdacbb1480458ef832a Author: Youngbok Shin Date: Fri Aug 7 15:15:45 2015 +0900 multibuttonentry/spinner: Fix memory leak when eina_strbuf_string_steal is misused. Summary: _elm_access_say() does not free the given text. But, the text from eina_strbuf_string_steal() is not cared from outside of _elm_access_say(), too. It should be changed to eina_strbuf_string_get(). Test Plan: N/A Reviewers: cedric, woohyun, kimcinoo, JackDanielZ, Hermet Reviewed By: Hermet Differential Revision: https://phab.enlightenment.org/D2918 --- src/lib/elc_multibuttonentry.c | 9 +++-- src/lib/elm_spinner.c | 8 ++-- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index 8255e35..3ab5641 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -453,7 +453,7 @@ _item_select(Evas_Object *obj, { Evas_Object *ao, *po; Eina_Strbuf *buf; - const char *part, *text; + const char *part; part = "elm.btn.text"; po = (Evas_Object *)edje_object_part_object_get(elm_layout_edje_get(VIEW(it)), part); @@ -465,8 +465,7 @@ _item_select(Evas_Object *obj, "multi button entry item %s is selected", edje_object_part_text_get(elm_layout_edje_get(VIEW(it)), part)); - text = (const char*)eina_strbuf_string_steal(buf); - _elm_access_say(text); + _elm_access_say(eina_strbuf_string_get(buf)); eina_strbuf_free(buf); } } @@ -748,7 +747,6 @@ _item_new(Elm_Multibuttonentry_Data *sd, // ACCESS if (_elm_config->access_mode == ELM_ACCESS_MODE_ON) { -const char *text; Eina_Strbuf *buf; buf = eina_strbuf_new(); @@ -756,8 +754,7 @@ _item_new(Elm_Multibuttonentry_Data *sd, "multi button entry item %s is added", edje_object_part_text_get(elm_layout_edje_get(VIEW(item)), "elm.btn.text")); -text = (const char*)eina_strbuf_string_steal(buf); -_elm_access_say(text); +_elm_access_say(eina_strbuf_string_get(buf)); eina_strbuf_free(buf); _access_multibuttonentry_item_register(obj, eo_item, EINA_TRUE); diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c index 42ff096..9fc90a2 100644 --- a/src/lib/elm_spinner.c +++ b/src/lib/elm_spinner.c @@ -776,10 +776,8 @@ _access_activate_cb(void *data, eina_strbuf_append_printf(buf, "%s, %s", text, elm_layout_text_get(data, "elm.text")); - text = eina_strbuf_string_steal(buf); + _elm_access_say(eina_strbuf_string_get(buf)); eina_strbuf_free(buf); - - _elm_access_say(text); } static char * @@ -830,7 +828,6 @@ static void _access_increment_decrement_info_say(Evas_Object *obj, Eina_Bool is_incremented) { - char *text; Eina_Strbuf *buf; ELM_SPINNER_DATA_GET(obj, sd); @@ -852,9 +849,8 @@ _access_increment_decrement_info_say(Evas_Object *obj, eina_strbuf_append_printf (buf, "%s", elm_object_text_get(sd->text_button)); - text = eina_strbuf_string_steal(buf); + _elm_access_say(eina_strbuf_string_get(buf)); eina_strbuf_free(buf); - _elm_access_say(text); } static void --
[EGIT] [core/elementary] master 01/01: win: remove usage of deprecated api.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=46e0686916d89b5af0d0555de907ce745ba68874 commit 46e0686916d89b5af0d0555de907ce745ba68874 Author: ChunEon Park Date: Fri Aug 7 15:30:49 2015 +0900 win: remove usage of deprecated api. --- src/lib/elm_win.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c index 80d99d6..9f729dd 100644 --- a/src/lib/elm_win.c +++ b/src/lib/elm_win.c @@ -3487,7 +3487,7 @@ _elm_win_finalize_internal(Eo *obj, Elm_Win_Data *sd, const char *name, Elm_Win_ // add check _elm_gl_preference whether "none" or not else if (!elm_config_accel_preference_get() || strcmp(elm_config_accel_preference_get(),"none")) -enginelist[p++] = elm_config_engine_get(); +enginelist[p++] = _elm_config->engine; // add all engines with gl/accelerated ones first - only engines compiled #ifdef HAVE_ELEMENTARY_X enginelist[p++] = ELM_SOFTWARE_X11; --
[EGIT] [core/elementary] master 01/01: win: code refactoring.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=a9db45440c11058f390d4257357c9af4a1be6c31 commit a9db45440c11058f390d4257357c9af4a1be6c31 Author: ChunEon Park Date: Fri Aug 7 15:29:49 2015 +0900 win: code refactoring. simplify code. --- src/lib/elm_win.c | 18 -- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c index f27d425..80d99d6 100644 --- a/src/lib/elm_win.c +++ b/src/lib/elm_win.c @@ -435,23 +435,13 @@ _elm_win_state_eval(void *data EINA_UNUSED) evas_render_dump(evas); } } - } - else - { - if (evas_object_data_get(obj, "__win_auto_norender")) -{ - elm_win_norender_pop(obj); - evas_object_data_del(obj, "__win_auto_norender"); -} + continue; } } -else +if (evas_object_data_get(obj, "__win_auto_norender")) { - if (evas_object_data_get(obj, "__win_auto_norender")) - { - elm_win_norender_pop(obj); - evas_object_data_del(obj, "__win_auto_norender"); - } + elm_win_norender_pop(obj); + evas_object_data_del(obj, "__win_auto_norender"); } } if (((_elm_config->auto_throttle) && --