platform/upstream/efl.git
7 years agoexample: improve location example, fix crash
Prince Kumar Dubey [Tue, 24 Oct 2017 06:29:22 +0000 (15:29 +0900)]
example: improve location example, fix crash

Summary: Printing Address detail with Position. Label added to show the
detail of address.

Test Plan:
Compiled with cmd:
  gcc -o location_example_01 \
  location_example_01.c -g `pkg-config --cflags --libs elementary \
  elocation`

Reviewers: raster, cedric

Subscribers: rajeshps, jpeg

Differential Revision: https://phab.enlightenment.org/D5356

7 years agoevas/vg: renamed the evas_vg class to efl_canvas_vg
subhransu mohanty [Tue, 24 Oct 2017 06:19:52 +0000 (15:19 +0900)]
evas/vg: renamed the evas_vg class to efl_canvas_vg

Reviewers: jpeg

Subscribers: jenkins, cedric

Differential Revision: https://phab.enlightenment.org/D5357

7 years agoelm: Use auto_unref for parts
Jean-Philippe Andre [Tue, 24 Oct 2017 05:43:43 +0000 (14:43 +0900)]
elm: Use auto_unref for parts

This avoids leaks.

7 years agowidget: Rename events to EFL_UI_WIDGET_EVENT_XXX
Jean-Philippe Andre [Tue, 24 Oct 2017 05:29:16 +0000 (14:29 +0900)]
widget: Rename events to EFL_UI_WIDGET_EVENT_XXX

This only affects the events (and the data type has an alias).

Ref T5363

7 years agowidget: Rename EO APIs to efl_ui_widget_xxx
Jean-Philippe Andre [Tue, 24 Oct 2017 05:03:46 +0000 (14:03 +0900)]
widget: Rename EO APIs to efl_ui_widget_xxx

This only changes the eo_prefix for APIs.

Ref T5363

7 years agoelm: add prefixes to Efl.Access.Action to avoid clashes
Lukasz Stanislawski [Tue, 24 Oct 2017 03:01:50 +0000 (12:01 +0900)]
elm: add prefixes to Efl.Access.Action to avoid clashes

Summary:
Prefix methods/properties of Efl.Access.Action mixin to avoid potential
clashes in genrated bindings.

This is first of series of patches removing potential name clashes
in accessibility interfaces.

Reviewers: jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5213

7 years agonstate: Remove some legacy code
Jean-Philippe Andre [Tue, 24 Oct 2017 02:13:51 +0000 (11:13 +0900)]
nstate: Remove some legacy code

This uses constructor/destructor instead of group_add/group_del.

Note: finalize can't be used for theme loading as any action done inside
efl_add(...) would be lost (eg. part text set).

7 years agoevas: add set function for root_node property.
subhransu mohanty [Mon, 23 Oct 2017 18:05:34 +0000 (11:05 -0700)]
evas: add set function for root_node property.

Summary:
Currently user ask for the root_node from the evas_vg object and then attach its tree by setting the root node as parent.
With this change this process will be explicit. user has to set the root node to the evas_vg object and the object will take the ownership
of the tree. User can query the current vg_tree by root_node_get api.

Test Plan:
        Fixed the test app to reflects this change.

Reviewers: jpeg, cedric

Reviewed By: jpeg, cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5347

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
7 years agoefl_animation: Remove unnecessary macro
Jaehyun Cho [Mon, 23 Oct 2017 04:58:59 +0000 (13:58 +0900)]
efl_animation: Remove unnecessary macro

7 years agoedje: add missing documentation.
Bowon Ryu [Mon, 23 Oct 2017 04:40:37 +0000 (13:40 +0900)]
edje: add missing documentation.

Summary: This adds missing doxgen documentation for Edje_Common.h

Test Plan: API Doxygen Revision

Reviewers: cedric, jpeg, myoungwoon

Differential Revision: https://phab.enlightenment.org/D5345

7 years agoeet: add missing documentation.
Bowon Ryu [Mon, 23 Oct 2017 04:40:27 +0000 (13:40 +0900)]
eet: add missing documentation.

Summary: This adds missing doxgen documentation for eet.

Test Plan: API Doxygen Revision

Reviewers: cedric, jpeg, myoungwoon

Differential Revision: https://phab.enlightenment.org/D5344

