platform/upstream/efl.git
7 years agobuild: PACKAGE_BUILD_DIR is now defined for everyone
Marcel Hollerbach [Sat, 21 Jan 2017 12:35:36 +0000 (13:35 +0100)]
build: PACKAGE_BUILD_DIR is now defined for everyone

7 years agocmake: improve versioning
Marcel Hollerbach [Sat, 21 Jan 2017 12:27:17 +0000 (13:27 +0100)]
cmake: improve versioning

The version defines are now done all the time. and the version pattern
does mach the one from autotools. And supports release mode now.

7 years agocmake: we need to enable beta api support
Marcel Hollerbach [Sat, 21 Jan 2017 11:17:12 +0000 (12:17 +0100)]
cmake: we need to enable beta api support

otherwise we cannot build our own api...

7 years agocmake: move PACKAGE defines into a sane place
Marcel Hollerbach [Sat, 21 Jan 2017 11:12:57 +0000 (12:12 +0100)]
cmake: move PACKAGE defines into a sane place

this should support all the vars used in all efl subsystems

7 years agoEflMacros: auto-handling of pkg-config files.
Gustavo Sverzut Barbieri [Fri, 20 Jan 2017 17:15:37 +0000 (15:15 -0200)]
EflMacros: auto-handling of pkg-config files.

7 years agoCMake: move eina binaries to single dir, add helper macros.
Gustavo Sverzut Barbieri [Fri, 20 Jan 2017 15:53:56 +0000 (13:53 -0200)]
CMake: move eina binaries to single dir, add helper macros.

For one-source directories, be smart and just define SOURCES to that,
will reduce the number of too-simplistic CMakeLists.txt in our tree.

This also fixes problems with libraries, they should be private, not
public. So specify both kinds as different variables.

7 years agoEflMacros: major improvements towards usability.
Gustavo Sverzut Barbieri [Fri, 20 Jan 2017 14:58:21 +0000 (12:58 -0200)]
EflMacros: major improvements towards usability.

Stick to one target per directory and remove prefix from variables,
makes it cleaner and easier to use.

Document variables used and use a more consistent name that matches
CMake properties.

7 years agoEflMacros: trust target name.
Gustavo Sverzut Barbieri [Fri, 20 Jan 2017 12:25:55 +0000 (10:25 -0200)]
EflMacros: trust target name.

since this will be made automatic later and we can guarantee
consistency in the file hierarchy, no need to lowercase that.

7 years agoEflMacros: replace macros with functions.
Gustavo Sverzut Barbieri [Fri, 20 Jan 2017 11:39:46 +0000 (09:39 -0200)]
EflMacros: replace macros with functions.

Macros do not start a new scope and can leave leftovers, then use
functions. However to set and append to global scope is cumbersome,
add functions to aid that.

7 years agoCMake: infra to build modules (static, on or off).
Gustavo Sverzut Barbieri [Thu, 19 Jan 2017 22:49:44 +0000 (20:49 -0200)]
CMake: infra to build modules (static, on or off).

7 years agoCMake: rework to use some helper macros.
Gustavo Sverzut Barbieri [Thu, 19 Jan 2017 19:54:12 +0000 (17:54 -0200)]
CMake: rework to use some helper macros.

This tries to defines some macros to create a cleaner build system.

7 years agobuild: switch eina to half baked cmake
Marcel Hollerbach [Thu, 19 Jan 2017 08:16:36 +0000 (09:16 +0100)]
build: switch eina to half baked cmake

7 years agoeolian tests: pass in generator path externally
Daniel Kolesa [Mon, 23 Jan 2017 15:13:15 +0000 (16:13 +0100)]
eolian tests: pass in generator path externally

7 years agoelementary_test: Remove set but unused variable
Chris Michael [Mon, 23 Jan 2017 14:35:13 +0000 (09:35 -0500)]
elementary_test: Remove set but unused variable

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoevas-object-textblock: Remove set but unused variable
Chris Michael [Mon, 23 Jan 2017 14:30:20 +0000 (09:30 -0500)]
evas-object-textblock: Remove set but unused variable

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoeolian: fix decl.eo in tests
Daniel Kolesa [Mon, 23 Jan 2017 14:32:15 +0000 (15:32 +0100)]
eolian: fix decl.eo in tests

