platform/upstream/efl.git
7 years agoevas filters: Move mask to software generic (2/8)
Jean-Philippe Andre [Tue, 17 Jan 2017 10:33:50 +0000 (19:33 +0900)]
evas filters: Move mask to software generic (2/8)

7 years agoevas filters: Move blend to software_generic (1/8)
Jean-Philippe Andre [Tue, 17 Jan 2017 07:13:35 +0000 (16:13 +0900)]
evas filters: Move blend to software_generic (1/8)

This is an attempt at refactoring the filters code so I can
later implement GL support. This patch adds a few extra changes
to remove avoid calling functions of libevas from the software
engine: use the draw functions from static_libs/draw rather
than evas_common APIs.

7 years agoEfl.Gfx.Path: Fix wrong condition check in _find_ellipsis_coords
Jeeyong Um [Fri, 14 Apr 2017 01:16:48 +0000 (10:16 +0900)]
Efl.Gfx.Path: Fix wrong condition check in _find_ellipsis_coords

Summary:
In previous patch, !w should be replaced with EINA_FLT_EQ(w, 0.0), but it was
replaced with !EINA_FLT_EQ(w, 0.0). This breaks rounded rectangle.

T5291

Test Plan: compile and run attached file

Reviewers: cedric, jpeg, Jaehyun_Cho

Reviewed By: Jaehyun_Cho

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

7 years agoevas: move Efl_Canvas_Output to be an internal only API.
Cedric BAIL [Thu, 13 Apr 2017 22:25:29 +0000 (15:25 -0700)]
evas: move Efl_Canvas_Output to be an internal only API.

7 years agoevas: this symbol actually don't exist.
Cedric BAIL [Thu, 13 Apr 2017 21:39:46 +0000 (14:39 -0700)]
evas: this symbol actually don't exist.

7 years agoRevert "efl: terrible kludge so avoid termination crash on osx"
Stefan Schmidt [Thu, 13 Apr 2017 12:32:07 +0000 (14:32 +0200)]
Revert "efl: terrible kludge so avoid termination crash on osx"

The only purpose of this commit was to allow efl 1.19 to be
released on macOS wothout crashing on termination. Time to revert
it and see that we can find a real fix for the next release.

This reverts commit cd5e755951c0126f136b6e7cfded14056d8336fa.

ref T5245

7 years agoeolian: allow extending eolian-generated classes from within C
Daniel Kolesa [Thu, 13 Apr 2017 13:56:15 +0000 (15:56 +0200)]
eolian: allow extending eolian-generated classes from within C

If you define either the macro MY_CLASS_EXTRA_OPS for normal
methods/properties or MY_CLASS_EXTRA_CLASS_OPS for class methods
or properties, which contains a comma-delimited list of ops defs
(i.e. EFL_OBJECT_OP_FUNC(...), ...) right before including the
generated my_class.eo.c file, the definitions from these will
be included in the actual class. This can be used to override
certain things in a class internally without exposing it to
Eolian, or for testing/debugging.

7 years agoefl vpath: Check and terminate execution if set*uid() calls fail
Bryce Harrington [Thu, 13 Apr 2017 07:41:02 +0000 (16:41 +0900)]
efl vpath: Check and terminate execution if set*uid() calls fail

Summary:
Quells warnings:
    lib/efl/interfaces/efl_vpath_core.c:117:9: warning: ignoring return
    value of ‘setuid’, declared with attribute warn_unused_result
    [-Wunused-result]
         setuid(geteuid());
         ^
    lib/efl/interfaces/efl_vpath_core.c:169:9: warning: ignoring return
    value of ‘setreuid’, declared with attribute warn_unused_result
    [-Wunused-result]
         setreuid(uid, geteuid());
         ^

Reviewers: raster, jpeg

Reviewed By: raster

Subscribers: cedric, jpeg

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

7 years agoGenlist: Performance optimization for genlist in non-filter cases
Godly T.Alias [Thu, 13 Apr 2017 07:40:28 +0000 (16:40 +0900)]
Genlist: Performance optimization for genlist in non-filter cases

Summary:
When _item_filtered_get is called, block and pan re-calculations
happen, When there is no filter applied, we can skip item filtering to
avoid some unwanted calculations

Reviewers: cedric, raster, SanghyeonLee

Reviewed By: raster

Subscribers: rajeshps, Princekrdubey, cedric, jpeg

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

7 years agoecore_input: add API to get name of joystick.
Shinwoo Kim [Thu, 13 Apr 2017 05:53:47 +0000 (14:53 +0900)]
ecore_input: add API to get name of joystick.

Summary:
The Ecore_Event_Joystick would be not enough information on user side.
Because the button index such as ECORE_EVENT_JOYSTICK_BUTTON_SELECT/START/META,
etc could be mapped to different button for different named joystick.

Test Plan: Using example

Reviewers: raster, cedric, jpeg

Reviewed By: raster

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

7 years agoevas: engine_info set/get should never show up in Eo API.
Cedric BAIL [Fri, 7 Apr 2017 21:05:16 +0000 (14:05 -0700)]
evas: engine_info set/get should never show up in Eo API.

Eo API are for something we want to expose to third party application
and bindings. engine_info is exactly what we don't want to expose.

7 years agoecore_evas: fix use of new VNC API in example.
Cedric BAIL [Wed, 22 Mar 2017 21:39:58 +0000 (14:39 -0700)]
ecore_evas: fix use of new VNC API in example.

7 years agoevas: remove pixels hook from x11 backend now that we don't use it anymore
Cedric BAIL [Wed, 22 Mar 2017 19:56:28 +0000 (12:56 -0700)]
evas: remove pixels hook from x11 backend now that we don't use it anymore