7 years agoFix building on windows
Andy Williams [Sun, 22 Oct 2017 19:21:12 +0000 (20:21 +0100)]
Fix building on windows

@author vtorri

7 years agoecore_wl2: Remove just the flush from the idle handler
Derek Foreman [Sun, 22 Oct 2017 15:19:50 +0000 (10:19 -0500)]
ecore_wl2: Remove just the flush from the idle handler

Flushing should be done where it's needed now, but we still
need the rest of the idle handler as something like mesa may
have dispatched its queue, which reads all the pending wayland
events.  In that case we have events to process but the fd will
not poll readable.

@fix T6250

7 years agoRevert "ecore_wl2: Kill the wl idle enterer"
Derek Foreman [Sun, 22 Oct 2017 15:16:57 +0000 (10:16 -0500)]
Revert "ecore_wl2: Kill the wl idle enterer"

This reverts commit 57d5b5921e8a4a05f4a1b468f1cfed74d28b95f9.

We need the dispatch, not the flush...

7 years agoDocs location moved
Andy Williams [Sat, 21 Oct 2017 15:38:57 +0000 (16:38 +0100)]
Docs location moved

7 years agoelm_code_widget: make sure the widget is cleared properly.
Al Poole [Sat, 21 Oct 2017 00:28:06 +0000 (01:28 +0100)]
elm_code_widget: make sure the widget is cleared properly.

This ensures the widget is clearer if the file has been cleared.
@fix T6185

7 years agoelm_gengrid: add pseudo widget into the item if there are no focusable
Marcel Hollerbach [Fri, 20 Oct 2017 15:21:19 +0000 (17:21 +0200)]
elm_gengrid: add pseudo widget into the item if there are no focusable
widgets

7 years agoefl_ui_focus_manager: new api
Marcel Hollerbach [Fri, 20 Oct 2017 14:31:05 +0000 (16:31 +0200)]
efl_ui_focus_manager: new api

Can be used to fetch a focusable widget that has child as parent.

7 years agodocs: move write_include out of the writer backend
Daniel Kolesa [Fri, 20 Oct 2017 12:29:04 +0000 (14:29 +0200)]
docs: move write_include out of the writer backend

This is a large chunk shared between backends.

7 years agodocs: prepare for markdown gendoc backend
Daniel Kolesa [Fri, 20 Oct 2017 12:17:10 +0000 (14:17 +0200)]
docs: prepare for markdown gendoc backend

7 years agoefl_ui_focus_manager: unfocus even logical elements
Marcel Hollerbach [Fri, 20 Oct 2017 09:46:51 +0000 (11:46 +0200)]
efl_ui_focus_manager: unfocus even logical elements

entry for example is here a specialcase since it registeres itself as
logical with a redirect manager that is then empty and only has a root
element, which is again itself.

7 years agoelm_entry: correctly emit unfocus signals to the edje object
Marcel Hollerbach [Fri, 20 Oct 2017 09:45:07 +0000 (11:45 +0200)]
elm_entry: correctly emit unfocus signals to the edje object

7 years agoelm config - check if _elm_config is null - makes coveirty happy
Carsten Haitzler (Rasterman) [Fri, 20 Oct 2017 09:30:03 +0000 (18:30 +0900)]
elm config - check if _elm_config is null - makes coveirty happy

it really should never be null though... or else really bad things
just happened (allocations failed etc.)

7 years agoeina: silence warning.
Cedric BAIL [Thu, 19 Oct 2017 23:34:25 +0000 (16:34 -0700)]
eina: silence warning.

7 years agoevas: propagate object data to evas_object_inform_call_changed_size_hints instead...
Cedric BAIL [Thu, 19 Oct 2017 23:14:48 +0000 (16:14 -0700)]
evas: propagate object data to evas_object_inform_call_changed_size_hints instead of fetching it again.

7 years agoevas: propagate object data to evas_object_inform_call_restack instead of fetching...
Cedric BAIL [Thu, 19 Oct 2017 23:11:30 +0000 (16:11 -0700)]
evas: propagate object data to evas_object_inform_call_restack instead of fetching it again.

7 years agoevas: propagate object data to evas_object_inform_call_resize instead of fetching...
Cedric BAIL [Thu, 19 Oct 2017 23:07:39 +0000 (16:07 -0700)]
evas: propagate object data to evas_object_inform_call_resize instead of fetching it again.