7 years agospinner: fix mem leak on focus next traversel
Amitesh Singh [Mon, 23 Jan 2017 05:53:22 +0000 (11:23 +0530)]
spinner: fix mem leak on focus next traversel

this patches fixes an eina list mem leak on each
focus next(tab/alt-tab) traversal.

@fix

Signed-off-by: Amitesh Singh <amitesh.sh@samsung.com>
7 years agoevas grid smart - don't abort if smart data is null - return safely
Carsten Haitzler (Rasterman) [Mon, 23 Jan 2017 02:20:37 +0000 (11:20 +0900)]
evas grid smart - don't abort if smart data is null - return safely

it's unssocial of us to abort unless we truly have a fatal error we
cann't get over... so remove from grid smart.

@fix

7 years agoelm_code: Fix some syntax highlight after strings
Andy Williams [Sun, 22 Jan 2017 21:59:45 +0000 (21:59 +0000)]
elm_code: Fix some syntax highlight after strings

7 years agoelm_code: Syntax highlighting for multiline comments
Andy Williams [Sun, 22 Jan 2017 21:58:20 +0000 (21:58 +0000)]
elm_code: Syntax highlighting for multiline comments

7 years agoluncher: Until we fix expansion zoom a little less.
Andy Williams [Sun, 22 Jan 2017 10:06:42 +0000 (10:06 +0000)]
luncher: Until we fix expansion zoom a little less.

This allows an area in the middle where you are only over 1 icon...
clicktastic

7 years agoelementary conformant: clear internal pointer if holded object is deleted
Youngbok Shin [Sun, 22 Jan 2017 02:03:14 +0000 (11:03 +0900)]
elementary conformant: clear internal pointer if holded object is deleted

Summary:
Set sd->scroller as NULL when the scroller object is deleted.
It prevents error logs when elm_conform tries to delete resize callback
function from deleted object.
@fix

Test Plan: N/A

Reviewers: raster, cedric, jpeg

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

7 years agoeolian: rmeove dependency on basename/libgen.h/evil
Daniel Kolesa [Sat, 21 Jan 2017 17:05:26 +0000 (18:05 +0100)]
eolian: rmeove dependency on basename/libgen.h/evil

7 years agoelm_code: simpler handling of token painting
Andy Williams [Sat, 21 Jan 2017 15:57:21 +0000 (15:57 +0000)]
elm_code: simpler handling of token painting

7 years agoevas font: revise evas_font_init/reinit functions
Youngbok Shin [Sat, 21 Jan 2017 10:00:46 +0000 (19:00 +0900)]
evas font: revise evas_font_init/reinit functions

Summary:
The static flag in evas_font_init() was not useful.
It could be replaced by checking address of "fc_config".
FcInitReinitialize() function was not necessary to reload
configure and font files in Evas. It would be meaningful
when only Evas use Fontconfig's function without own "fc_config".
To reload "fc_config", calling FcInitLoadConfigAndFonts() is enough.
And there is no need to load "fc_config" from evas_font_reinit()
when "fc_config" is not prepared.

Test Plan: N/A

Reviewers: herdsman, raster, tasn, cedric, woohyun

Subscribers: jpeg

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

7 years agopo files - update line's + comments
Carsten Haitzler (Rasterman) [Thu, 19 Jan 2017 23:43:53 +0000 (08:43 +0900)]
po files - update line's + comments

7 years agoelm_code: Improve string syntax parsing
Andy Williams [Sat, 21 Jan 2017 00:17:20 +0000 (00:17 +0000)]
elm_code: Improve string syntax parsing

7 years agoelm_code: Add initial simple syntax highlighting for C code
Andy Williams [Fri, 20 Jan 2017 22:09:16 +0000 (22:09 +0000)]
elm_code: Add initial simple syntax highlighting for C code

For c source and headers lookup a simple syntax definition.
Use a very simple text processing line by line to tokenise.
Simple but it gets us one step closer to cross-language syntax

7 years agodocs: WIP overridden method/property documentation support in docgen
Daniel Kolesa [Fri, 20 Jan 2017 16:20:28 +0000 (17:20 +0100)]
docs: WIP overridden method/property documentation support in docgen

7 years agodocs: use new implement based doc API
Daniel Kolesa [Fri, 20 Jan 2017 14:32:00 +0000 (15:32 +0100)]
docs: use new implement based doc API

7 years agodocs: remove some duplicate doctree methods
Daniel Kolesa [Fri, 20 Jan 2017 14:15:50 +0000 (15:15 +0100)]
docs: remove some duplicate doctree methods