7 years agoevas: remove pixels hook from fb now that we don't use it anymore.
Cedric BAIL [Wed, 22 Mar 2017 19:56:08 +0000 (12:56 -0700)]
evas: remove pixels hook from fb now that we don't use it anymore.

7 years agoecore_evas: change VNC API and use snapshot internally.
Cedric BAIL [Wed, 22 Mar 2017 18:19:27 +0000 (11:19 -0700)]
ecore_evas: change VNC API and use snapshot internally.

7 years agoecore_con: send server_upgrade event *after* clearing pending saves
Bryce Harrington [Wed, 12 Apr 2017 21:38:56 +0000 (14:38 -0700)]
ecore_con: send server_upgrade event *after* clearing pending saves

Summary:
The _ecore_con_post_event_server_upgrade() call adds an event to free
the server_upgrade object, svr, via  _ecore_con_server_free(svr) so we
should assume srv is freed after it returns.  Thus, perform the
pending_slice processing prior to calling it.  Otherwise it triggers an
illegal access (USE_AFTER_FREE) error in Coverity.

@fix CID1373485

Reviewers: barbieri

Reviewed By: barbieri

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoevas: correct pluralization grammar in Evas_Eo.h
Bryce Harrington [Wed, 12 Apr 2017 21:27:37 +0000 (14:27 -0700)]
evas: correct pluralization grammar in Evas_Eo.h

Test Plan:
- There are other grammatical errors, but I'm focusing this patch just
  on pluralization-related issues to ease review and make it clearer if
  I've introduced any inaccuracies.

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agonotify: fix hide animation logic for popup
JinYong Park [Wed, 12 Apr 2017 21:25:51 +0000 (14:25 -0700)]
notify: fix hide animation logic for popup

Summary:
When popup is timeout, notify call hide func, and send time out event to popup.
After popup receiving time out event, popup hide object again,
so hide animation doesn't show.
And notify hide function doesn't send hide signal to block events part,
(but dismiss function send it)
So add that signal.

Test Plan:
 1. elementary_test -to popup
 2. click first item, "popup+center+text"
 3. compare time out event before this patch and after.

@fix

Reviewers: herb, singh.amitesh, Hermet, cedric, raster, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoevas: Fix event propagation in elm_widget
Jean-Philippe Andre [Wed, 12 Apr 2017 11:13:59 +0000 (20:13 +0900)]
evas: Fix event propagation in elm_widget

See the previous commit. efl_provider_find() could not
find a canvas because the event object had no parent.

This restores the slider in E's sound mixer.

Note: Input events may expose the evas canvas object
because of parenting. This will eventually need fixing,
as only efl.ui.win should be exposed.

If 8ff2dffe7c7a21278dis backported to 1.19 then this patch
also needs to be merged as well.

7 years agoevas/elm: Fix bad propagation of ON_HOLD flag
Jean-Philippe Andre [Wed, 12 Apr 2017 09:30:22 +0000 (18:30 +0900)]
evas/elm: Fix bad propagation of ON_HOLD flag

Test scenario:
  elementary_test -to "ExtScroller"

Try and modify a slider's value with the mouse wheel. Bad things
were happenning, as the flag ON_HOLD was not properly propagated
from the slider to the scroller. This is because the legacy
event_info structure inside the eo event info was not updated
with the new flag value.

By introducing a new EO only API, which is meant to remain
internal, we can use a single legacy info structure, fixing
this issue.

Note: In the future this API needs to be internal, not protected.

@fix

7 years agoconfigure: switch to dev mode again
Stefan Schmidt [Wed, 12 Apr 2017 09:19:25 +0000 (11:19 +0200)]
configure: switch to dev mode again

Merge window for 1.20 is now open.

7 years agorelease: Update NEWS and bump version for 1.19.0 release
Stefan Schmidt [Wed, 12 Apr 2017 08:23:06 +0000 (10:23 +0200)]
release: Update NEWS and bump version for 1.19.0 release

7 years agobuild: disable epoll support on solaris based systems
Stefan Schmidt [Wed, 12 Apr 2017 07:59:08 +0000 (09:59 +0200)]
build: disable epoll support on solaris based systems

We have a report where the use of epoll breaks such systems. Disabling it for
now to make them work again. A deeper analysis is underway to understand this
better and maybe have epoll support later.

7 years agoscroller: Fix issues with looping and paging
Jean-Philippe Andre [Wed, 12 Apr 2017 07:59:14 +0000 (16:59 +0900)]
scroller: Fix issues with looping and paging

Prerequisites:
  Disable scroll animation (in elementary_config)

Test case:
  elementary_test -to Scroller

1. Scroll with the mouse wheel. Scrolling will not loop or anything.
2. Enable loop in Y, scroll to the top and to the bottom, verify
   that scrolling loops fine and shows the last and first page in
   full.
3. Enable page snapping, and repeat 2.

FIXME: Page snapping doesn't do much if you use thumbscroll or
       drag the scrollbars.

FIXME: In the test case, Y +/- 1 is useless as the scroller snaps
       to the pages even without snapping enabled.

@fix

7 years agoscroller: Fix freeze after dragging bars
Jean-Philippe Andre [Wed, 12 Apr 2017 06:02:42 +0000 (15:02 +0900)]
scroller: Fix freeze after dragging bars

The freeze property is a set() only but could internally
be reset to false, after dragging a vertical or horizontal slider.

Test scenario:
  elementary_test -to scroller

