platform/upstream/efl.git
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

7 years agoelm_code: Fix selection when moving around with cursor keys
Andy Williams [Sat, 14 Jan 2017 19:39:39 +0000 (19:39 +0000)]
elm_code: Fix selection when moving around with cursor keys

Also fix the handling of newlines in our selections
@fix

7 years agonet gadget: try to improve the theme
Dave Andreoli [Sun, 15 Jan 2017 15:05:21 +0000 (16:05 +0100)]
net gadget: try to improve the theme

* make the 2 monitors fill based on tx/rx percentage vals
* try a more bluish version (still need a bit of love)

Note that this is not working atm (okra need to fix in E)

7 years agoLuncher: Fix engage theme to scale more smoothly.
Andy Williams [Fri, 13 Jan 2017 22:49:57 +0000 (22:49 +0000)]
Luncher: Fix engage theme to scale more smoothly.

There is still a layering issue and the algorithm could be improved

7 years agoecore-wl2: make session recovery listener global
Mike Blumenkrantz [Fri, 13 Jan 2017 16:34:07 +0000 (11:34 -0500)]
ecore-wl2: make session recovery listener global

global proxies have a single instance and do not work with
multiple listeners

@fix

7 years agoelm_box: allow aspects 1 <= x < 0.0
Mike Blumenkrantz [Fri, 13 Jan 2017 16:34:07 +0000 (11:34 -0500)]
elm_box: allow aspects 1 <= x < 0.0

this was a typo in my initial implementation

@fix

7 years agoecore-wl2: Use input serial for move and resize functions
Chris Michael [Fri, 13 Jan 2017 14:52:24 +0000 (09:52 -0500)]
ecore-wl2: Use input serial for move and resize functions

This is a partial revert of 2bd880c6c7 which changed to use
wl_display_get_serial function. When can do that for most things,
however things like window move/resize need to use the input serial
which started the move/resize.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agodocs: generate correct eolian function signatures
Daniel Kolesa [Fri, 13 Jan 2017 14:46:18 +0000 (15:46 +0100)]
docs: generate correct eolian function signatures

Now signatures don't contain full class name, just func name.

7 years agoeolian: change eo file syntax @virtual_pure -> @pure_virtual
Daniel Kolesa [Fri, 13 Jan 2017 14:44:09 +0000 (15:44 +0100)]
eolian: change eo file syntax @virtual_pure -> @pure_virtual

7 years agoeolian: use consistent pure_virtual naming in API
Daniel Kolesa [Fri, 13 Jan 2017 14:40:29 +0000 (15:40 +0100)]
eolian: use consistent pure_virtual naming in API

Previously one API used just virtual (incorrect) and one used
virtual_pure (which just sounds weird). So unify with a single
name, pure_virtual, similar as in other lanugages.

This does not change eo file syntax yet.

7 years agoeolian: consistent and cleaner error values from APIs
Daniel Kolesa [Fri, 13 Jan 2017 14:15:10 +0000 (15:15 +0100)]
eolian: consistent and cleaner error values from APIs

Now all error/unknown/etc values returned from APIs are zero,
previously it was a mix of zeroes and minus ones. Also, some
enums that had no error/invalid value before have one now, which
allows for better distinction between what is an error and what
is an intended result.

7 years agoelm_bg: rotate image according to the orientation info
Jaeun Choi [Fri, 13 Jan 2017 11:23:54 +0000 (20:23 +0900)]
elm_bg: rotate image according to the orientation info

rotate image into the standard orientation according to the EXIF data
(think about taking a picture from camera and setting it as bg)

7 years agoefl_ui_win - switch to the element being used for border type
Carsten Haitzler (Rasterman) [Fri, 13 Jan 2017 09:04:17 +0000 (18:04 +0900)]
efl_ui_win - switch to the element being used for border type

7 years agoelm_gesture_layer: update doc.
Woochan Lee [Fri, 13 Jan 2017 00:36:19 +0000 (16:36 -0800)]
elm_gesture_layer: update doc.

Summary:
Add description about gesture APIs.

Some of the developers told me that they really have no idea what is this for when first see the API doc...

Reviewers: Hermet, raster, jpeg, cedric