7 years agoevas: propagate object data to evas_object_inform_call_hide instead of fetching it...
Cedric BAIL [Thu, 19 Oct 2017 23:05:30 +0000 (16:05 -0700)]
evas: propagate object data to evas_object_inform_call_hide instead of fetching it again.

7 years agoevas: propagate object data to evas_object_inform_call_show instead of fetching it...
Cedric BAIL [Thu, 19 Oct 2017 23:04:12 +0000 (16:04 -0700)]
evas: propagate object data to evas_object_inform_call_show instead of fetching it again.

7 years agoeolian: there should be nothing depending on efl config in our public header.
Cedric BAIL [Thu, 19 Oct 2017 20:41:32 +0000 (13:41 -0700)]
eolian: there should be nothing depending on efl config in our public header.

7 years agoeina: add Evil include on Windows as strndup is provided by it.
Cedric BAIL [Thu, 19 Oct 2017 20:40:36 +0000 (13:40 -0700)]
eina: add Evil include on Windows as strndup is provided by it.

7 years agoelua, js: also update build after evas changes
Daniel Kolesa [Thu, 19 Oct 2017 18:17:14 +0000 (20:17 +0200)]
elua, js: also update build after evas changes

7 years agocxx build: update after the evas gesture build fix
Daniel Kolesa [Thu, 19 Oct 2017 18:11:49 +0000 (20:11 +0200)]
cxx build: update after the evas gesture build fix

The changes in f334f2a5042734218d599f189fda615db47be766 also need
an update in the C++ build.

7 years agoeina: forgotten label on eina_file_unlink on Windows.
Cedric BAIL [Thu, 19 Oct 2017 17:28:31 +0000 (10:28 -0700)]
eina: forgotten label on eina_file_unlink on Windows.

7 years agoeina: downgrad ERR to WRN when not finding a file.
Cedric BAIL [Thu, 19 Oct 2017 17:26:26 +0000 (10:26 -0700)]
eina: downgrad ERR to WRN when not finding a file.

7 years agoevas build: fix installation paths for new gesture stuff
Daniel Kolesa [Thu, 19 Oct 2017 13:59:16 +0000 (15:59 +0200)]
evas build: fix installation paths for new gesture stuff

EFL-using things wouldn't build after addition of the new gesture
stuff because gesture headers would get installed into the
$PREFIX/evas-1/canvas instead of $PREFIX/evas-1/gesture
directory and Evas_Eo.h is including headers from the gesture/
directory. This fixes the problem by installing the headers into
their correct location.

Spanks go to @jpeg for not reviewing things properly.

7 years agoefl_ui_focus_manager_calc: really free all direction
Marcel Hollerbach [Thu, 19 Oct 2017 13:19:55 +0000 (15:19 +0200)]
efl_ui_focus_manager_calc: really free all direction

i must have been have asleep when i wrote this, we need to iterate all
directions not only to the max id of 4

7 years agoelm_gengrid: bring in item once focused
Marcel Hollerbach [Thu, 19 Oct 2017 12:15:08 +0000 (14:15 +0200)]
elm_gengrid: bring in item once focused

and select & focus the item where the widget is in

7 years agoelm_scroller: scroll to a focused element
Marcel Hollerbach [Thu, 19 Oct 2017 12:02:46 +0000 (14:02 +0200)]
elm_scroller: scroll to a focused element

7 years agoelm_interface_scrollable: do not scroll to a focused element by default
Marcel Hollerbach [Thu, 19 Oct 2017 12:02:11 +0000 (14:02 +0200)]
elm_interface_scrollable: do not scroll to a focused element by default

this can be done in the implementing other widgets

7 years agoelm_widget: update parent instead of unregister for the case of parent
Marcel Hollerbach [Thu, 19 Oct 2017 11:47:15 +0000 (13:47 +0200)]
elm_widget: update parent instead of unregister for the case of parent
change

This means we maintain the focus state over a parent change

7 years agoefl_ui_focus_parent_provider_gen: looks to get the last widget before
Marcel Hollerbach [Thu, 19 Oct 2017 11:29:03 +0000 (13:29 +0200)]
efl_ui_focus_parent_provider_gen: looks to get the last widget before
gengrid