Click Freeze, test the mouse wheel (can't do anything), drag a
scroller side bar, test the mouse wheel again.

Before this patch, the scroller would scroll. After the patch, the
scroller remains fixed, respecting the value of freeze.

FIXME: It is possible that the proper fix would be to disable
       bars drag during freeze, but that is not the case currently.

NOTE: freeze, hold, movement_block, lock_x/y have very similar
      meanings. The doc really needs clarification here, and some
      property might be removed. Also, freeze and hold have no
      getter, only a setter. drag_lock_x/y is part of elm_widget,
      and not specific to scrollers.

7 years agoscroller: Fix CRI if scroll animation is disabled
Jean-Philippe Andre [Wed, 12 Apr 2017 05:17:09 +0000 (14:17 +0900)]
scroller: Fix CRI if scroll animation is disabled

If the scroll animation is disabled, we ended up with an
immediate call from inside a post-event callback to modify
the canvas geometry which led to feeding events. Since
99d21f6d9c6e65 and 54e5841b2f638 it is basically forbidden
to modify the canvas or feed events from the post-event cb.
This is because feeding events from inside the post-event
callback can break the logical order of operations between
post-event cb and event cb.

Note: This also implements no-animation scrolling for page
scroll, in case scroll animation is disabled (unifying the
code did that).

Fixes T5289 (abort inside E)

7 years agoscroller: Fix wheel scroll with imbricated H+V scrollers
Jean-Philippe Andre [Wed, 12 Apr 2017 02:31:21 +0000 (11:31 +0900)]
scroller: Fix wheel scroll with imbricated H+V scrollers

Test scenario:
 elementary_test -to "Scroller 2"

Use the mouse wheel to scroll inside the horizontal scroller
(the one with many "...Horizontal scrolling..." buttons). This
scroller should scroll horizontally. When reaching the end of
this scroller, the main vertical scroller should take over
and scroll vertically, but only after a 0.5s timeout has passed.

Before this patch, you could wait forever and scrolling inside
the horizontal scroller would never trigger a scroll in the main
vertical scroller, despite reaching the end point.

In 1.18 both the main and the horizontal scrollers scroll
simultaneously. The imbricated vertical scrollers seem to work
as designed, but not H inside V.

@fix

7 years agoEvas_Common: Fix minor grammatical errors
Bryce Harrington [Tue, 11 Apr 2017 15:48:36 +0000 (11:48 -0400)]
Evas_Common: Fix minor grammatical errors

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, jpeg

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

7 years agoEvasGL: Do internal make current if context changed.
Minkyoung Kim [Tue, 11 Apr 2017 07:20:07 +0000 (16:20 +0900)]
EvasGL: Do internal make current if context changed.

Summary:
Before, rsc->current_ctx is always same with ctx.
So checking context change was meaningless.
From now, it has meaning.

Test Plan: App call evas_gl_make_current more than twice in pixels callback. Those surfaces are indirect rendering surface.

Reviewers: jpeg, dkdk, wonsik

Reviewed By: jpeg

Subscribers: cedric

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

7 years agoevas: If there isn't clipper when recalcing clip, set mask.clip = NULL.
Minkyoung Kim [Tue, 11 Apr 2017 04:47:55 +0000 (13:47 +0900)]
evas: If there isn't clipper when recalcing clip, set mask.clip = NULL.

Summary:
There's problem in Tizen3.0.

1. Clip set mask_obj to obj for masking.
2. Unset mask_obj from obj, and del mask_obj.
3. obj has clip.mask still. So obj is trying to do mask_subrender() for freeed mask_obj.

So reset clip.mask to NULL, If there isn't clipper.

Now, there's no routine for reseting clip.mask when clipper object is freed. isn't it?
Actually I'm not sure that clip.mask=NULL should be there as this patch.

Test Plan: Tizen3.0 wearable

Reviewers: cedric, raster, wonsik, jpeg

Subscribers: scholb.kim, dkdk

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

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
7 years agoelementary - efl ui flip - fix map apply for page flip
Carsten Haitzler (Rasterman) [Tue, 11 Apr 2017 00:56:22 +0000 (09:56 +0900)]
elementary - efl ui flip - fix map apply for page flip

this mirrors the fix in fd69113f6a9e2735a3e1ad2d0830982c722f453e by jp
into the elm flip widget too.

@fix

7 years agowayland_imf: Fix bug in shutdown
Derek Foreman [Mon, 10 Apr 2017 19:44:33 +0000 (14:44 -0500)]
wayland_imf: Fix bug in shutdown

Theoretical bug that may become real in the coming days - ecore_imf's
wayland module has the interface for the text input protocol.  The
imf module gets unloaded after destroying the protocol object but
before receiving all events from the server destined for it.

Currently that's fine, but I've posted some wayland patches for
review that require the interface to remain present while the text
input object is a zombie.  These patches cause some EFL apps to
crash on shutdown when they unmap the wayland imf module.

This moves the wayland interface bits into ecore_wl2 which doesn't
get unmapped.

7 years agoevas map: Fix test case "Flip Page"
Jean-Philippe Andre [Mon, 10 Apr 2017 10:38:56 +0000 (19:38 +0900)]
evas map: Fix test case "Flip Page"

Since 9b7ac51943ba0d6391b75cf evas map tries to avoid recalculating
stuff when the map parameters have not changed. Unfortunately the
code in elementary_test -to "Flip Page" was badly written. It was
modifying a constant's internal value (after ugly cast). So the
memcmp() and all other checks would return successfully, as the
exact same pointer was being compared to itself.

So, I've fixed the comparison by adding some forgotten parameters
(perspective) but most importantly I fixed the map API usage in the
test case.

7 years agoevas filters: Fix a rare crash in text render (SW)
Jean-Philippe Andre [Mon, 10 Apr 2017 07:56:14 +0000 (16:56 +0900)]
evas filters: Fix a rare crash in text render (SW)

There are reports of crashes when y < 0. This case seems
abnormal in case of filters, as I don't know how to reproduce it,
but it's happened.

Thanks Youngbok Shin for the report.

@fix

7 years agoedje: Add workaround for misuses of clip_set
Jean-Philippe Andre [Mon, 10 Apr 2017 07:01:28 +0000 (16:01 +0900)]
edje: Add workaround for misuses of clip_set

An unfortunately very common misuse of clip is as follows:

- Layout A is created (edje object / elm_layout)
- Object B is swallowed inside A
- Clipper C is set to clip B

This is a invalid usage, as layout A takes control over the clip
property of B (just like it does for geometry, visibility, color...).

Since 75ec3a7338c9c2406d4 edje_recalc resets the clip at every calc
loop, as it can change between states.

In the past, edje_recalc did not reset the clip so anyone could
(wrongly) swallow an object and then change its clip from C to modify
its color, mask it, blend it, etc... Even though this was not proper
use of the API, this is not very clearly documented, and since it
worked, it has been (ab)used a lot already.

The result now is that a clipper set from C will become visible
as an opaque white rectangle covering the entire UI. Booh.

This patch is a workaround that should have no impact on well
written applications. As a bonus this avoids an extra call to
clip_set() from edje.

@fix

7 years agoevas: give width offset when Evas tries to find ellipsis position
Youngbok Shin [Mon, 10 Apr 2017 03:15:19 +0000 (12:15 +0900)]
evas: give width offset when Evas tries to find ellipsis position

Summary:
If the last item before ellipsis item has bigger width than its advance,
evas_common_font_query_last_up_to_pos() function can find wrong ellipsis position.
When Evas finds a position for non last item, Evas must care about additionally
available space for glyph's width of the given x position.

ex) the last item's glyph before ellipsis item has a tail to draw above the ellipsis item.