Reviewed By: cedric

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoelm.hoversel: revert unnecessary item expansion & get proper size
Jee-Yong Um [Fri, 13 Jan 2017 00:32:02 +0000 (16:32 -0800)]
elm.hoversel: revert unnecessary item expansion & get proper size

Summary:
The changes of previous patch (4ea7effe70423b5f88f98aea45a96582669aa280)
are reverted, and item calculation is fixed correctly.
The main reason why hoversel item has wrong size in screen rotation is
that hover doesn't update geometry when the size of target object is changed.

Test Plan: elementary_test -to hoversel

Reviewers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoelm_hoversel: reset alignment before calculation
Jee-Yong Um [Fri, 13 Jan 2017 00:30:28 +0000 (16:30 -0800)]
elm_hoversel: reset alignment before calculation

Summary:
When screen is rotated, _resizing_eval() will be called twice by hover_parent
resize and hoversel movement.
If the alignment is changed to the right in the first call because of the geometry
of edje part is not updated yet (hoversel uses edje part geometry in calculation),
hoversel keeps being right-aligned in the second call,
even though there is enough space to show with default alignment.

Test Plan: elementary_test -to hoversel

Reviewers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoecore_file: add case to properly rename a file in Windows
Ivan Furs [Fri, 13 Jan 2017 00:24:31 +0000 (16:24 -0800)]
ecore_file: add case to properly rename a file in Windows

Summary:
If the file with a new path was created and 'rename' wants to replace the old path to the new path. 'rename' will return:
   Windows 7: -1 (errno=EEXIST) (EEXIST == 17)
   Ubuntu: 0