This means we are garanteed to find the item

7 years agoelm_gengrid: force the item to be added _again_ as subobj
Marcel Hollerbach [Thu, 19 Oct 2017 09:53:08 +0000 (11:53 +0200)]
elm_gengrid: force the item to be added _again_ as subobj

so we make sure the registering fetches the correct element

7 years agoelm_gengrid: force the item to be realized once we try to move focus
Marcel Hollerbach [Thu, 19 Oct 2017 09:52:26 +0000 (11:52 +0200)]
elm_gengrid: force the item to be realized once we try to move focus

So the widget is there, once we try to register it

7 years agoefl_ui_focus_manager_calc: move the debug output in there
Marcel Hollerbach [Thu, 19 Oct 2017 09:33:53 +0000 (11:33 +0200)]
efl_ui_focus_manager_calc: move the debug output in there

reduces the load of debug messages, and the debug messages are now only
emitted from the manager that is not the redirect. And the real elements
that are focused are printed

7 years agoelm config - finish flagging all other values that can be set by api
Carsten Haitzler (Rasterman) [Thu, 19 Oct 2017 08:31:40 +0000 (17:31 +0900)]
elm config - finish flagging all other values that can be set by api

this now means any app that called elm_config_*set on any field at all
will keep what it set forever until it changes it even if shared/core
config changed.

7 years agoelm config - track which vars you set locally and keep them as-is
Carsten Haitzler (Rasterman) [Wed, 18 Oct 2017 09:33:11 +0000 (18:33 +0900)]
elm config - track which vars you set locally and keep them as-is

this now flags about 1/4 of the config vars in elm config if you set
them locally so they wont change on conifg reload. i have just started
and this is the first batch. needs more work.

7 years agoelm_interface_scrollable: make sure this region is really visual
Marcel Hollerbach [Thu, 19 Oct 2017 07:52:48 +0000 (09:52 +0200)]
elm_interface_scrollable: make sure this region is really visual

right now we just request the complete geom to be visible since there
seems to be no way ot checking where the new widgets will be in. This
needs some improvements.

7 years agoefl_ui_focus_manager_calc: reimplement move to be more compact & small
Marcel Hollerbach [Tue, 17 Oct 2017 18:06:28 +0000 (20:06 +0200)]
efl_ui_focus_manager_calc: reimplement move to be more compact & small

this fixes a bug when a redirect was unset while going the prev
direction.

7 years agoefl_ui_focus_manager_calc: put every element on the focus stack
Marcel Hollerbach [Tue, 17 Oct 2017 17:42:32 +0000 (19:42 +0200)]
efl_ui_focus_manager_calc: put every element on the focus stack

move the addition to the focus stack to the general path. This means
every element is now on the focus stack.

7 years agoefl_ui_focus_manager_calc: move unfocusing the last element into its own
Marcel Hollerbach [Tue, 17 Oct 2017 17:35:59 +0000 (19:35 +0200)]
efl_ui_focus_manager_calc: move unfocusing the last element into its own
function

7 years agoefl_ui_focus_manager_calc: check if we are already focused earlier
Marcel Hollerbach [Tue, 17 Oct 2017 17:30:15 +0000 (19:30 +0200)]
efl_ui_focus_manager_calc: check if we are already focused earlier

if we dont do that we may unset a redirect just to set the same redirect
again.

7 years agoevas/gesture: Fix up a couple of APIs, add some FIXME
Jean-Philippe Andre [Thu, 19 Oct 2017 02:05:28 +0000 (11:05 +0900)]
evas/gesture: Fix up a couple of APIs, add some FIXME

Some things have clearly not been tested. Some APIs have not been
modified after repeated review comments. C++ failed to build due to
"long" being used as a namespace.

Remaining issues:
 - The original finger_list API was broken by design. I didn't try to
   replace it yet.
 - Long tap is also broken by design: if no move happens the recognizer
   gets no event, and doesn't trigger anything when the timeout is
   reached. An API or event is lacking here.
 - Only 2 very basic gestures have been implemented. All the gestures
   from elm_gesture_layer need to be covered. None of the multi touch
   support has been really implemented, except for a single bool flag.
 - The configuration must be loaded from elm_config, passed on to the
   recognizers.
 - Some micro optimization may be required, especially if the input
   device is high frequency (eg. 1KHz gaming mouse).