@fix

Test Plan:
Test case will added as comment.
(Becasue of font license problem.)

Reviewers: herdsman, raster, jpeg, woohyun

Subscribers: cedric, Blackmole

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

7 years agoelm config - reload at runtime - fix env var overrides being lost
Carsten Haitzler (Rasterman) [Mon, 10 Apr 2017 02:05:56 +0000 (11:05 +0900)]
elm config - reload at runtime - fix env var overrides being lost

if you set config via environment variables then sa config
update/reload may end up overriding these again whenever it is updated
and thus may result in scaling or other things suddely changing

@fix

7 years agoevas - async preload cancel fix - don't double delete/free
Carsten Haitzler (Rasterman) [Mon, 10 Apr 2017 01:40:52 +0000 (10:40 +0900)]
evas - async preload cancel fix - don't double delete/free

just match the ref with the drop anddon't also manually free the image
as this leads to accessing of freed memory which is not a good thing.

this should fix T5374

@fix

7 years agoefl_net_socket_ssl (dialer): emit "resolved"
Gustavo Sverzut Barbieri [Sat, 8 Apr 2017 22:19:42 +0000 (19:19 -0300)]
efl_net_socket_ssl (dialer): emit "resolved"

for dialers we should also monitor "resolved" from inner TCP socket
and emit that ourselves, letting people know that we have an IP
address.

this is important for ecore_con_legacy.c, since the svr->ip is only
decoded and stored once when this signal is emitted.

7 years agoecore_con_legacy: fix legacy compatibility for ecore_con_server_send()
Gustavo Sverzut Barbieri [Sat, 8 Apr 2017 22:03:53 +0000 (19:03 -0300)]
ecore_con_legacy: fix legacy compatibility for ecore_con_server_send()

Since efl_net_ssl_context is immutable for a dialer and we create the
dialer with the context, the SSL cases uses a trick to postpone dialer
creation using a job, then it allows one main loop iteration for the
user to call various ecore_con_server_ssl_*() methods.

However this breaks immediate ecore_con_server_send() after
ecore_con_server_connect() as used to be allowed and used by
azy/erssd.

Most people wouldn't notice that, since the most common case is to
either use ecore_con_url (which uses cURL and a complete different
code path) OR they would wait for ECORE_CON_EVENT_SERVER_ADD prior to
sending data.

Nonetheless it was a compatibility issue and must be fixed.

Fixes T5339

7 years agoelm_code: trigger user change event on applying an undo/redo
Andy Williams [Fri, 7 Apr 2017 22:36:29 +0000 (23:36 +0100)]
elm_code: trigger user change event on applying an undo/redo

@fix

7 years agoecore-wl2: do not reconnect on protocol error for non-server processes
Mike Blumenkrantz [Fri, 7 Apr 2017 20:06:41 +0000 (16:06 -0400)]
ecore-wl2: do not reconnect on protocol error for non-server processes

this is not a recoverable state

@fix

7 years agoelm_win: set wl window type during finalize
Mike Blumenkrantz [Fri, 7 Apr 2017 20:06:41 +0000 (16:06 -0400)]
elm_win: set wl window type during finalize

@fix

7 years agoecore-wl2: create window surfaces immediately when windows are created
Mike Blumenkrantz [Fri, 7 Apr 2017 20:06:41 +0000 (16:06 -0400)]
ecore-wl2: create window surfaces immediately when windows are created