**EEXIST**
**Ubuntu**: The link named by new is a directory that is not an empty directory. (https://linux.die.net/man/3/rename)
**Windows 7**: Files exist. An attempt has been made to create a file that already exists. For example, the _O_CREAT and _O_EXCL flags are specified in an _open call, but the named file already exists.(https://msdn.microsoft.com/en-us/library/5814770t.aspx)

Test Plan:
**Sample code to rename in Linux and Windows if the file with the new name already exists:**

int main()
{
const char *_old = "old";
const char *_new = "new";

int fd1 = open(_old, O_CREAT);
close(fd1);
int fd2 = open(_new, O_CREAT);
close(fd2);
printf("rename:\t%s -> %s\n", _old, _new);
int r = rename(_old, _new);
if (r == 0)
{
printf("GOOD\n");
}
else
{
printf("CODE ERROR:\n"                  );
printf(" -rename...: %d\n", r    );
printf(" -errno....: %d\n", errno);
}
return 0;
}

Reviewers: raster, vtorri, jpeg, NikaWhite, reutskiy.v.v, an.kroitor, cedric

Reviewed By: cedric

Subscribers: artem.popov, cedric, jpeg

Tags: #efl, #windows

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoemotion: add support for obtaining embedded artwork from media files with gstreamer1...
Al Poole [Thu, 12 Jan 2017 22:09:49 +0000 (14:09 -0800)]
emotion: add support for obtaining embedded artwork from media files with gstreamer1 backend.

Reviewers: raster, cedric

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoUi text: fix deletion of the swallowed text object
Daniel Hirt [Thu, 12 Jan 2017 16:01:52 +0000 (18:01 +0200)]
Ui text: fix deletion of the swallowed text object

The Efl.Canvas.Text object loses its parent due to a specific behavior
of Edje when swallowing objects.
The mentioned object then loses sync with the Ui.Text object, thus not
getting deleted upon destruction - that's actually because Edje
reparents to the canvas upon its own deletion.
Adding this fix until we figure out if there is a better alternative.

7 years agoelput: Send touch motion before sending touch button events
Chris Michael [Thu, 12 Jan 2017 16:09:47 +0000 (11:09 -0500)]
elput: Send touch motion before sending touch button events

This patch sends a touch motion event before sending of touch up/down
events. This allows some compositors (enlightenment) to update their
internal representation of where the mouse pointer is before handling
button events (as touch down/up is treated as a mouse button down/up).

Fixes T5094 for the old man ;)

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoelput: Store touch timestamp and slot
Chris Michael [Thu, 12 Jan 2017 15:24:18 +0000 (10:24 -0500)]
elput: Store touch timestamp and slot

This patch adds a timestamp field to the touch structure so that we
can store it and do not have to refetch the timestamp when sending
touch events.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoeolian: strict function type input checks in APIs
Daniel Kolesa [Thu, 12 Jan 2017 15:56:49 +0000 (16:56 +0100)]
eolian: strict function type input checks in APIs

Strictness of various Eolian APIs has been enhanced, for example
eolian_class_function_get_by_name now won't return anything if
you request an EOLIAN_PROPERTY and the found func is just an
EOLIAN_PROP_GET, and various APIs won't accept arbitrary inputs
like EOLIAN_UNRESOLVED or EOLIAN_PROPERTY now, instead you will
need to provide EOLIAN_PROP_GET, EOLIAN_PROP_SET or EOLIAN_METHOD
explicitly.

The purpose of this is to reduce potential bugs and fix ambiguous
behavior. Thanks to use of EINA_SAFETY, appropriate errors should
be printed into terminal when an API is used incorrectly.

7 years agoeolian gen: do not use EOLIAN_UNRESOLVED/PROPERTY for lookups
Daniel Kolesa [Thu, 12 Jan 2017 14:08:46 +0000 (15:08 +0100)]
eolian gen: do not use EOLIAN_UNRESOLVED/PROPERTY for lookups

7 years agoelm theme/test - add start of nviframe window style and test it
Carsten Haitzler (Rasterman) [Thu, 12 Jan 2017 09:02:18 +0000 (18:02 +0900)]
elm theme/test - add start of nviframe window style and test it

7 years agoelm_win - fix getting of stack id string if win id changes
Carsten Haitzler (Rasterman) [Thu, 12 Jan 2017 09:01:15 +0000 (18:01 +0900)]
elm_win - fix getting of stack id string if win id changes

new feature. win id changed with csd pus alpha so reget stack id
string then

7 years agoeo - remove the spare eo domain for now for future expansion
Carsten Haitzler (Rasterman) [Wed, 11 Jan 2017 01:15:07 +0000 (10:15 +0900)]
eo - remove the spare eo domain for now for future expansion

7 years agoeolian: fine-grained is_auto/is_empty for implements
Daniel Kolesa [Wed, 11 Jan 2017 18:25:54 +0000 (19:25 +0100)]
eolian: fine-grained is_auto/is_empty for implements

7 years agoeolian: remove function_is_implemented
Daniel Kolesa [Wed, 11 Jan 2017 17:18:48 +0000 (18:18 +0100)]
eolian: remove function_is_implemented

Its design does not match current Eolian and will be replaced later.
There isn't any generator using it right now, so it's safe to remove.

7 years agoecore-evas-wayland: Add handler for window_configure_complete event
Chris Michael [Wed, 11 Jan 2017 17:23:53 +0000 (12:23 -0500)]
ecore-evas-wayland: Add handler for window_configure_complete event

Small patch to add a handler so we can listen for when the surface
configure event is complete and can then go ahead and attach buffers
to the surface. This allows rage <filename> to work again in Weston :)