7 years agoevas/gesture: Enabled efl_provider_get() to find gesture manager
smohanty [Fri, 22 Sep 2017 04:46:39 +0000 (13:46 +0900)]
evas/gesture: Enabled efl_provider_get() to find gesture manager

7 years agoelementary_test: Added test case for log_tap gesture
smohanty [Thu, 21 Sep 2017 00:37:40 +0000 (09:37 +0900)]
elementary_test: Added test case for log_tap gesture

7 years agoevas/gesture: Added long_tap gesture to gesture framework
smohanty [Thu, 21 Sep 2017 01:23:18 +0000 (10:23 +0900)]
evas/gesture: Added long_tap gesture to gesture framework

7 years agoelementary_test: Added gesture_framework test to the elementary test suit.
smohanty [Thu, 21 Sep 2017 01:11:53 +0000 (10:11 +0900)]
elementary_test: Added gesture_framework test to the elementary test suit.

7 years agoevas/gesture: Integrated gesture framework to evas.
smohanty [Tue, 19 Sep 2017 08:17:39 +0000 (17:17 +0900)]
evas/gesture: Integrated gesture framework to evas.

7 years agoevas/gesture: Added gesture manager implementaion.
smohanty [Tue, 19 Sep 2017 08:11:31 +0000 (17:11 +0900)]
evas/gesture: Added gesture manager implementaion.

7 years agoevas/gesture: added recognizer and tap recognizer implementation
smohanty [Tue, 19 Sep 2017 08:05:48 +0000 (17:05 +0900)]
evas/gesture: added recognizer and tap recognizer implementation

7 years agoevas/gesture: Added gesture and tap gesture implementation.
smohanty [Mon, 25 Sep 2017 06:25:42 +0000 (15:25 +0900)]
evas/gesture: Added gesture and tap gesture implementation.

7 years agoevas/gesture: Added touch accumulator class implementation.
smohanty [Tue, 19 Sep 2017 07:55:45 +0000 (16:55 +0900)]
evas/gesture: Added touch accumulator class implementation.

7 years agoevas/gesture: Added gesture_private header file.
smohanty [Tue, 19 Sep 2017 06:09:49 +0000 (15:09 +0900)]
evas/gesture: Added gesture_private header file.

7 years agoevas/gesture: Added Eo classes for evas gesture framework.
smohanty [Tue, 19 Sep 2017 06:03:42 +0000 (15:03 +0900)]
evas/gesture: Added Eo classes for evas gesture framework.

7 years agoelm: rename Elm_Interface_Atspi_Accessible interface
Lukasz Stanislawski [Thu, 19 Oct 2017 01:13:54 +0000 (10:13 +0900)]
elm: rename Elm_Interface_Atspi_Accessible interface

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5341

7 years agoevas: Prevent crash with image_data_get
Jean-Philippe Andre [Wed, 18 Oct 2017 12:40:01 +0000 (21:40 +0900)]
evas: Prevent crash with image_data_get

If the image has no data, it may get an allocated surface of 1x1 but it
is not sane to return the pointer to that data, as the user would expect
a normally sized image (in my case, 1920x1080).

I do not fully understand what is going on with this image. But at least
this transforms a crash into a simple ERR in ~/.xessions-errors

Two similar crashes happened:
 - SIGSEGV by writing data outside of the image data
 - abort() in free() because the malloc metadata has been overridden
   when writing outside of the image data (newly allocated 1x1).

Fixes T5957

@fix

7 years agowin: Do not forward all key events on win (legacy)
Jean-Philippe Andre [Wed, 18 Oct 2017 11:56:26 +0000 (20:56 +0900)]
win: Do not forward all key events on win (legacy)

OMG... I do not like this patch.

See T6148, two key down events are received when a key grab is installed
on a Win object. This is because all input events are propagated from
ecore all the way up to win and can be listened on. Unfortunately this
breaks existing applications that use the key grab API properly to
listen to key events.

Another side effect is that ALL key events are received by the window,
which means it's not limited to what the application expected (from its
list of grabs).

Solution (ugly): block propagation of key down/up events if the window
is a legacy window. This means that no key grab is required for EO
windows, but key grabs are still required for legacy windows.

Fixes T6148

@fix