7 years agoecore-wl2: stop setting all windows as toplevels on creation
Mike Blumenkrantz [Fri, 7 Apr 2017 20:06:41 +0000 (16:06 -0400)]
ecore-wl2: stop setting all windows as toplevels on creation

this is not a valid assumption since toplevel is a shell-specific concept and
it's possible to run a shell which does not implement such windows

@fix

7 years agoecore-wl2: CRI when attempting to create a window from a server display object
Mike Blumenkrantz [Fri, 7 Apr 2017 20:06:41 +0000 (16:06 -0400)]
ecore-wl2: CRI when attempting to create a window from a server display object

7 years agoelementary: fix test breakage.
Cedric BAIL [Fri, 7 Apr 2017 18:38:10 +0000 (11:38 -0700)]
elementary: fix test breakage.

It is perfectly valid to call this API with no pointer provided.

7 years agoelm_code: Expose whether or not undo and redo can operate
Andy Williams [Fri, 7 Apr 2017 17:14:31 +0000 (18:14 +0100)]
elm_code: Expose whether or not undo and redo can operate

A quick peek at the stack will allow us to inform users
of the widget if operations will apply.

7 years agoecore_drm2: Use correct drm context version
Derek Foreman [Fri, 7 Apr 2017 14:09:56 +0000 (09:09 -0500)]
ecore_drm2: Use correct drm context version

We should be setting this to the context version we understand, not
the highest version supported by the library.

From Daniel Stone's recent intel-gpu-tools commit fixing the same bug:
With libdrm 2.4.78, setting a higher context version than 2 will attempt
to call the page_flip_handler2 vfunc if it was non-NULL, which being a
random chunk of stack memory, it might well have been.

7 years agoelementary: win - override atspi component get interface
Shinwoo Kim [Fri, 7 Apr 2017 04:17:58 +0000 (13:17 +0900)]
elementary: win - override atspi component get interface

The efl_ui_win overrides _elm_interface_atspi_component_extents_get to give
correct value if screen_coord is EINA_FALSE which means relative position.
The efl_ui_win has given its object geometry value + ecore evas geometry value.
The object geometry value was equal to the ecore evas geometry value, so the
relative position was not correct(twice of ecore evas geometry value).

7 years ago evas_clip: fix bug _clipper_del_cb function unset current clipper
Jiyoun Park [Fri, 7 Apr 2017 02:35:55 +0000 (11:35 +0900)]
   evas_clip: fix bug _clipper_del_cb function unset current clipper

   old_clipper = evas_object_clip_get(objA);
   evas_object_clip_unset(obj_A);
   evas_object_clip_set(obj_A, new_clipper);
   evas_object_del(old_clipper);

   when old_clipper deleted, _clipper_del_cb unset the current new_clipper of obj_A.

7 years agoelm_code: Don't refresh if fonts did not change
Andy Williams [Thu, 6 Apr 2017 22:29:38 +0000 (23:29 +0100)]
elm_code: Don't refresh if fonts did not change

7 years agoedje: remove invalid macro-check regarding coreaudio
Jiwon Kim [Thu, 6 Apr 2017 21:41:44 +0000 (14:41 -0700)]
edje: remove invalid macro-check regarding coreaudio

Summary:
By 403b0ecfa66530e9cd598bd013aeda76df7ee98c the coreaudio
support was dropped.
So 'HAVE_COREAUDIO' define is invalid.

Reviewers: jpeg

Subscribers: cedric, woohyun

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoelm.hoversel: adjust alignment correctly in mirror mode
Jeeyong Um [Thu, 6 Apr 2017 21:28:43 +0000 (14:28 -0700)]
elm.hoversel: adjust alignment correctly in mirror mode

Test Plan: elementary_test "hoversel"

Reviewers: cedric, jpeg

Reviewed By: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoedje_program: add NULL check for ed->callbacks in edje_program
JEONGHYUN YUN [Thu, 6 Apr 2017 21:26:35 +0000 (14:26 -0700)]
edje_program: add NULL check for ed->callbacks in edje_program

Summary: Pointer ed->callbacks may have NULL value in callback add functions.

This reduce the chance of continue to kind of work for longer in case of memory
constrain. Maybe using Eina macro would be better.

Reviewers: jpeg, jypark

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoedje: fix name check matching correctly
JEONGHYUN YUN [Thu, 6 Apr 2017 21:24:45 +0000 (14:24 -0700)]
edje: fix name check matching correctly

Reviewers: jpeg, jypark

This could lead to a crash as we were checking against NULL on
the wrong pointer.

@fix

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoedje_edit: add NULL check for eina_mempool_malloc in _edje_edit_state_alloc()
JEONGHYUN YUN [Thu, 6 Apr 2017 21:23:19 +0000 (14:23 -0700)]
edje_edit: add NULL check for eina_mempool_malloc in _edje_edit_state_alloc()

Summary: Pointer eina_mempool_malloc return value may have NULL value when
module aren't properly installed. This reduce the chance of a crash and increase
the likelyness of properly handling the failure.

Reviewers: jpeg, jypark

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoevas: fix typo 'initializer to' to 'initialize to'
Bryce Harrington [Thu, 6 Apr 2017 21:22:27 +0000 (14:22 -0700)]
evas: fix typo 'initializer to' to 'initialize to'

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoecore_evas: Fix several typos in doxygen
Bryce Harrington [Thu, 6 Apr 2017 21:18:46 +0000 (14:18 -0700)]
ecore_evas: Fix several typos in doxygen

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoelm_code: fix copy/paste bug that slipped through
Andy Williams [Thu, 6 Apr 2017 22:14:03 +0000 (23:14 +0100)]
elm_code: fix copy/paste bug that slipped through