NB: This does allow rage <filename> to work under Weston now, but
still fails under Enlightenment for some reason :(

ref T5090

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoecore-wl2: Add event to raise when window configure is completed.
Chris Michael [Wed, 11 Jan 2017 17:22:01 +0000 (12:22 -0500)]
ecore-wl2: Add event to raise when window configure is completed.

Small patch to create and raise a new event letting ecore_evas know
when the window has been configured. With the addition of xdg_shell v6
support, we cannot commit a surface with an existing buffer until the
surface has been configured. This patch allows us to raise an event to
ecore_evas when the surface has been configured, so we can then attach
a buffer to it.

ref T5090

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoevas-wayland-shm: Compare hidden flag during reconfigure
Chris Michael [Wed, 11 Jan 2017 17:19:25 +0000 (12:19 -0500)]
evas-wayland-shm: Compare hidden flag during reconfigure

Small patch to compare if the hidden flag being passed in is the same
as the one stored in Outbuf. With the addition of xdg_shell v6
support, we cannot commit a surface with an existing buffer until the
surface has been configured. In order to facilitate this, we will use
the 'hidden' flag so that any surface_post does not actually attach a
buffer unless configure has already been handled on the surface.

ref T5090

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoecore-wl2: Minor formatting fixes
Chris Michael [Wed, 11 Jan 2017 15:20:49 +0000 (10:20 -0500)]
ecore-wl2: Minor formatting fixes

NB: No functional changes, just formatting

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoecore-evas-wayland: Minor formatting fix
Chris Michael [Wed, 11 Jan 2017 15:08:43 +0000 (10:08 -0500)]
ecore-evas-wayland: Minor formatting fix

NB: No functional changes, just formatting

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoevas-wayland-shm: Minor formatting fix
Chris Michael [Wed, 11 Jan 2017 15:04:37 +0000 (10:04 -0500)]
evas-wayland-shm: Minor formatting fix

NB: No functional changes, just formatting

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoeolian: improve implement error messages
Daniel Kolesa [Wed, 11 Jan 2017 15:45:53 +0000 (16:45 +0100)]
eolian: improve implement error messages

By retrieving by EOLIAN_UNDEFINED, we can provide more concrete error messages
thanks to the logic later.

7 years agoeolian: enforce specification of both get and set in prop impls
Daniel Kolesa [Wed, 11 Jan 2017 15:35:03 +0000 (16:35 +0100)]
eolian: enforce specification of both get and set in prop impls

Now you can't use the same syntax as you would for a method to
implement a property as whole, instead you need to specify the
getter and/or setter explicitly. This is to allow parent classes
to expand their properties without altering behavior of the child
classes.

7 years agoEdje_Edit: first part of vector API implementation
Vitalii Vorobiov [Wed, 11 Jan 2017 13:10:35 +0000 (15:10 +0200)]
Edje_Edit: first part of vector API implementation

edje_edit_vector_del
edje_edit_vector_usage_list_get
edje_edit_vector_id_get
edje_edit_vectors_list_get

edje_edit_state_vector_get
edje_edit_state_vector_set

7 years agoRevert "edje_cc_parse: Fix to insert missing double quotation marks"
Jaehyun Cho [Wed, 11 Jan 2017 05:47:28 +0000 (14:47 +0900)]
Revert "edje_cc_parse: Fix to insert missing double quotation marks"

This reverts commit 5ae6e1db2f7f181039b05cbb562573321f419a8e.

On Windows, system() does not execute file if the argument of system()
begins with double quotation marks.
(e.g. system("\"C:\efl\lib/edje/utils/v-1.18/epp.exe\" ...");)

To resolve this issue on Windows, it has been fixed to have the argument
of system() not begin with double quotation marks.
(i.e. Do not use double quotation marks for epp.exe path in system().)

7 years agoedje_cc_parse: Fix not to convert macros to a single string
Jaehyun Cho [Tue, 10 Jan 2017 13:23:35 +0000 (22:23 +0900)]
edje_cc_parse: Fix not to convert macros to a single string

Double quotation marks convert macros to a single macro string and only
the first macro becomes valid.

So double quotation marks are not used for macros.

7 years agoecore-wl2: Mark window as pending configure when showing popup
Chris Michael [Tue, 10 Jan 2017 17:00:39 +0000 (12:00 -0500)]
ecore-wl2: Mark window as pending configure when showing popup

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoecore-wl2: Remove incorrect EINA_UNUSED
Chris Michael [Tue, 10 Jan 2017 16:49:10 +0000 (11:49 -0500)]
ecore-wl2: Remove incorrect EINA_UNUSED

These parameters are actually used inside this function so remove the
EINA_UNUSED

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoecore-wl2: Use 'serial' directly from wayland call
Chris Michael [Tue, 10 Jan 2017 16:48:18 +0000 (11:48 -0500)]
ecore-wl2: Use 'serial' directly from wayland call

As we cannot rely on window->display->serial to be accurate (it is
only set when there is input going on), we should be getting the
'serial' values here directly from a wayland function call.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoecore-evas-wayland: Ensure pending configure is handled before rendering
Chris Michael [Tue, 10 Jan 2017 16:28:40 +0000 (11:28 -0500)]
ecore-evas-wayland: Ensure pending configure is handled before rendering

With the change to xdg_shell v6, we need to wait for any pending
configure to be handled before we can render. This patch addresses
that issue and makes Elementary_Test work again under Weston :)

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoecore-wl2: Add flag to indicate pending configure
Chris Michael [Tue, 10 Jan 2017 16:27:10 +0000 (11:27 -0500)]
ecore-wl2: Add flag to indicate pending configure