7 years agodocs: add implement to doctree
Daniel Kolesa [Fri, 20 Jan 2017 14:09:11 +0000 (15:09 +0100)]
docs: add implement to doctree

7 years agoeolian: merge database_fill into parser
Daniel Kolesa [Fri, 20 Jan 2017 12:39:45 +0000 (13:39 +0100)]
eolian: merge database_fill into parser

7 years agoeolian: prevent memory leaks in db fill
Daniel Kolesa [Fri, 20 Jan 2017 11:52:04 +0000 (12:52 +0100)]
eolian: prevent memory leaks in db fill

7 years agoeolian: simplify database_fill by reducing the number of passes
Daniel Kolesa [Fri, 20 Jan 2017 11:34:43 +0000 (12:34 +0100)]
eolian: simplify database_fill by reducing the number of passes

7 years agoevas: Fix very unlikely crash in evas render
HyunSeok Cha [Fri, 20 Jan 2017 04:49:13 +0000 (13:49 +0900)]
evas: Fix very unlikely crash in evas render

During a stress test of EFL a seemingly impossible crash happened, where
one of object's cow fields was NULL inside evas_object_was_visible.
Nothing in the code flow can possibly lead to this situation but
it still happened. For information, the object's delete_me flag was 2 in
evas_object_is_active() called from _evas_render_phase1_object_process().
So let's add a small safety check for crash prevention.

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

7 years agoRename Efl.hh to Efl.eo.hh in CLEANFILES
Felipe Magno de Almeida [Fri, 20 Jan 2017 00:40:28 +0000 (22:40 -0200)]
Rename Efl.hh to Efl.eo.hh in CLEANFILES

This avoid make clean removing Efl.hh in the tree

7 years agowayland: Try not to draw into surfaces without roles
Derek Foreman [Thu, 19 Jan 2017 21:25:17 +0000 (15:25 -0600)]
wayland: Try not to draw into surfaces without roles

xdg v6 will barf if we attach a buffer to the surface before
we receive a configure - even if we attach before trying to
make a shell surface.

So we need to prevent any drawing into surfaces until we've
decided what kind of surface they'll ultimately be.

Fix T5090

7 years agoeolian: add implement validation (currently for docs)
Daniel Kolesa [Thu, 19 Jan 2017 13:56:23 +0000 (14:56 +0100)]
eolian: add implement validation (currently for docs)

7 years agoeolian: move base function doc API into implements
Daniel Kolesa [Thu, 19 Jan 2017 13:46:40 +0000 (14:46 +0100)]
eolian: move base function doc API into implements

This allows us to unify retrieval of docs for both regular and
overridden funcs without having two separate APIs. It's currently
missing validation and docgen is still not adjusted properly for
it either, but at least there's this. Enables retrieval of docs
for overridden funcs by default as well.

7 years agogstreamer buffer unref emotion: too many urefs! Seems I read the documention incorrec...
Al Poole [Thu, 19 Jan 2017 10:16:21 +0000 (19:16 +0900)]
gstreamer buffer unref emotion: too many urefs! Seems I read the documention incorrectly!!!

Reviewers: raster, jpeg, cedric

Reviewed By: raster

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

7 years agoedje_cc: delete unused image sets from edj file.
Mykyta Biliavskyi [Thu, 19 Jan 2017 07:54:36 +0000 (09:54 +0200)]
edje_cc: delete unused image sets from edj file.

Delete Edje_Image_Directory_Set instance from edj file in case if image
set isn't used inside any part. This commit apply behaviour from unused
images to the unused image sets.

@fix T5109

7 years agoeolian-cxx: Add all cases in switch to remove warning
Felipe Magno de Almeida [Thu, 19 Jan 2017 01:07:46 +0000 (23:07 -0200)]
eolian-cxx: Add all cases in switch to remove warning

7 years agoeolian-cxx: Do not call eolian_function_scope_get with EOLIAN_PROPERTY
Felipe Magno de Almeida [Thu, 19 Jan 2017 01:06:51 +0000 (23:06 -0200)]
eolian-cxx: Do not call eolian_function_scope_get with EOLIAN_PROPERTY

7 years agocxx: Modify how to generate C++ headers and allow cyclic dependencies
Felipe Magno de Almeida [Thu, 19 Jan 2017 00:25:02 +0000 (22:25 -0200)]
cxx: Modify how to generate C++ headers and allow cyclic dependencies