7 years agoelm_code: Fix coverity issue divide by zero
Bryce Harrington [Thu, 6 Apr 2017 21:28:27 +0000 (22:28 +0100)]
elm_code: Fix coverity issue divide by zero

Summary: @fix 1371128: DIVIDE_BY_ZERO

Reviewers: ajwillia.ms

Reviewed By: ajwillia.ms

Subscribers: ajwillia.ms, cedric, jpeg

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

7 years agoelm_code: Fix bug when deleting slection beyond start of document.
Andy Williams [Thu, 6 Apr 2017 21:16:27 +0000 (22:16 +0100)]
elm_code: Fix bug when deleting slection beyond start of document.

@fix

7 years agoevas: update webp output test.
Cedric BAIL [Thu, 6 Apr 2017 20:45:55 +0000 (13:45 -0700)]
evas: update webp output test.

webp has slightly change since we registered this test and even if the
output is visually still close, as we do a perfect pixels comparison,
we are impacted by the slightest change. It would be nice to introduce
a function that does a more fuzzy comparison.

7 years agoevas: always send a proper event to simplify callee logic.
Cedric BAIL [Thu, 6 Apr 2017 18:46:06 +0000 (11:46 -0700)]
evas: always send a proper event to simplify callee logic.

@fix

7 years agoecore_evas: fix 'be delete' to 'be deleted'
Bryce Harrington [Thu, 6 Apr 2017 18:14:09 +0000 (14:14 -0400)]
ecore_evas: fix 'be delete' to 'be deleted'

Subscribers: cedric, jpeg

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

7 years agoaccess: Fix warning hiding a potential crash
Jean-Philippe Andre [Thu, 6 Apr 2017 09:14:40 +0000 (18:14 +0900)]
access: Fix warning hiding a potential crash

See 5da4c96087260ff50e0e76fe69e5de5121a9accc

7 years agoColorclass: Add fixed attribute to remove error message
Jeeyong Um [Thu, 6 Apr 2017 07:24:59 +0000 (16:24 +0900)]
Colorclass: Add fixed attribute to remove error message

Test Plan: elementary_test -to "color classes"

Reviewers: cedric, jpeg

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

7 years agoemile_image: add error handling code for ifd_offset value
Jaeun Choi [Thu, 6 Apr 2017 06:34:53 +0000 (15:34 +0900)]
emile_image: add error handling code for ifd_offset value

Signed-off-by: JEONGHYUN YUN <jh0506.yun@samsung.com>
7 years agofix evas canvas callbacks to use correct legacy callback function
Carsten Haitzler (Rasterman) [Thu, 6 Apr 2017 05:43:04 +0000 (14:43 +0900)]
fix evas canvas callbacks to use correct legacy callback function

7 years agoelm - cache dump - disable this to fix jp's issues of proxies etc.
Carsten Haitzler (Rasterman) [Thu, 6 Apr 2017 05:31:19 +0000 (14:31 +0900)]
elm - cache dump - disable this to fix jp's issues of proxies etc.

this will stop proxies, maps, and other filter object content from
being dropped whenever elm calls elm_cache_all_flush() to flush all
caches.

@fix

7 years agoelm_code: Fix crashes with backspace on OpenBSD
Andy Williams [Wed, 5 Apr 2017 22:59:23 +0000 (23:59 +0100)]
elm_code: Fix crashes with backspace on OpenBSD

@fix

7 years agoelm_code: better safety around widget edge cases
Andy Williams [Wed, 5 Apr 2017 21:40:43 +0000 (22:40 +0100)]
elm_code: better safety around widget edge cases

Fixes crashes when dragging selection out of widget.
@fix

7 years agoelementary: access calls "access,activated" smart callback
Shinwoo Kim [Wed, 5 Apr 2017 10:58:46 +0000 (19:58 +0900)]
elementary: access calls "access,activated" smart callback

The "access,activated" smart callback is called when "Activate the selected item"
gesture occurs.
Application could do the activation action using elm_access_action_cb_set.
But we recommend not to use elm_access_action_cb_set for this purpose on atspi
environment. And this would be usual widget behavior as elm_button does.

7 years agoecore_evas: Fix some pluralization grammatical errors
Bryce Harrington [Tue, 4 Apr 2017 13:24:55 +0000 (09:24 -0400)]
ecore_evas: Fix some pluralization grammatical errors

Subscribers: cedric, jpeg

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

7 years agoEvas_Common: Fix assorted typos
Bryce Harrington [Tue, 4 Apr 2017 13:23:55 +0000 (09:23 -0400)]
Evas_Common: Fix assorted typos

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, jpeg

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

7 years agoEvas GL: Correct a couple typos in doxygen comments
Bryce Harrington [Tue, 4 Apr 2017 13:21:34 +0000 (09:21 -0400)]
Evas GL: Correct a couple typos in doxygen comments

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: devilhorns, cedric, jpeg

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

7 years agoEvas_Loader: Fix pluralization in grammar
Bryce Harrington [Tue, 4 Apr 2017 13:20:48 +0000 (09:20 -0400)]
Evas_Loader: Fix pluralization in grammar

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, jpeg

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

7 years agoevas: Correct typos in Evas_Eo.h docs
Bryce Harrington [Tue, 4 Apr 2017 13:20:24 +0000 (09:20 -0400)]
evas: Correct typos in Evas_Eo.h docs

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, jpeg

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

7 years agoevas textblock: fix top/bottom valign tag reversed issue
Youngbok Shin [Tue, 4 Apr 2017 09:36:41 +0000 (18:36 +0900)]
evas textblock: fix top/bottom valign tag reversed issue