7 years agoelm_scroller: fix scrolling with key move
Jeonghyun Yun [Wed, 18 Oct 2017 11:15:12 +0000 (20:15 +0900)]
elm_scroller: fix scrolling with key move

Use content_region_show instead of content_pos_set in _key_action_move

Summary:
When user keep pressing key down or else on scroller content, scroller
animation is lagging because of elm_interface_scrollable_content_pos_set
by step_x or step_y value.  When focus moved to next object by press key
down or else, content_pos_set by ecore_animator continuously.  In this
time, content_pos_set in _key_action_move by step_x or step_y value
caused animation lagging problem.  I fixed to use content_region_show
instead of content_pos_set in _key_action_move for remove exist
animator.

Test Plan:
1. elementary_test -> Scroller3
2. Press 3 times "Append 10 Items in 3s" button
3. focus to Item1 and keep pressing key_down

Reviewers: jpeg, woohyun

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5278

7 years agogenlist: Fix crash on item delete
Jean-Philippe Andre [Wed, 18 Oct 2017 11:01:35 +0000 (20:01 +0900)]
genlist: Fix crash on item delete

See d3440a9867cf67f03f7fea02075f88d0441c92e7

Fixes T6033

7 years agoconfig: Simplify EO API
Jean-Philippe Andre [Wed, 18 Oct 2017 09:12:13 +0000 (18:12 +0900)]
config: Simplify EO API

This is:
 - using a property (but terribly ugly due to the ownership on the
   returned value)
 - removing an unused function

Note: This interface Efl.Config covers only elm_config for now. But it's
very generic and could be used in the future for application specific
configuration.

7 years agoelm: Split elm_general.eot in two: legacy and EO
Jean-Philippe Andre [Wed, 18 Oct 2017 08:12:03 +0000 (17:12 +0900)]
elm: Split elm_general.eot in two: legacy and EO

This creates efl_ui.eot
It's not called efl_ui_types.eot because a file with that name already
exists in efl/interfaces (for Efl.Ui.Drag functions).

Also add some FIXME comments, and move some types to elm_widget_item.eo.

Ref T5329

7 years agoecore: remove doxygen warning messages
Taehyub Kim [Wed, 18 Oct 2017 08:32:00 +0000 (17:32 +0900)]
ecore: remove doxygen warning messages

Summary:
remove doxygen warning messages
@fix

Reviewers: jpeg, cedric, woohyun

Reviewed By: jpeg

Differential Revision: https://phab.enlightenment.org/D5339

7 years agoelm: enhance documentation for following files
Shinwoo Kim [Wed, 18 Oct 2017 08:38:16 +0000 (17:38 +0900)]
elm: enhance documentation for following files

 - elm_config.h
 - elm_focus.h
 - elm_genlist.h
 - elm_icon.h
 - elm_image.h
 - elm_image_legacy.h
 - elm_index.h

7 years agolicensing - remove dates as they aren't strictly needed under common law
Carsten Haitzler (Rasterman) [Wed, 18 Oct 2017 04:29:35 +0000 (13:29 +0900)]
licensing - remove dates as they aren't strictly needed under common law

common law copyright establishes copyright at point of creation anyway
and there isn't a need to keep dates there. saves having to update them.

7 years agowidget: Add FIXME note and cleanup whitespaces
Jean-Philippe Andre [Wed, 18 Oct 2017 02:21:36 +0000 (11:21 +0900)]
widget: Add FIXME note and cleanup whitespaces

7 years agoedje: Use EO's beta auto_unref API for parts
Jean-Philippe Andre [Fri, 13 Oct 2017 09:16:41 +0000 (18:16 +0900)]
edje: Use EO's beta auto_unref API for parts

This simplifies code and avoids unwanted leaks.

7 years agoeo: Add beta API for auto_unref after a call
Jean-Philippe Andre [Fri, 13 Oct 2017 08:18:41 +0000 (17:18 +0900)]
eo: Add beta API for auto_unref after a call

Before screaming in horror (C++...) here's why we may need this:
Efl.Part.part API returns an object that is by definition valid for a
single function call only. Enforcing this in practice is actually quite
hard as all implementation functions must manually take care of the
life-cycle. This is a lot of code in many places and a lot of
opportunities to forget to properly handle that life-cycle. Also, this
means any invalid function call on a part will leak an object.