Allow cyclic dependencies in generated C++ headers by changing order
of includes and creating forward declarations.

7 years agoeolian-cxx: Added cyclic compilation test
Felipe Magno de Almeida [Sat, 24 Dec 2016 17:42:37 +0000 (15:42 -0200)]
eolian-cxx: Added cyclic compilation test

7 years agobuild: Fix wayland scanner related breakage
Derek Foreman [Wed, 18 Jan 2017 23:48:08 +0000 (17:48 -0600)]
build: Fix wayland scanner related breakage

Oops, autoconf noob at work.

7 years agoecore_imf/wayland: Auto generate wayland text-input protocol
Derek Foreman [Wed, 18 Jan 2017 16:52:45 +0000 (10:52 -0600)]
ecore_imf/wayland: Auto generate wayland text-input protocol

Needed to do some fairly invasive changes because naming conventions
changed since we checked in the header.

Also, since I'm done converting protocol, change the gitignore to
use wildcards for wayland protocol.

This fixes a long standing bug in text-input binding and restores
previous OSK behaviour.

7 years agoecore_wl2: Auto generate www protocol
Derek Foreman [Wed, 18 Jan 2017 16:45:22 +0000 (10:45 -0600)]
ecore_wl2: Auto generate www protocol

Needed to copy the protocol file from Enlightenment.

7 years agoecore_wl2: Auto generate teamwork protocol
Derek Foreman [Wed, 18 Jan 2017 16:03:44 +0000 (10:03 -0600)]
ecore_wl2: Auto generate teamwork protocol

The name was non-standard and we didn't have the xml in tree,
xml has been copied from Enlightenment.

7 years agoecore_wl2: Auto generate xdg v6 protocol
Derek Foreman [Wed, 18 Jan 2017 15:54:49 +0000 (09:54 -0600)]
ecore_wl2: Auto generate xdg v6 protocol

Mostly trivial, needed to update private header as we'd used a
non-standard name for our generated copy.

7 years agoecore_wl2: Auto generate xdg v5 protocol
Derek Foreman [Wed, 18 Jan 2017 15:42:29 +0000 (09:42 -0600)]
ecore_wl2: Auto generate xdg v5 protocol

Remove our generated copies, also rename the XDG_VERSION macro
so it's not quite so confusing now that we support v5 and v6.

7 years agoecore_wl2: Remove private copy of subsurface protocol
Derek Foreman [Wed, 18 Jan 2017 15:11:25 +0000 (09:11 -0600)]
ecore_wl2: Remove private copy of subsurface protocol

This became core wayland functionality a long time ago, and we
now depend on wayland new enough to have it, so we should never
need the stale copy we had in tree.

7 years agoecore_wl2: Auto generate dmabuf protocol
Derek Foreman [Wed, 18 Jan 2017 14:58:20 +0000 (08:58 -0600)]
ecore_wl2: Auto generate dmabuf protocol

Remove the server protocol file as we don't need it here.

Generally a trivial change as we have a recent version in tree with
no weird changes.

7 years agoecore_wl2: Auto generate session-recovery protocol
Derek Foreman [Tue, 17 Jan 2017 22:29:06 +0000 (16:29 -0600)]
ecore_wl2: Auto generate session-recovery protocol

Check in the latest session-recovery xml and remove the checked
in generated files.

7 years agobuild: Add rules to auto-generate wayland headers from protocol xml
Derek Foreman [Tue, 17 Jan 2017 21:37:50 +0000 (15:37 -0600)]
build: Add rules to auto-generate wayland headers from protocol xml

We've been checking in protocol headers and implementations that
wayland-scanner generates.  We should just generate them from the upstream
xml files.

7 years agobuild: Disable automake compatibility warnings
Derek Foreman [Wed, 18 Jan 2017 15:39:02 +0000 (09:39 -0600)]
build: Disable automake compatibility warnings

We require GNU make, so stop complaining when autoconf does things
that require GNU make.

7 years agoecore-drm2: Add API function to set output rotation
Chris Michael [Wed, 18 Jan 2017 16:29:14 +0000 (11:29 -0500)]
ecore-drm2: Add API function to set output rotation

This patch adds a new API function that can be called from
Enlightenment wl_drm module to enable output rotation.