Summary:
valign tag is for handling vertical align according to line's height and
text's height. But, it worked in a line which has only one font and
one font size, too. And the result was abnormal depending its font.
The line's height is [ascent + descent]. But, Textblock uses max ascent and
items's height(could be used max ascent + max descent according to its position)
when Textblock calculates item's yoff.
So, If Textblock calculate yoff based on line's height,
it should use only ascent and descent instead of max ascent and max descent.
@fix

Test Plan: Will attached in comment section.

Reviewers: raster, herdsman, jpeg, woohyun

Reviewed By: raster

Subscribers: cedric

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

7 years agoEvil: fix fcntl() with sockets
Vincent Torri [Mon, 3 Apr 2017 04:16:56 +0000 (06:16 +0200)]
Evil: fix fcntl() with sockets

On Windows, fd and sockets are different. Sockets are actually HANDLES, hence
_get_osfhandle() should not be used with sockets, and GetHandleInformation()
 and SetHandleInformation() can be used directly with sockets.

This is fixed by adding a function to test if the 'fd passed to fcntl() is a
socket or not.

7 years agocombobox: fix 0px height on first click
Marcel Hollerbach [Fri, 31 Mar 2017 19:23:48 +0000 (21:23 +0200)]
combobox: fix 0px height on first click

the height of a item is 0 because the item is not realized, so if no
item is realized we are waiting until one is realized, until then we
just take 1px as a height, so at minimum one item needs to be realized.

If there is a realized item (or we are getting the event that there is
one) we are just calling _table_resize again, and are getting the size
for real.

7 years agocombobox: fix layer setting for the hover
Marcel Hollerbach [Fri, 31 Mar 2017 17:56:36 +0000 (19:56 +0200)]
combobox: fix layer setting for the hover

in cases where a ui is using layers other objects could overlap the
hover object. Which is wrong, the genlist should stay above the rest of
the content, in any case.

7 years agocombobox: Fix combobox for the case the parent is not the window
Marcel Hollerbach [Fri, 31 Mar 2017 17:50:46 +0000 (19:50 +0200)]
combobox: Fix combobox for the case the parent is not the window

if the parent is not a window the elm hover is created for the parent of
the combobox, which is a problem because the hover will not expand to
its full size of the window, and will stay in the size of the parent.

Adding the top widget instead of the parent widget fixes that.

7 years agoelm_code: fix backspace newline in BSD
Andy Williams [Fri, 31 Mar 2017 20:50:45 +0000 (21:50 +0100)]
elm_code: fix backspace newline in BSD

7 years agoecore-evas: add flag for buffer canvas to prevent deadlock in pixels_get
Mike Blumenkrantz [Fri, 31 Mar 2017 18:57:34 +0000 (14:57 -0400)]
ecore-evas: add flag for buffer canvas to prevent deadlock in pixels_get

when calling pixels_get during a render callback, another render would trigger
which would cause a deadlock from evas spinlock usage

@fix

7 years agodoc: add explicit note for timeline animator about first frame position
Mike Blumenkrantz [Fri, 31 Mar 2017 18:57:34 +0000 (14:57 -0400)]
doc: add explicit note for timeline animator about first frame position

7 years agoeolian: fix incorrect function prototypes in legacy headers
Daniel Kolesa [Fri, 31 Mar 2017 15:49:38 +0000 (17:49 +0200)]
eolian: fix incorrect function prototypes in legacy headers

C functions that take no arguments need to have void in the arg
list. Otherwise, it would mean taking any number of arguments.

7 years agorelease: Update NEWS and bump version for 1.19.0-beta4 release
Stefan Schmidt [Fri, 31 Mar 2017 13:26:47 +0000 (15:26 +0200)]
release: Update NEWS and bump version for 1.19.0-beta4 release

7 years agoefl: terrible kludge so avoid termination crash on osx
Jean Guyomarc'h [Thu, 23 Mar 2017 21:58:08 +0000 (22:58 +0100)]
efl: terrible kludge so avoid termination crash on osx

Currently, elementary programs crash on termination on macOS (seems
Sierra-specific). This is very nasty, looks like deep memory corruption...
Without valgrind (or like) support on Sierra, it is difficult to
pinpoint the origin of the problem.

Due to the imminient release, and after discussion with @stefan, this
kludge will allow the release to happen.

This commit MUST be reverted just after the release, so we don't
blindfold ourselves!

Ref T5245

7 years agoelm_flipselector: delete ecore job in group del function
Jaeun Choi [Fri, 31 Mar 2017 05:16:06 +0000 (14:16 +0900)]
elm_flipselector: delete ecore job in group del function

ecore_job_del was missing in a4d2c51d1404c1d8563dd7ac37e64ee105aa6226

7 years agoelm_flipselector: fixed flipselector item deletion process
Jaeun Choi [Thu, 30 Mar 2017 11:13:39 +0000 (20:13 +0900)]
elm_flipselector: fixed flipselector item deletion process

flipselector item destructor had a severe drawback and this patch fixes it.
when deleting multiple items at once, the view needs to be updated only once.
however, the destructor updated the view on deletion of
every single item and it caused a severe performance issue.
the worst case happened when deleting a flipselector object -
with 10000 items, it took 10 seconds to finish deletion.

this patch has two points:
1. if a flipselector object is on deletion, item destructor doesn't update the view
2. otherwise, view update is handled in one job for multiple item deletion

7 years agoFixes latest crash w/rage
Al Poole [Fri, 31 Mar 2017 02:13:03 +0000 (11:13 +0900)]
Fixes latest crash w/rage