This API absolutely must remain either "internal" or "beta" and
definitely not become abused by applications. On top of that such an API
can cause great trouble for bindings like C++. As a consequence, only
specially crafted APIs like efl_part() should return an object marked as
auto_unref.

Alternatively this API could be defined in Eo.h or some other
Eo_Internal.h. I placed it in efl_object.eo because it's much more
convenient :) (read: I'm lazy)

****

Performance notes:

Tested with clang & gcc (with -O2), I had a look at the output of perf
top, in particular the asm view. I used eo_bench in a loop. My
conclusions are:

- EINA_LIKELY/UNLIKELY actually works. The jump statement varies
  according to the expectation. I highly doubt all those ugly goto in
  eo.c / Eo.h are even useful.

- The impact of auto_unref on a call_resolve is so small it doesn't even
  appear in the trace. It is significant inside call_end, though
  (obviously, that function is just a few lines long). That function
  accounts for ~1% to ~4% of all CPU time. The impact of auto_unref in
  call_end is ~4% of the function time. This means ~0.16% of all CPU
  time (worst measured case). _efl_object_op_api_id_get simply doesn't
  show up because of caching, so the extra check there is negligible.

PS: I also tested EINA_LIKELY/UNLIKELY by compiling with -O2 and looking
at the output with objdump. The flag is well respected, and the jump
instructions are what you would expect (no jump for LIKELY and jump for
UNLIKELY). Conclusion: The goto's in eo.c only make the code harder to
read...

7 years agobenchmarks: Fix titles in gnuplot
Jean-Philippe Andre [Tue, 17 Oct 2017 09:48:51 +0000 (18:48 +0900)]
benchmarks: Fix titles in gnuplot

Just replace _ with \_ as _ means subscript.

7 years agoedje: correct the usage of EINA_SIZE2D
Thiep Ha [Wed, 18 Oct 2017 01:51:49 +0000 (10:51 +0900)]
edje: correct the usage of EINA_SIZE2D

The usage of EINA_SIZE2D macro as left hand side variable
does not save the size value. The Eina_Size2D should be used.

7 years agotextpath: get the right size of text object
Thiep Ha [Wed, 18 Oct 2017 01:51:04 +0000 (10:51 +0900)]
textpath: get the right size of text object

Recent change to use EINA_SIZE2D made the size be gotten incorrectly.
This corrects it.

7 years agoeina: use a stringshare to store the filename internally.
Cedric Bail [Tue, 17 Oct 2017 23:14:26 +0000 (16:14 -0700)]
eina: use a stringshare to store the filename internally.

T6164

7 years agoeina: fix eina_hash_stringshared_new to actually compute the hash on the pointer.
Cedric Bail [Tue, 17 Oct 2017 23:11:25 +0000 (16:11 -0700)]
eina: fix eina_hash_stringshared_new to actually compute the hash on the pointer.

Before this patch, the key would always be zero and the hash would solely
rely on the rbtree to be efficient. This improve the situation by using the pointer
as the key during hash computation.

7 years agoeina: refactor eina hash computation of key length and hash value.
Cedric Bail [Tue, 17 Oct 2017 23:09:57 +0000 (16:09 -0700)]
eina: refactor eina hash computation of key length and hash value.

7 years agoelementary: fix double assignment
Prince Kumar Dubey [Tue, 17 Oct 2017 18:03:10 +0000 (11:03 -0700)]
elementary: fix double assignment

Summary: local variable "bp" assigned twice unnecessarily. The duplicate assignment is removed.

Reviewers: raster, cedric, jpeg

Subscribers: jpeg, rajeshps

Differential Revision: https://phab.enlightenment.org/D5323

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
7 years agoeina: add missing documentation for quad.
Bowon Ryu [Tue, 17 Oct 2017 18:00:50 +0000 (11:00 -0700)]
eina: add missing documentation for quad.

Summary: This adds missing doxgen documentation for eina_quad.

Test Plan: API Doxygen Revision

Reviewers: cedric, jpeg, myoungwoon

Differential Revision: https://phab.enlightenment.org/D5330

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
7 years agoeina: add missing documentation for rectangle.
Bowon Ryu [Tue, 17 Oct 2017 17:56:12 +0000 (10:56 -0700)]
eina: add missing documentation for rectangle.

Summary: This adds missing doxgen documentation for eina_rectangle.

Test Plan: API Doxygen Revision

Reviewers: cedric, jpeg, myoungwoon

Reviewed By: cedric

Differential Revision: https://phab.enlightenment.org/D5331

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
7 years agoeina: fix doxygen typo for eina_thread.
Bowon Ryu [Tue, 17 Oct 2017 17:54:15 +0000 (10:54 -0700)]
eina: fix doxygen typo for eina_thread.

Summary: fix typo.

Test Plan: API Doxygen Revision

Reviewers: cedric, jpeg, myoungwoon

Reviewed By: cedric

Differential Revision: https://phab.enlightenment.org/D5332

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
7 years agoelementary: generic_value is to be replaced by any_value.
Cedric Bail [Tue, 17 Oct 2017 17:51:05 +0000 (10:51 -0700)]
elementary: generic_value is to be replaced by any_value.

7 years agoelementary: add an exit_code to efl_exit as originally planned.
Cedric Bail [Tue, 17 Oct 2017 17:38:24 +0000 (10:38 -0700)]
elementary: add an exit_code to efl_exit as originally planned.

T6228

7 years agoelm_interface_scrollable: fix bringing in of a focused item
Marcel Hollerbach [Tue, 17 Oct 2017 15:49:48 +0000 (17:49 +0200)]
elm_interface_scrollable: fix bringing in of a focused item

you also need to calculate in the object position

7 years agoelm_widget: print a error if there is no provider
Marcel Hollerbach [Tue, 17 Oct 2017 15:19:12 +0000 (17:19 +0200)]
elm_widget: print a error if there is no provider

7 years agoelm_widget: also do not register if the top widget is not a win
Marcel Hollerbach [Tue, 17 Oct 2017 14:14:07 +0000 (16:14 +0200)]
elm_widget: also do not register if the top widget is not a win

this is currently quite a performance break, since that call is quite
heavy, lets see if we can optimize it later

7 years agoelm_widget: only register if you have to
Marcel Hollerbach [Tue, 17 Oct 2017 13:57:37 +0000 (15:57 +0200)]
elm_widget: only register if you have to

first step into the direction of making that more secure

7 years agoelm_widget: move evaluation for registeration of widget
Marcel Hollerbach [Tue, 17 Oct 2017 13:17:50 +0000 (15:17 +0200)]
elm_widget: move evaluation for registeration of widget

this is now earlier done, so we can reacted based on that

7 years agoelementary: remove documentation error
Shinwoo Kim [Tue, 17 Oct 2017 07:52:57 +0000 (16:52 +0900)]
elementary: remove documentation error

7 years agoeo: Use any_value in eina_types.eot
Lauro Moura [Tue, 17 Oct 2017 04:51:17 +0000 (13:51 +0900)]
eo: Use any_value in eina_types.eot

Reviewers: q66, jpeg

Subscribers: jenkins, cedric

Differential Revision: https://phab.enlightenment.org/D5328

7 years agoexample: print format correction to avoid warning.
Prince Kumar Dubey [Tue, 17 Oct 2017 04:45:17 +0000 (13:45 +0900)]
example: print format correction to avoid warning.

Reviewers: raster, cedric, jpeg

Subscribers: rajeshps, jpeg

Differential Revision: https://phab.enlightenment.org/D5312

7 years agoframe: Implement content set/get/unset
Jean-Philippe Andre [Mon, 16 Oct 2017 11:58:46 +0000 (20:58 +0900)]
frame: Implement content set/get/unset

Not a huge fan of my macro as it uses efl_part() where a direct call
could be possible, depending on the widget (win can, frame can't).

See D5241

7 years agoelm: Rename Elm.Activate to Efl.Ui.Activate
Jean-Philippe Andre [Mon, 16 Oct 2017 04:33:52 +0000 (13:33 +0900)]
elm: Rename Elm.Activate to Efl.Ui.Activate

Note: This is an EO-only beta API.

Ref T5329

7 years agoslider/progressbar: implement format_string of Efl.Ui.Format
Amitesh Singh [Tue, 17 Oct 2017 06:45:50 +0000 (15:45 +0900)]
slider/progressbar: implement format_string of Efl.Ui.Format

remove the unit_format from Efl.Ui.Range.