NB: Only works if Atomic support is enabled as it rotates the hardware
plane directly...and we don't support planes without Atomic enabled.

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoecore-drm2: Add API function to return supported rotations of an output
Chris Michael [Wed, 18 Jan 2017 15:38:01 +0000 (10:38 -0500)]
ecore-drm2: Add API function to return supported rotations of an output

Small patch to add an API function which can be used to return the
supported rotations of a given output. This is used inside the
Enlightenment wl_drm module to determine if rotations is supported on
an output.

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoecore-drm2: Expose Ecore_Drm2_Rotation enum
Chris Michael [Wed, 18 Jan 2017 15:06:20 +0000 (10:06 -0500)]
ecore-drm2: Expose Ecore_Drm2_Rotation enum

As we will need these values when doing rotation checks inside wl_drm
module (for randr rotation support), let's move them out of the
private header and expose them in Ecore_Drm2.h

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoecore-drm2: Minor formatting fix
Chris Michael [Wed, 18 Jan 2017 15:05:13 +0000 (10:05 -0500)]
ecore-drm2: Minor formatting fix

NB: No functional changes, just formatting

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoecore-drm2: Add API to determine if a device prefers shadow buffers
Chris Michael [Wed, 18 Jan 2017 14:46:39 +0000 (09:46 -0500)]
ecore-drm2: Add API to determine if a device prefers shadow buffers

Small patch to add a new API function that can be called to determine
if a given drm device prefers the use of shadow buffers. This API
will be used later to provide some optimizations on various platforms.

NB: Requested by Derek

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoeolian: add syntax for overridding docs in implements
Daniel Kolesa [Wed, 18 Jan 2017 14:33:44 +0000 (15:33 +0100)]
eolian: add syntax for overridding docs in implements

7 years agoecore-wl2: Add function to get touch device
Chris Michael [Tue, 17 Jan 2017 17:31:01 +0000 (12:31 -0500)]
ecore-wl2: Add function to get touch device

When we are sending input events, if we have no pointer device then we
should be setting ev->dev to a touch device (as touch events are
treated as pointer events inside EFL).

NB: This allows EFL clients to get touch events in Enlightenment.
There are still some small hiccups here (can't close terminology by
pressing the 'x' in the corner, cannot scroll elm_test srollbar, etc).

Likely EFL needs to change wrt all this...perhaps adding events for
touch that are separate from pointer ?...

ref T5094

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoelput: Return touch coordinates when we have no pointer
Chris Michael [Tue, 17 Jan 2017 16:34:24 +0000 (11:34 -0500)]
elput: Return touch coordinates when we have no pointer

If a user calls elput_input_pointer_xy_get (as is done via
ecore_evas_drm) and a pointer does not exist, we never return any
coordinates for this function.

Enlightenment is using ecore_evas_pointer_xy_get (which when using the
drm ee, ends up calling elput_input_pointer_xy_get). If we have no
pointer device, then no coordinates are ever returned and touch
clicking does not function properly.

To fix that we will check if a touch device exists and supply the
coordinates from that (in the case where there is no pointer device).

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoEdje_Edit: add forgotten API for map.zoom.x/y
Vitalii Vorobiov [Tue, 17 Jan 2017 14:30:45 +0000 (16:30 +0200)]
Edje_Edit: add forgotten API for map.zoom.x/y

7 years agoevil: include "sys/types.h" where is define off_t
Vyacheslav Reutskiy [Tue, 17 Jan 2017 12:35:27 +0000 (14:35 +0200)]
evil: include "sys/types.h" where is define off_t

7 years agoedje_edit: add Efl.File.mmap.set implementation for edje_edit
Andrii Kroitor [Tue, 17 Jan 2017 11:35:54 +0000 (13:35 +0200)]
edje_edit: add Efl.File.mmap.set implementation for edje_edit

This fixes edje_edit_program_source_get for mmaped edje_edit object
@fix

7 years agoelm_test: Make the animated filter a bit prettier
Jean-Philippe Andre [Mon, 16 Jan 2017 06:52:04 +0000 (15:52 +0900)]
elm_test: Make the animated filter a bit prettier

This is a basic example of fire text.

The gif was generated with a GIMP script from
http://fence-post.deviantart.com/art/GIMP-Animated-Fire-Script-84921148

7 years agoUi text: fix size evaluation for default setup
Daniel Hirt [Thu, 15 Dec 2016 08:57:59 +0000 (10:57 +0200)]
Ui text: fix size evaluation for default setup