Summary:
eina_file_virtualize is causing issues.

memfile_set is better but see attached bt.

What to do???

Reviewers: raster, cedric

Subscribers: jpeg

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

7 years agoelm_code: Fix newline crash on BSD
Andy Williams [Thu, 30 Mar 2017 22:20:22 +0000 (23:20 +0100)]
elm_code: Fix newline crash on BSD

@fix

7 years agoevil_string: fix strndup() for non-NULL terminated strings.
Gustavo Sverzut Barbieri [Wed, 29 Mar 2017 13:11:01 +0000 (10:11 -0300)]
evil_string: fix strndup() for non-NULL terminated strings.

If the given string is not null-terminated, then strlen() will go out
of boundaries, we must limit the lookup to given 'n' parameter.

To do so use strnlen(), that is a strlen() bounded by a maximum size.

7 years agoecore_con: remove warnings if FD_CLOEXEC is undefined.
Gustavo Sverzut Barbieri [Tue, 28 Mar 2017 18:25:39 +0000 (15:25 -0300)]
ecore_con: remove warnings if FD_CLOEXEC is undefined.

currently it's being defined in evil_fcntl.h, but the actual
implementation of fcntl() in evil_fcntl.c is causing problems with
sockets. So one possibility is to remove the ifdef, another is to
change the implementation.

7 years agoeina: fix compilation warning on _WIN32 due missing strndup()
Gustavo Sverzut Barbieri [Tue, 28 Mar 2017 18:22:14 +0000 (15:22 -0300)]
eina: fix compilation warning on _WIN32 due missing strndup()

Eina.h will include Evil.h, but those using direct include of internal
headers must include it as well.

7 years agoothers: support efl_net_dialer_windows.
Gustavo Sverzut Barbieri [Mon, 27 Mar 2017 19:11:29 +0000 (16:11 -0300)]
others: support efl_net_dialer_windows.

these are not working on windows yet due other factors, anyway add the
proper ifdefs

7 years agoecore_ipc: use new efl_net_*_windows classes.
Gustavo Sverzut Barbieri [Mon, 27 Mar 2017 18:54:38 +0000 (15:54 -0300)]
ecore_ipc: use new efl_net_*_windows classes.

7 years agoecore_con_local_path_new(): implemented for Windows
Gustavo Sverzut Barbieri [Mon, 27 Mar 2017 18:42:11 +0000 (15:42 -0300)]
ecore_con_local_path_new(): implemented for Windows

7 years agoimplement efl_net_{socket,dialer,server}_windows
Gustavo Sverzut Barbieri [Wed, 22 Mar 2017 07:29:16 +0000 (04:29 -0300)]
implement efl_net_{socket,dialer,server}_windows

This is the local socket for windows, analogous to AF_UNIX.

`Efl_Net_Socket_Windows` is the base class doing `ReadFile()` and
`WriteFile()` using overlapped I/O, as well as the close procedure
(`FlushFileBuffers()`, `DisconnectNamedPipe()` and
`CloseHandle()`). These are done on top of an existing HANDLE that is
set by `Efl_Net_Dialer_Windows` (from `CreateFile()`) or
`Efl_Net_Server_Windows` (from `CreateNamedPipe()`).

The overlapped I/O will return immediately, either with operation
completed or `ERROR_IO_PENDING`, which means the kernel will execute
that asynchronously and will later `SetEvent(overlapped.hEvent)` which
is an event we wait on our main loop. That `overlapped` handle must
exist during the call lifetime, thus cannot be bound to `pd`, as we
may call `CancelIo()` but there is no guarantee the memory won't be
touched, in that case we keep the overlapped around, but without an
associated object.

Windows provides no notification "can read without blocking" or
non-blocking calls that returns partial data. The way to go is to use
these overlapped I/O, with an initial `ReadFile()` to an internal
buffer, once that operation finishes, we callback the user to says
there is something to read (`efl_io_reader_can_read_set()`) and wait
until `efl_io_reader_read()` is called to consume the available data,
then `ReadFile()` is called again to read more data to the same
internal buffer.

Likewise, there is no "can write without blocking" or non-blocking
calls that sends only partial data. The way to go is to get user bytes
in `efl_io_writer_write()` and copy them in an internal buffer, then
call `WriteFile()` on that and inform the user nothing else can be
written until that operation completes
(`efl_io_writer_can_write_set()`).

This is cumbersome since we say we "sent" stuff when we actually
didn't, it's still in our internal buffer (`pd->send.bytes`), but
nonetheless the kernel and the other peer may be adding even more
buffers, in this case we need to do a best effort to get it
delivery. A particular case is troublesome: `write() -> close()`, this
may result in `WriteFile()` pending, in this case we wait using
`GetOverlappedResult()`, *this is nasty and may block*, but it's the
only way I see to cope with such common use case.

Other operations, like ongoing `ReadFile()` or `ConnectNamedPipe()`
will be canceled using `CancelIo()`.

Q: Why no I/O Completion Port (IOCP) was used? Why no
   CreateThreadpoolIo()? These perform much better!

A: These will call back from secondary threads, but in EFL we must
   report back to the user in order to process incoming data or get
   more data to send. That is, we serialize everything to the main
   thread, making it impossible to use the benefits of IOCP and
   similar such as CreateThreadpoolIo(). Since we'd need to wakeup the
   main thread anyways, using `OVERLAPPED.hEvent` with
   `ecore_main_win32_handler_add()` does the job as we expect.

Thanks to Vincent Torri (vtorri) for his help getting this code done
with an example on how to do the NamedPipe handling on Windows.