With the change to xdg_shell v6 we need to indicate that a window has
a pending configure event, and not show the window if a configure is
pending. In order to handle this, we add a flag to the window
structure and can check it inside ecore_evas.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoecore-evas-wayland Fix formatting
Chris Michael [Tue, 10 Jan 2017 14:44:53 +0000 (09:44 -0500)]
ecore-evas-wayland Fix formatting

NB: No functional changes (yet), just formatting cleanup so this is
more readable.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoecore-wl2: Use correct serial value
Chris Michael [Tue, 10 Jan 2017 13:49:24 +0000 (08:49 -0500)]
ecore-wl2: Use correct serial value

When we get a configure event, we should be using the current display
serial to set as the window configure serial value. Previous code
would always end up setting the window configure_serial to 0 as
win->display->serial was not getting updated.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoelm_code: Selections of word break on quotes too
Andy Williams [Tue, 10 Jan 2017 12:53:21 +0000 (12:53 +0000)]
elm_code: Selections of word break on quotes too

7 years agogengrid: fix highlight bug in disabled item
SangHyeon Lee [Tue, 10 Jan 2017 04:59:42 +0000 (13:59 +0900)]
gengrid: fix highlight bug in disabled item

Summary:
if item is disabled, item must be not highlighted by touch events.

Signed-off-by: SangHyeon Lee <sh10233.lee@samsung.com>
7 years agoElm theme: Center previews again in the luncher theme.
Stephen 'Okra' Houston [Mon, 9 Jan 2017 20:49:43 +0000 (14:49 -0600)]
Elm theme: Center previews again in the luncher theme.

7 years agocpu + mem gadget: implemented vertical layouts
Dave Andreoli [Mon, 9 Jan 2017 19:59:55 +0000 (20:59 +0100)]
cpu + mem gadget: implemented vertical layouts

7 years agodmabuf: Make failure a DBG instead of an ERR
Derek Foreman [Mon, 9 Jan 2017 14:30:25 +0000 (08:30 -0600)]
dmabuf: Make failure a DBG instead of an ERR

It's not really an error - fallback to shm will be attempted.

7 years agoecore_con - move libproxy to a slave binary with stdin/out msging
Carsten Haitzler (Rasterman) [Sun, 8 Jan 2017 13:57:54 +0000 (22:57 +0900)]
ecore_con - move libproxy to a slave binary with stdin/out msging

so here's the ugly problem. libproxy. yes. we've discussed memory
usage (e.g. it may have to execute javascript and pull in lots of deps
etc.) but we dlopene'd on the fly. ok... but this didn't solve another
issue i hit:

libproxy was causing enlightenment to abort(). some internal bit of
libproxy was raising a c++ exception. this wasn't caught. this causes
an abort(). takes down your entire desktop. FANTASTIC. this is bad. i
wouldnt' expect a library we depend on to be THIS anti-social but
libproxy seemingly is. it SHOULd catch its error sand just propagate
back to us so we can handle gracefully.

there reall is no way around this - isolate libproxy. it's even worse
that libproxy can load arbitrary modules that come from anywhere sho
who knows what issues this can cause. isolation is the best solution i
can think of.

so this makes an elf+net_proxy_helper we spawn the first time we need
a proxy lookup. we re-use that binary again and again until it exits
(it should exit after 10 seconds of being idle with no requests coming
in/pending). it'll respawn again later if needed. this involves now
the efl net threads having to marshall back to mainloop to do the
spawn and to write to the proxy process (reading is done by async exe
data events and the data is passed down a thread queue to the waitng
efl net thread). if the exe dies with pending requests unanswered then
it's respawned again and the req's are re-sent to it... just in case.
it has a limit on how often it'll respawn quickly.

this seems to work in my limited testing. this ALSO now isolates
memory usage of libproxy to another slave process AND this process
will die taking its memory with it once it's been idle for long
enough. that;s also another good solution to keeping libproxy impact
at bay.