Now the size evaluation will query for the native size of the
canvas.text object, and continue with calculations to set the min size
of itself.
This fixes a bug in containers where the widget's size wasn't picked up.

Also, the canvas.text object wasn't reporting 'changed' on text changes.

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
7 years agoevas: Fix classic text styles with filters in textblock
Jean-Philippe Andre [Tue, 10 Jan 2017 11:07:51 +0000 (20:07 +0900)]
evas: Fix classic text styles with filters in textblock

Textblock filters support RGBA input which means legacy styles
can be used in conjunction with filtering. Not recommended, but
it works. Note: We may decide to drop this behaviour and use
alpha-only inputs for simplicity.

Still missing: support for filtering strikethrough, underline, or
embedded items

7 years agoelm_test: Add a filter to the code entry
Jean-Philippe Andre [Tue, 10 Jan 2017 10:04:46 +0000 (19:04 +0900)]
elm_test: Add a filter to the code entry

Just because I can. It's the filter code editor after all, deserves
a filter of its own. Plus, it tests that we can embed a filter
in the default style, and edit text with a filter and everything
works as expected. Yay!

7 years agoevas: Fix crash with invalid input in textblock
Jean-Philippe Andre [Tue, 10 Jan 2017 10:24:18 +0000 (19:24 +0900)]
evas: Fix crash with invalid input in textblock

7 years agoevas: Redraw tb filters if source changed
Jean-Philippe Andre [Tue, 10 Jan 2017 08:23:16 +0000 (17:23 +0900)]
evas: Redraw tb filters if source changed

Filters can have sources like image proxy, and should trigger
a redraw in case the source has changed. Since we cache the
filter's output, we need to first check whether the sources
have changed before reusing a previous output buffer.

7 years agoelm_test: Search bar enter key activates test on exact match
Jean-Philippe Andre [Tue, 10 Jan 2017 08:30:35 +0000 (17:30 +0900)]
elm_test: Search bar enter key activates test on exact match

Just type "entry" and hit the enter key.

7 years agoevas: Fix textblock filters with large items
Jean-Philippe Andre [Tue, 10 Jan 2017 07:33:28 +0000 (16:33 +0900)]
evas: Fix textblock filters with large items

If the line height is different from the text item height (eg.
because there are large embedded items) then we need to add
an extra offset to the draw commands.

Note: items themselves are not filtered (yet, at least).

7 years agoevas: Drop unused buffer from textblock filters
Jean-Philippe Andre [Tue, 10 Jan 2017 02:44:25 +0000 (11:44 +0900)]
evas: Drop unused buffer from textblock filters

This is a first step before implementing some form of caching of
those output buffers. At the moment, it very aggressively deletes
any buffer that falls outside the clip of the textblock object.
Note that this is better in terms of memory usage but way worse
in terms of render performance (eg. scrolling). If a textblock
is a proxy source then we keep all the buffers (the entire object
is to be rendered).

+ fix a crash

7 years agoevas: Fix unsafe code in previous patches (tb filters)
Jean-Philippe Andre [Mon, 9 Jan 2017 11:24:40 +0000 (20:24 +0900)]
evas: Fix unsafe code in previous patches (tb filters)

This also reduces the overhead required per text item when there
is no filter.

7 years agoevas: Introduce event style_insets,changed for tb
Jean-Philippe Andre [Fri, 6 Jan 2017 06:22:54 +0000 (15:22 +0900)]
evas: Introduce event style_insets,changed for tb

This will be triggered in the rare case when a textblock's
insets are changed (ie. the padding due to filters or style).

This fixes invalid sizing in the test case in elm (due to a
lack of event after program_set).

@feature

7 years agoevas: Implement buffer caching for textblock filters
Jean-Philippe Andre [Thu, 5 Jan 2017 12:29:32 +0000 (21:29 +0900)]
evas: Implement buffer caching for textblock filters

This is the most basic optimization that needs to be done for
filters to be useful: cache the output rgba buffers for each
filtered element. Hopefully this doesn't leak. I'm not making
any promises about that though :)

7 years agoevas: Implement filter sources support for textblock
Jean-Philippe Andre [Thu, 5 Jan 2017 08:56:04 +0000 (17:56 +0900)]
evas: Implement filter sources support for textblock

7 years agoevas: Implement filter_data_set for textblock
Jean-Philippe Andre [Thu, 5 Jan 2017 02:25:21 +0000 (11:25 +0900)]
evas: Implement filter_data_set for textblock

This is a function that allows passing variables from C or EDC
to the filter's Lua code. Useful in particular for color classes
from EDC.

This data would be the global data but we could eventually add
a markup tag to specify a data value per filter instance. For now
a single data value per tb object should be more than enough though.

7 years agoelm_test: Improve gfx filter test case for tb & text
Jean-Philippe Andre [Wed, 4 Jan 2017 10:54:48 +0000 (19:54 +0900)]
elm_test: Improve gfx filter test case for tb & text

Now we can test both of those widgets with filters. We
could also add an image. This test case still needs some
improvement anyway.

7 years agoevas: Adjust tb padding from gfx filters padding
Jean-Philippe Andre [Wed, 4 Jan 2017 08:21:56 +0000 (17:21 +0900)]
evas: Adjust tb padding from gfx filters padding

This makes gfx filters padding work just like the standard style
padding, which means the tb user must offset the object position
by -l, -t and increase the object size by l+r,t+b.

7 years agoevas: Remove unused 'inset' field from tb items
Jean-Philippe Andre [Wed, 4 Jan 2017 08:52:54 +0000 (17:52 +0900)]
evas: Remove unused 'inset' field from tb items

7 years agoevas: Fix tb filters spanning over multiple items
Jean-Philippe Andre [Wed, 4 Jan 2017 07:50:09 +0000 (16:50 +0900)]
evas: Fix tb filters spanning over multiple items

If a gfx filter was applied to a block of text spanning over
multiple text items, then it would improperly render as the
filter context was stored in the format, rather than the text
item. This is fixed by using a list of contexts in the format
node rather than a single context.

7 years agoevas: Set gfx filters by name on textblock
Jean-Philippe Andre [Thu, 22 Dec 2016 23:09:51 +0000 (08:09 +0900)]
evas: Set gfx filters by name on textblock

This allows for much simpler markup, and easier tracking of
which filters are in use, etc... Next: data and sources.

7 years agoevas: Experimental textblock support for gfx filters
Jean-Philippe Andre [Thu, 22 Dec 2016 10:43:45 +0000 (19:43 +0900)]
evas: Experimental textblock support for gfx filters

This is only for testing purposes for now. Eventually we need
to fix the following things:
- terrible performance (cache buffers)
- force redraws based on filter padding
- expand textblock padding based on max filter padding
- add sources, data and a filter name/code hash
- test! :)

7 years agoevas: Remove most extra data from filter mixin
Jean-Philippe Andre [Thu, 22 Dec 2016 11:18:51 +0000 (20:18 +0900)]
evas: Remove most extra data from filter mixin

This should save a bit of memory for all image & text
objects. This exploits the previous patch for the post-render
job queue added to evas, and simplifies this bit of code.

7 years agoevas: Add a very simple post-render job list
Jean-Philippe Andre [Thu, 22 Dec 2016 11:46:49 +0000 (20:46 +0900)]
evas: Add a very simple post-render job list

This will be used by the filters

7 years agoevas: Refactor evas filters a bit
Jean-Philippe Andre [Thu, 22 Dec 2016 10:41:04 +0000 (19:41 +0900)]
evas: Refactor evas filters a bit

This is a preparation step for (experimental) textblock support.
Textblock objects won't have a single filter, and the buffer's
geometry wouldn't be that of of the object itself. Thus a few
internal APIs need to be reworked first.

7 years agoeina: Remove EAPI eina_freeq_main_set()
Jean-Philippe Andre [Tue, 17 Jan 2017 05:07:45 +0000 (14:07 +0900)]
eina: Remove EAPI eina_freeq_main_set()

I believe this function is not required and should not be
used by applications. If there is a very good use case to
use your own main freeq, then the API could be added again.

For now, removing the set() is probably the safer option.

Note: the API was introduced in the upcoming 1.19

7 years agoevas: Use eina_slstr to simplify render debug
Jean-Philippe Andre [Wed, 11 Jan 2017 12:18:59 +0000 (21:18 +0900)]
evas: Use eina_slstr to simplify render debug

Only enabled if REND_DBG is manually enabled inside evas_render.c

7 years agoeina: Introduce Eina_Slstr for short-lived strings
Jean-Philippe Andre [Wed, 11 Jan 2017 06:34:15 +0000 (15:34 +0900)]
eina: Introduce Eina_Slstr for short-lived strings

Built on top of the new 'postponed' free queue, the short-lived
strings API allows users to return new strings without caring
about freeing them. EFL main loop will do this automatically for
them you at a later point in time (at the end of an iteration).

The APIs provided will either duplicate (copy) or more generally
steal an existing string (char *, stringshare, tmpstr, strbuf),
taking ownership of it and controling its lifetime. Those strings
can then be safely returned by an API. From a user point of view,
those strings must be considered like simple const char *, ie.
no need to free() them and their validity is limited to the
local scope.

There is no function to remove such a string from the freeq.

The short lived strings API is not thread-safe: do not send a
short-lived object from one thread to another.

@feature

7 years agoeina_freeq: Add mode for postponed deletion
Jean-Philippe Andre [Wed, 11 Jan 2017 05:48:57 +0000 (14:48 +0900)]
eina_freeq: Add mode for postponed deletion

While this reuses the existing (but new) infrastructure of
eina_freeq, the mode of operation and objective is very different
from the default freeq.

By default, any object added to the freeq is basically already
freed from the user point of view, and the freeq itself only adds
a tiny layer of memory safety by deferring the actual call to free
and optionally filling the memory blob with a pattern ('wwwww...').
This is mostly thread-safe (requires thread-safe free functions).

This new type I called postponed is intended to store objects that
will be short lived. This is not thread safe as the life of the
objects added to this queue depends on the thread that adds to
the queue. The main intent is to introduce a new API for short-lived
strings.

@feature

7 years agoeolian: merge internal funcs in database fill
Daniel Kolesa [Mon, 16 Jan 2017 15:00:45 +0000 (16:00 +0100)]
eolian: merge internal funcs in database fill

7 years agoeolian: remove/add APIs and clean up implements system
Daniel Kolesa [Mon, 16 Jan 2017 14:51:11 +0000 (15:51 +0100)]
eolian: remove/add APIs and clean up implements system

As there is no need to have separate is_auto, is_empty and
is_pure_virtual for functions and implements (each function has
its own base implement by default) I removed the function ones.
Instead, I added a way to retrieve a function's base implement
so that you can instead do the checks on the implement even when
you only have the function.

I also moved base implement build directly into the parser instead
of the database filler. That allows for significant cleanup. I
also removed distinction of implement pointers in Eolian_Function
for get and set as implements now always contain an entire thing
so the pointer was always the same anyway.

Things should still behave more or less the same, but ordering
of generated functions has changed because ordering of implements
has changed.

7 years agointerface_scrollable: Unify basis of calculation of page_get logic
Wonki Kim [Mon, 16 Jan 2017 05:20:04 +0000 (14:20 +0900)]
interface_scrollable: Unify basis of calculation of page_get logic

Summary:
If rtl mode is set, current_page_get api should return reversed page number.
To do that, make x position x-axis reversed before page calculating.

Also bring_in and page_show should show the reversed page in rtl mode.
This patch modify the functions to support that.

Lastly, scroller should be scrolling based on the right edge of the page.

This patch is a combination of the patches(D4559,D4560)

Test Plan:
1. Run scroller test on elementary_test
2. Turn ui mirrored mode on
3. Manipulate scroller in various ways
    - It should scroll proper position when you click next or prev btn.

Reviewers: woohyun, taxi2se, z-wony, cedric

Subscribers: cedric, jpeg

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

7 years agoelm_multibuttonentry: Fix MBE got a wrong state.
Woochan Lee [Mon, 16 Jan 2017 02:48:48 +0000 (11:48 +0900)]
elm_multibuttonentry: Fix MBE got a wrong state.

Summary:
Even User set a MBE state as "shrink" when MBE created.
MBE has been changed the state as "none" during added items.

This patch will be fixed that bug state.

@fix

Test Plan:
Add below line after create mbe.

'elm_multibuttonentry_expanded_set(mbe, EINA_FALSE)'

Then Add items using item_append API.

See the result. mbe is not on shrink mode.

Reviewers: Hermet, jpeg, cedric

Subscribers: cedric, jpeg

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

7 years agoelm_code: Add some safety
Andy Williams [Sun, 15 Jan 2017 23:50:37 +0000 (23:50 +0000)]
elm_code: Add some safety