platform/upstream/efl.git
6 years agoecore-con/legacy: kill server with DEL event if a dialer error occurs
Mike Blumenkrantz [Tue, 3 Jul 2018 16:42:00 +0000 (12:42 -0400)]
ecore-con/legacy: kill server with DEL event if a dialer error occurs

Summary:
in the course of the efl-net rewrite, the previous relied-upon behavior
sequence of error -> disconnect -> del was broken, and error events no
longer triggered disconnects or server deletion.

the failure was caused by a check for the 'connecting' flag, preventing
DEL events from being triggered

further, the ordering of the events was flipped from ERROR -> DEL to
DEL -> ERROR; this is also fixed now

this caused any failed connection to leak the entire server connection
since existing handlers for the del event were never triggered and the
server was never destroyed

@fix
fix T6330

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T6330

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

6 years agoelm_test: fix invalid read in dnd image drop
Mike Blumenkrantz [Tue, 3 Jul 2018 16:39:36 +0000 (12:39 -0400)]
elm_test: fix invalid read in dnd image drop

Summary:
this selection is data with a specified length, not a terminated string

@fix
Depends on D6484

Reviewers: devilhorns

Subscribers: netstar, cedric, #committers

Tags: #efl

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

6 years agoefl/selection_manager: fix some invalid memory reads
Mike Blumenkrantz [Tue, 3 Jul 2018 16:39:33 +0000 (12:39 -0400)]
efl/selection_manager: fix some invalid memory reads

Summary:
these selections are data with specified lengths, not strings
Depends on D6483

Reviewers: devilhorns, bu5hm4n

Subscribers: bu5hm4n, netstar, cedric, #committers

Tags: #efl

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

6 years agoefl/selection_manager: make selection manager a child of the app
Mike Blumenkrantz [Tue, 3 Jul 2018 16:39:26 +0000 (12:39 -0400)]
efl/selection_manager: make selection manager a child of the app

Summary:
a selection manager is application-wide, not per-window. creating separate
managers for each window duplicates all callbacks for the window's display
server, guaranteeing broken behavior at any time when more than one window
exists

fix T6937

Reviewers: bu5hm4n, devilhorns

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T6937

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

6 years agoeina/debug: remove global lock for session list access
Mike Blumenkrantz [Mon, 2 Jul 2018 18:28:35 +0000 (14:28 -0400)]
eina/debug: remove global lock for session list access

this list is now only accessed from the main thread so there's no reason
to have a lock for it

6 years agoeina/debug: rework session thread destruction to avoid deadlock on shutdown
Mike Blumenkrantz [Mon, 2 Jul 2018 18:14:32 +0000 (14:14 -0400)]
eina/debug: rework session thread destruction to avoid deadlock on shutdown

when debugging was active, this would frequently result in the monitor thread
blocking in a read() call for a fd which had already been closed by the main
thread. the main thread would be waiting for the monitor thread to fail its read()
and destroy itself, but the read() would never end without an interrupt

this reworks the monitor thread destruction to stop relying on the thread to
remove its session from the session list and instead only access the list from
the main thread, allowing sessions to always be immediately destroyed

fix T7103

6 years agoefl_ui_focus_layer: do not call on NULL objects
Marcel Hollerbach [Sat, 30 Jun 2018 10:37:58 +0000 (12:37 +0200)]
efl_ui_focus_layer: do not call on NULL objects

This fixes the following backtrace

#5  0x00007ffff4ee87d0 in efl_ui_focus_manager_root_get (obj=0x0) at lib/elementary/efl_ui_focus_manager.eo.c:17
#6  0x00007ffff4ef50cb in _efl_ui_focus_layer_enable_set (obj=0x40000004adfe, pd=0x12fde40, v=0 '\000') at lib/elementary/efl_ui_focus_layer.c:127
#7  0x00007ffff4ef52dd in efl_ui_focus_layer_enable_set (obj=0x40000004adfe, v=1 '\001') at lib/elementary/efl_ui_focus_layer.eo.c:4
#8  0x00007ffff4ef4df0 in _efl_ui_focus_layer_efl_gfx_entity_visible_set (obj=0x40000004adfe, pd=0x12fde40, v=1 '\001') at lib/elementary/efl_ui_focus_layer.c:35
#9  0x00007ffff0f366a3 in efl_gfx_entity_visible_set (obj=0x40000004adfe, v=1 '\001') at ../src/lib/efl/interfaces/efl_gfx_entity.eo.c:15
#10 0x00007ffff5d832bb in evas_object_show (eo_obj=0x40000004adfe) at lib/evas/canvas/evas_object_main.c:1917
#11 0x00007fffcc365c74 in _bar_icon_preview_show (data=0xfaa7e0) at ../src/modules/luncher/bar.c:906
#12 0x00007ffff6d4305a in _ecore_call_task_cb (func=0x7fffcc36549c <_bar_icon_preview_show>, data=0xfaa7e0) at lib/ecore/ecore_private.h:442
#13 0x00007ffff6d434d2 in _ecore_timer_legacy_tick (data=0x12ca950, event=0x7ffffffc57c0) at lib/ecore/ecore_timer.c:160
#14 0x00007ffff0d06e90 in _event_callback_call (obj_id=0x4000001f25b2, pd=0x923820, desc=0x7ffff6f673e0 <_EFL_LOOP_TIMER_EVENT_TICK>, event_info=0x0, legacy_compare=0 '\000') at lib/eo/eo_base_class.c:1671
#15 0x00007ffff0d07162 in _efl_object_event_callback_call (obj_id=0x4000001f25b2, pd=0x923820, desc=0x7ffff6f673e0 <_EFL_LOOP_TIMER_EVENT_TICK>, event_info=0x0) at lib/eo/eo_base_class.c:1755
#16 0x00007ffff0d07208 in efl_event_callback_call (obj=0x4000001f25b2, desc=0x7ffff6f673e0 <_EFL_LOOP_TIMER_EVENT_TICK>, event_info=0x0) at lib/eo/eo_base_class.c:1758
#17 0x00007ffff6d4478e in _efl_loop_timer_expired_call (obj=0x4000000003dc, pd=0x890bf0, when=333436.894054887) at lib/ecore/ecore_timer.c:634
#18 0x00007ffff6d445bd in _efl_loop_timer_expired_timers_call (obj=0x4000000003dc, pd=0x890bf0, when=333436.894054887) at lib/ecore/ecore_timer.c:587
#19 0x00007ffff6d0b423 in _ecore_main_loop_iterate_internal (obj=0x4000000003dc, pd=0x890bf0, once_only=0) at lib/ecore/ecore_main.c:2317
#20 0x00007ffff6d08e66 in _ecore_main_loop_begin (obj=0x4000000003dc, pd=0x890bf0) at lib/ecore/ecore_main.c:1175
#21 0x00007ffff6d11757 in _efl_loop_begin (obj=0x4000000003dc, pd=0x890bf0) at lib/ecore/efl_loop.c:83
#22 0x00007ffff6d13e6e in efl_loop_begin (obj=0x4000000003dc) at lib/ecore/efl_loop.eo.c:28
#23 0x00007ffff6d08fe0 in ecore_main_loop_begin () at lib/ecore/ecore_main.c:1248
#24 0x000000000054817c in main (argc=2, argv=0x7fffffffdc78) at ../src/bin/e_main.c:1090

fix T7034.

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

6 years agoelm_toolbar: handle the cleanup in the invalidate call
Marcel Hollerbach [Mon, 2 Jul 2018 09:16:41 +0000 (11:16 +0200)]
elm_toolbar: handle the cleanup in the invalidate call

there is actaully no need to add the event, we can cleanup the pointer
in the invalidate call. Further more, the event was executed before the
method, thus checks against more_item failed because that was already
NULL. The result have been error messages, this fixes the error.

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

6 years agoelm_toolbar: fix _item_visiblity
Marcel Hollerbach [Mon, 2 Jul 2018 08:58:52 +0000 (10:58 +0200)]
elm_toolbar: fix _item_visiblity

'more' should indicate when a more item is needed, this is needed if one
item is set to visibility false, thus checking this here is required.

 #FocusBug

fix T6806

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

6 years agoefl_ui_bg: set scale manually to hand by hand
Marcel Hollerbach [Mon, 2 Jul 2018 06:31:54 +0000 (08:31 +0200)]
efl_ui_bg: set scale manually to hand by hand

according to 09d3d5b85ad4a0b7441b5b1e508db0e595bef395 elm scale should
be ignored. However, setting no_scale breaks efl_ui_bg as no_scale
disables scale types, which are required to work.

fix T7080

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

6 years agoefl_ui_image: apply the whole sizing eval
Marcel Hollerbach [Mon, 2 Jul 2018 06:26:01 +0000 (08:26 +0200)]
efl_ui_image: apply the whole sizing eval

orientation no_scale etc. can have impact on the min max calculation.
Thus that should be called on every property set.

ref T7080

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

6 years agoefl_ui_focus_graph: improve results based on lvls
Marcel Hollerbach [Sat, 30 Jun 2018 09:46:29 +0000 (11:46 +0200)]
efl_ui_focus_graph: improve results based on lvls

This improves the results from the graph calculations.
Everything is documented in the comments.

The genlist of focus 6 is placed in a way that the button
at the top is not in reach, before we only had lvl1 and lvl2
(as described in the code comment), thus the button was only
reachable via right not via top. lvl3 makes it accessable
via top AND right.

fix T7098

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

6 years agoEvas Textblock: Don't convert <br/> to <ps/> after changing text
Youngbok Shin [Mon, 2 Jul 2018 13:17:33 +0000 (16:17 +0300)]
Evas Textblock: Don't convert <br/> to <ps/> after changing text

Summary:
It was only happened when legacy newline is enabled. By default,
legacy newline is enabled. As I know, legacy newline option has
to change textblock's internal behavior. But, it shouldn't change
the given original text. It fixes T3399.

Test Plan: A Test case is included in Evas test suite.

Reviewers: Jaehyun_Cho, z-wony, tasn, woohyun, herdsman, Blackmole, devilhorns

Subscribers: #committers, zmike, raster, cedric, jpeg

Tags: #efl

Maniphest Tasks: T3399

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

6 years agoelementary: fix buffer overflow in efl/calendar widget
Xavi Artigas [Mon, 2 Jul 2018 13:45:55 +0000 (13:45 +0000)]
elementary: fix buffer overflow in efl/calendar widget

I missed this one in the previous part name refactor, where the efl
namespace was added.
Differential Revision: https://phab.enlightenment.org/D6498

6 years agodata: install icon according to FDO specification.
Alastair Poole [Mon, 2 Jul 2018 12:37:51 +0000 (12:37 +0000)]
data: install icon according to FDO specification.

install to icons/hicolor/128x128/apps instead of icons/
Differential Revision: https://phab.enlightenment.org/D6497

6 years agoefl_ui_focus_parent_provider_gen: provide results for adapters
Marcel Hollerbach [Mon, 2 Jul 2018 11:14:17 +0000 (20:14 +0900)]
efl_ui_focus_parent_provider_gen: provide results for adapters

Summary:
a adapter is used whenno real widget is created during realization, when
a adapter is used, the parent cannot be fetched via
elm_widget_parent_get, there we need efl_parent_get

Reviewers: ManMower, devilhorns, stephenmhouston, zmike, Hermet

Reviewed By: Hermet

Subscribers: Hermet, cedric, #committers, zmike

Tags: #efl

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

6 years agoEvas textblock: clear ellipsis item at start of layout
Daniel Hirt [Fri, 29 Jun 2018 14:05:06 +0000 (17:05 +0300)]
Evas textblock: clear ellipsis item at start of layout

The ellipsis item was tracked so it can be inserted at the correct
position. It was not cleared properly, leading to a randomly failing
test suite.

Actually, it seems that there is no need to even store the ellipsis item
as the object data, so it was also moved to be in the layout context,
instead.

A special shoutout to ManMower for lending me his machine, as the test
suite didn't fail on mine.

Fixes T6986

@fix

6 years agoEvas font: simplify fallback parsing step
Daniel Hirt [Sat, 30 Jun 2018 07:15:00 +0000 (10:15 +0300)]
Evas font: simplify fallback parsing step

@fix

6 years agoEvas font: add comparison for fallbacks in evas_font_desc_cmp()
Youngbok Shin [Fri, 29 Jun 2018 20:09:08 +0000 (23:09 +0300)]
Evas font: add comparison for fallbacks in evas_font_desc_cmp()

Summary:
fallbacks string also has to be compared to load proper fdesc.
If a font which does not have fallback fonts is loaded,
fallback fonts can't be appended to the same font.
@fix

Reviewers: tasn, woohyun, herdsman, zmike, devilhorns

Reviewed By: herdsman

Subscribers: #committers, zmike, raster, Blackmole, z-wony, cedric, jpeg

Tags: #efl

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

6 years agoEvas font: fix inifinite loop problem for fallback fonts
Youngbok Shin [Thu, 28 Jun 2018 15:50:50 +0000 (18:50 +0300)]
Evas font: fix inifinite loop problem for fallback fonts

Summary:
When multiple fallback fonts was passed to evas_font_load(),
the while loop could run forever. I think it is never tested.
@fix

Test Plan:
Set the following textblock style and set it to a textblock object.
"font=Sans font_fallbacks=Ubuntu,Inconsolata,BlahBlah font_size=..."

Run and see application is in stuck.

Reviewers: tasn, woohyun, herdsman, devilhorns

Subscribers: #committers, zmike, raster, Blackmole, z-wony, cedric, jpeg

Tags: #efl

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

6 years agodefault theme: fix part names in elm/clock
Xavi Artigas [Fri, 29 Jun 2018 15:49:19 +0000 (11:49 -0400)]
default theme: fix part names in elm/clock

Summary: Ref T6965

Reviewers: devilhorns, zmike

Reviewed By: zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Maniphest Tasks: T6965

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

6 years agoefl_ui_focus_manager_calc: only perform operation if really required
Marcel Hollerbach [Fri, 29 Jun 2018 15:36:30 +0000 (11:36 -0400)]
efl_ui_focus_manager_calc: only perform operation if really required

Summary:
_manager_in_chain_set is not needed to be called if the focus property
is already correct. If a manager is moved out of the redirect property,
then the focus is dropped completly

Reviewers: ManMower, devilhorns, zmike, stephenmhouston

Reviewed By: zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

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

6 years agoeet: set parent struct member when adding a child to a parent node
Mike Blumenkrantz [Fri, 29 Jun 2018 15:36:12 +0000 (11:36 -0400)]
eet: set parent struct member when adding a child to a parent node

Summary:
this relation can be retrieved with eet_node_parent_get() but is never
set internally

fix T4600

@fix

Reviewers: artem.popov, devilhorns, Hermet, vtorri

Reviewed By: Hermet

Subscribers: Hermet, cedric, #committers

Tags: #efl

Maniphest Tasks: T4600

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

6 years agodefault theme: fix part names in efl/uiclock
Xavi Artigas [Fri, 29 Jun 2018 15:34:57 +0000 (11:34 -0400)]
default theme: fix part names in efl/uiclock

Summary:
Ref T6965
Depends on D6450

Reviewers: devilhorns, zmike

Reviewed By: zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Maniphest Tasks: T6965

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

6 years agodefault theme: remove unused elm/uiclock
Xavi Artigas [Fri, 29 Jun 2018 15:34:36 +0000 (11:34 -0400)]
default theme: remove unused elm/uiclock

Summary:
Legacy widget is elm/clock, and the new one is efl/uiclock.
There does not exist a legacy elm/uiclock.
This also reverts commit 20404d79d43876c546ba8e969f6cb9ea38122772
(elm_datetime, efl_ui_clock : Add check 'legacy widget' for layout signal emission)
Since there is no need to check for legacy versions of uiclock.

Ref T6965

Reviewers: devilhorns, zmike

Reviewed By: zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Maniphest Tasks: T6965

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

6 years agoelm_genlist: prepare items before realising them
Marcel Hollerbach [Fri, 29 Jun 2018 15:33:18 +0000 (11:33 -0400)]
elm_genlist: prepare items before realising them

Summary: Depends on D6339

Reviewers: ManMower, devilhorns, zmike, stephenmhouston

Reviewed By: zmike

Subscribers: Hermet, cedric, #committers, zmike

Tags: #efl

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

6 years agodefault theme: fix part names in efl/calendar
Xavi Artigas [Fri, 29 Jun 2018 15:32:54 +0000 (11:32 -0400)]
default theme: fix part names in efl/calendar

Summary:
Ref T6967
Depends on D6453

Reviewers: zmike, devilhorns

Reviewed By: zmike

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T6967

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

6 years agodefault theme: fix part names in elm/calendar
Xavi Artigas [Fri, 29 Jun 2018 15:32:03 +0000 (11:32 -0400)]
default theme: fix part names in elm/calendar

Summary: Ref T6967

Reviewers: zmike, devilhorns

Reviewed By: zmike

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T6967

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

6 years agoefl_ui_focus_layer: elm_widget_top_get considered harmfull
Marcel Hollerbach [Fri, 29 Jun 2018 15:31:56 +0000 (11:31 -0400)]
efl_ui_focus_layer: elm_widget_top_get considered harmfull

Summary:
You think elm_widget_top_get returns a window object ? Oh no! For the
case that the widget tree splits, and the widget_parent gets NULL of
some widget in the chain, elm_widget_top_get returns where the NULL
reference is placed.

For the case of elm_notify this is somehow intended, as the notify does
not have a parent when the parent is deleted.

ref T7090

Reviewers: netstar, zmike, devilhorns

Reviewed By: zmike

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T7090

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

6 years agoeo: improve thread check during class construction
Mike Blumenkrantz [Fri, 29 Jun 2018 15:31:10 +0000 (11:31 -0400)]
eo: improve thread check during class construction

Summary:
a common use case is for a class to be constructed during a thread+mainloop
sync (e.g., ecore_thread_main_loop_begin() ecore_thread_main_loop_end())
and then naturally destroyed in the main thread during shutdown

ref 023a9ca2ee32529849e770f057f58592956dee47

Reviewers: bu5hm4n, devilhorns

Reviewed By: bu5hm4n

Subscribers: cedric, #committers

Tags: #efl

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

6 years agodefault theme: fix part names in notification
Xavi Artigas [Fri, 29 Jun 2018 15:29:56 +0000 (11:29 -0400)]
default theme: fix part names in notification

Summary:
Ref T6966
Depends on D6462

Reviewers: zmike, devilhorns

Reviewed By: zmike

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T6966

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

6 years agodefault theme: fix part names in dialog
Xavi Artigas [Fri, 29 Jun 2018 15:29:40 +0000 (11:29 -0400)]
default theme: fix part names in dialog

Summary:
Ref T6966
Depends on D6461

Reviewers: zmike, devilhorns

Reviewed By: zmike

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T6966

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

6 years agodefault theme: fix part names in illume
Xavi Artigas [Fri, 29 Jun 2018 15:29:33 +0000 (11:29 -0400)]
default theme: fix part names in illume

Summary:
Ref T6966
Depends on D6460

Reviewers: zmike, devilhorns

Reviewed By: zmike

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T6966

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

6 years agodefault theme: fix part names in systray
Xavi Artigas [Fri, 29 Jun 2018 15:29:27 +0000 (11:29 -0400)]
default theme: fix part names in systray

Summary:
Ref T6966
Depends on D6459

Reviewers: zmike, devilhorns

Reviewed By: zmike

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T6966

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

6 years agodefault theme: fix group names in music_control
Xavi Artigas [Fri, 29 Jun 2018 15:29:17 +0000 (11:29 -0400)]
default theme: fix group names in music_control

Summary:
Ref T7072
Depends on D6458

Reviewers: zmike, devilhorns

Reviewed By: zmike

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T6966, T7072

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

6 years agodefault theme: fix group names in fileman
Xavi Artigas [Fri, 29 Jun 2018 15:29:08 +0000 (11:29 -0400)]
default theme: fix group names in fileman

Summary:
Ref T6966
Depends on D6457

Reviewers: zmike, devilhorns

Reviewed By: zmike

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T6966

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

6 years agodefault theme: fix part names in elm/ews
Xavi Artigas [Fri, 29 Jun 2018 15:29:02 +0000 (11:29 -0400)]
default theme: fix part names in elm/ews

Summary:
Fixes T7046
Depends on D6456

Reviewers: zmike, devilhorns

Reviewed By: zmike

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T6966, T7046

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

6 years agodefault theme: fix part names in elm/scrollable/panel
Xavi Artigas [Fri, 29 Jun 2018 15:28:57 +0000 (11:28 -0400)]
default theme: fix part names in elm/scrollable/panel

Summary:
Ref T6966

Depends on D6455

Reviewers: zmike, devilhorns

Reviewed By: zmike

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T6966

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

6 years agodefault theme: fix part names in elm/popup
Xavi Artigas [Fri, 29 Jun 2018 15:28:50 +0000 (11:28 -0400)]
default theme: fix part names in elm/popup

Summary: Ref T6966

Reviewers: zmike, devilhorns

Reviewed By: zmike

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T6966

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

6 years agoEvil: fix usage of Evil in a program compiled with vc++ this should be enough to...
Vincent Torri [Fri, 29 Jun 2018 13:56:15 +0000 (09:56 -0400)]
Evil: fix usage of Evil in a program compiled with vc++ this should be enough to fix T5206

Summary: Fix EFL errors when compiling a program with vc++

Test Plan: compilation

Reviewers: zmike, devilhorns, an.kroitor

Reviewed By: zmike

Subscribers: cedric, an.kroitor, zmike, #committers

Tags: #efl

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

6 years agoAdd information about the location of CC BY-SA 3.0 related icon files.
Myoungwoon Roy, Kim [Fri, 29 Jun 2018 09:57:19 +0000 (05:57 -0400)]
Add information about the location of CC BY-SA 3.0 related icon files.

Summary: COPYING.images does not have any information about the location of files.

Test Plan: N/A

Reviewers: cedric, jpeg, raster, Hermet, stefan_schmidt, Jaehyun_Cho, devilhorns

Reviewed By: devilhorns

Subscribers: #committers, zmike

Tags: #efl

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

6 years agoconfigure: check if realpath program exists
Jaehyun Cho [Fri, 29 Jun 2018 05:43:03 +0000 (14:43 +0900)]
configure: check if realpath program exists

Summary: If realpath program does not exist, then readlink program can be used.

Test Plan:
Execute configure and check the log "checking for realpath".
If realpath program does not exist, then "checking for readlink" log is also printed.

Reviewers: woohyun, lauromoura, devilhorns

Reviewed By: lauromoura

Subscribers: cedric, #committers, zmike

Tags: #efl

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

6 years agoElm label: fix "horizontal_fixed" usage with different styles
Daniel Hirt [Fri, 29 Jun 2018 01:25:57 +0000 (10:25 +0900)]
Elm label: fix "horizontal_fixed" usage with different styles

Summary:
This adds the "horizontal_fixed" description to each of the inheriting
parts in their respective inheriting groups "left" and "right".

An issue was observed when an emitted signal caused the part's
description to change to the one inherited from the "default" group.

Fixes T5382

@fix

Reviewers: #committers, devilhorns, Hermet

Reviewed By: #committers, Hermet

Subscribers: cedric, zmike

Tags: #efl

Maniphest Tasks: T5382

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

6 years agotests/eo: add explicit ref check when setting an invalid parent
Mike Blumenkrantz [Fri, 29 Jun 2018 01:21:01 +0000 (10:21 +0900)]
tests/eo: add explicit ref check when setting an invalid parent

Summary: ref f4a55e9266520773de96bfc55b603443cd61696d

Reviewers: bu5hm4n, devilhorns, Hermet

Reviewed By: Hermet

Subscribers: cedric, #committers

Tags: #efl

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

6 years agoevas map: check render condition more elaborately.
Hermet Park [Fri, 29 Jun 2018 00:58:41 +0000 (09:58 +0900)]
evas map: check render condition more elaborately.

Summary:
Ok, this was started from a bug that canvas getting not be updated.
If map is just disabled, at least one frame in the map region should be redrawn
So I added a condition 'map changed' in the render even though map is off
status. Now, I got a performance regression issue because it makes dirty
region is always true for the map object.

That is a corner case acutally, that object is not rendered but map still
have changed status.

I replaced the condition only if object is changed + map is changed.

At least, my test case works better with this patch.

@fix T6975

Reviewers: #committers, ManMower, devilhorns

Reviewed By: #committers, ManMower

Subscribers: ApB, ManMower, cedric, #committers, zmike

Tags: #efl

Maniphest Tasks: T6975

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

6 years agoevas: remove ecore init/shutdown calls from everywhere besides evas_main
Mike Blumenkrantz [Thu, 28 Jun 2018 20:03:15 +0000 (15:03 -0500)]
evas: remove ecore init/shutdown calls from everywhere besides evas_main

Summary:
these separate inits and shutdowns make it impossible to effectively control
ecore's lifetime which makes evas_shutdown unreliable as objects may be
destroyed at any point

ref T7052
Depends on D6475

Reviewers: ManMower, devilhorns

Reviewed By: ManMower, devilhorns

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T7052

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

Change-Id: I3d62667879896b0c3047ff7caebdc2f7f4c55dd7

6 years agoecore_evas: prevent duplicated ecore_evas registration 18/182518/2
YeongJong Lee [Mon, 25 Jun 2018 19:14:01 +0000 (15:14 -0400)]
ecore_evas: prevent duplicated ecore_evas registration

Summary:
After a44697c37a304c0d4d574b6772775c6936869e24, we can register same ecore_evas
to ecore_evases using ecore_evas_input_event_register.
(ecore_evas_input_event_register -> ecore_evas_done -> _ecore_evas_register)
This can make infinite loop in EINA_INLIST_FOREACH(ecore_evases, ee) because
next inlist of ecore_evases is ecore_evases after double call of
_ecore_evas_register.

This patch prevent it.

Test Plan:
Ecore_Evas *ee = ecore_evas_new(NULL, 0, 0, 800, 600, NULL);
ecore_evas_input_event_register(ee);
(part of document of ecore_fb_input_device_window_set)

Check that there is no infinite loop

Reviewers: zmike, devilhorns

Reviewed By: zmike

Subscribers: cedric, #committers

Tags: #efl

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

Change-Id: Ia1fc676abf2893849210c308e269e920b472784e

6 years agoRevert "ee_wayland_egl: Remove some amazing weirdness"
Jiyoun Park [Fri, 29 Jun 2018 04:04:00 +0000 (13:04 +0900)]
Revert "ee_wayland_egl: Remove some amazing weirdness"

calendar widget has black because of this patch

This reverts commit 0fdf4204a5977d66604f3a2bd65d76eb4ed4293e.

Change-Id: I9a9e0015b134965d1070f923ba9f699d730e7f37

6 years agoRevert "ecore_evas_wayland: Handle region updates and alpha setting in engine"
Jiyoun Park [Fri, 29 Jun 2018 04:03:26 +0000 (13:03 +0900)]
Revert "ecore_evas_wayland: Handle region updates and alpha setting in engine"

lock screen loses focus because of this patch

This reverts commit 26aa5dab423fd874bd9529d0682f9bc71f93819e.

6 years agoevas/main: move common shutdown to after ecore shutdown
Mike Blumenkrantz [Thu, 28 Jun 2018 19:53:10 +0000 (14:53 -0500)]
evas/main: move common shutdown to after ecore shutdown

Summary:
ecore_shutdown will trigger object deletions which require common
components to still be active in order to avoid crashes

ref 3433be343779424c5e030ace30e211298cd060f8
ref T7052

Reviewers: ManMower, devilhorns

Reviewed By: ManMower, devilhorns

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T7052

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

6 years agoecore_anim: Simplify timeline terminal condition
Derek Foreman [Thu, 28 Jun 2018 18:12:03 +0000 (13:12 -0500)]
ecore_anim: Simplify timeline terminal condition

Summary:
We should only ever have a pos of 1.0 once, the current terminal
condition gives the impression that it might be possible to have
more than one 1.0 firing.

This would break a lot of code.

No functional change intended.
Depends on D6464

Reviewers: devilhorns, zmike

Reviewed By: zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

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

6 years agoevas_render: Make some code easier to read
Derek Foreman [Thu, 28 Jun 2018 18:11:59 +0000 (13:11 -0500)]
evas_render: Make some code easier to read

Summary:
The variable "clean_them" can only ever be EINA_FALSE for much of this
function, but using it as a return value ensures that anyone not
intimately familiar with the code will have to read a lot of code
to figure out that this is so.

Instead, return EINA_FALSE up until the point clean_them can actually
be something else.

No functional change.

Reviewers: devilhorns, zmike

Reviewed By: zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

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

6 years agoevas/main: shuffle shutdown order of filters and modules
Mike Blumenkrantz [Thu, 28 Jun 2018 16:41:12 +0000 (12:41 -0400)]
evas/main: shuffle shutdown order of filters and modules

Summary:
these both deallocate resources which can be needed during ecore_shutdown

ref df652673febd8617d3f458a5c14478534e927940
fix T7052

Reviewers: ManMower, devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T7052

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

6 years agoeio/fallback: avoid emitting monitor events if the backend is pending deletion
Mike Blumenkrantz [Wed, 27 Jun 2018 12:48:59 +0000 (08:48 -0400)]
eio/fallback: avoid emitting monitor events if the backend is pending deletion

emitting events if the delete_me flag is set may result in events being emitted
for an already-freed monitor, resulting in both invalid memory access and a
deadlock later on if eio_shutdown has been called at this point

this causes the monitoring thread to check the status of the backend during the
block where the main loop and thread are in sync, avoiding any data races which
could occur when checking the flag at another time, and also avoiding accessing
the internals of the Ecore_Thread which could also have been deallocated during
shutdown

fix T7086

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

6 years agotests: check eio monitors for fallback monitoring
Mike Blumenkrantz [Tue, 26 Jun 2018 22:22:11 +0000 (18:22 -0400)]
tests: check eio monitors for fallback monitoring

the corresponding tests cannot be run when using fallback monitoring,
so be sure to skip them when fallback is detected to avoid erroneous
failure reporting

fix T7042

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

6 years agoeio: add method for determining if a monitor is using the fallback mechanism
Mike Blumenkrantz [Tue, 26 Jun 2018 22:20:37 +0000 (18:20 -0400)]
eio: add method for determining if a monitor is using the fallback mechanism

the fallback method of calling stat() on the monitored paths does not allow
for various eio events to be emitted, meaning that any application which relies
on those events can never receive them

this provides a method for checking a monitor to determine which functionality
is available, and also provides more explicit documentation regarding events
that are not provided by fallback monitoring

this method is marked as beta

@feature

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

6 years agotests: cancel the timeout timer when cleaning up eio tests
Mike Blumenkrantz [Tue, 26 Jun 2018 22:17:24 +0000 (18:17 -0400)]
tests: cancel the timeout timer when cleaning up eio tests

this timer could persist and cause cascading failures for subsequent
tests when running in non-forked mode

@fix

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

6 years agotests: increase eio monitor+sentry test initial delay to 0.05s
Mike Blumenkrantz [Tue, 26 Jun 2018 22:15:53 +0000 (18:15 -0400)]
tests: increase eio monitor+sentry test initial delay to 0.05s

this helps ensure that the fallback monitor can perform an initial
scan during the test while under load

fix T7042

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

6 years agoeio/fallback: do not modify the children hash while iterating it
Mike Blumenkrantz [Tue, 26 Jun 2018 22:15:10 +0000 (18:15 -0400)]
eio/fallback: do not modify the children hash while iterating it

this is invalid use of the hash api and will cause a crash

@fix

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

6 years agoeio/fallback: mark all fallback monitors as fallbacks, not just for win32
Mike Blumenkrantz [Tue, 26 Jun 2018 22:10:19 +0000 (18:10 -0400)]
eio/fallback: mark all fallback monitors as fallbacks, not just for win32

@fix

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

6 years agoeio/fallback: fix MODIFY event emission on base path when monitoring
Mike Blumenkrantz [Tue, 26 Jun 2018 21:49:56 +0000 (17:49 -0400)]
eio/fallback: fix MODIFY event emission on base path when monitoring

previously this sent a DELETE event any time the target file was modified

@fix
fix T7042

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

6 years agoeio/fallback: remove intermediate idler
Mike Blumenkrantz [Tue, 26 Jun 2018 20:42:04 +0000 (16:42 -0400)]
eio/fallback: remove intermediate idler

for some reason, the fallback thread would exit -> create timer ->
create idler -> create thread; the existence of the idler makes little
sense and introduces variability in the timer interval

@fix

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

6 years agoeio/fallback: fix fallback shutdown when threads exist
Mike Blumenkrantz [Tue, 26 Jun 2018 20:39:53 +0000 (16:39 -0400)]
eio/fallback: fix fallback shutdown when threads exist

threads should not be waited on here during shutdown since these same
threads may be waiting on the main loop anyway

instead, perform as much deallocation as possible,
mark the monitor as deleted, and then set the thread to canceled and
allow the thread to clean itself up during its cancel/end callback

@fix

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

6 years agoeio/fallback: always create timer hash on fallback init
Mike Blumenkrantz [Tue, 26 Jun 2018 20:38:20 +0000 (16:38 -0400)]
eio/fallback: always create timer hash on fallback init

this is a required call in order for the fallback system to work

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

6 years agoecore/thread: flush main loop threads during ecore_thread_wait()
Mike Blumenkrantz [Tue, 26 Jun 2018 20:37:08 +0000 (16:37 -0400)]
ecore/thread: flush main loop threads during ecore_thread_wait()

this avoids the case where the main loop is waiting on a thread
and that same thread is waiting on the main loop

@fix

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

6 years agoecore/thread: flush main loop threads while waiting during shutdown
Mike Blumenkrantz [Tue, 26 Jun 2018 20:35:55 +0000 (16:35 -0400)]
ecore/thread: flush main loop threads while waiting during shutdown

if a thread is actively waiting on the main loop in order to proceed
with its exit, a flush here avoids the case where the thread waits
until the main loop has exited

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

6 years agoecore/thread: increase loop iterations when waiting during shutdown
Mike Blumenkrantz [Tue, 26 Jun 2018 20:34:24 +0000 (16:34 -0400)]
ecore/thread: increase loop iterations when waiting during shutdown

since this is now a smaller wait interval, looping more times helps
ensure success for threads which have longer blocking operations
between lifetime checks

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

6 years agoeina/mempool: remove debug thread check to verify mempool deletion thread
Mike Blumenkrantz [Wed, 27 Jun 2018 10:18:14 +0000 (06:18 -0400)]
eina/mempool: remove debug thread check to verify mempool deletion thread

Summary:
a common use case for mempools is that they get created by a thread but then
exist for the duration of the app's lifetime until shutdown() occurs in the
main thread. there is no reason to have an assert here which blocks that
use case
Depends on D6434

Reviewers: ManMower, bu5hm4n, devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #committers

Tags: #efl

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

6 years agotests: ignore ibus module in ecore-imf tests when DISPLAY is not set
Mike Blumenkrantz [Wed, 27 Jun 2018 10:18:00 +0000 (06:18 -0400)]
tests: ignore ibus module in ecore-imf tests when DISPLAY is not set

Summary:
ibus module will refuse to load if DISPLAY is not set, so avoid failing
for no reason in this case
Depends on D6433

Reviewers: ManMower, bu5hm4n, devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #committers

Tags: #efl

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

6 years agotests: avoid cascading failure in ecore-imf tests when not forking
Mike Blumenkrantz [Wed, 27 Jun 2018 10:17:45 +0000 (06:17 -0400)]
tests: avoid cascading failure in ecore-imf tests when not forking

Summary:
these tests explicitly call ecore_imf_init, so they must call ecore_imf_shutdown
even on failure cases to avoid propagating their failure to subsequent tests

ref T7085

Reviewers: ManMower, bu5hm4n, devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T7085

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

6 years agoeina debug - fix setuid process shutdown by initting fully except conn
Carsten Haitzler (Rasterman) [Wed, 27 Jun 2018 05:13:00 +0000 (14:13 +0900)]
eina debug - fix setuid process shutdown by initting fully except conn

init eina debug fully except for the debug daemon connection that the
setuid check was meant to skip. this fixes T7055

6 years agoecore-evas-x: set draw_block until the window receives a configure event (#2)
Mike Blumenkrantz [Tue, 26 Jun 2018 03:25:38 +0000 (12:25 +0900)]
ecore-evas-x: set draw_block until the window receives a configure event (#2)

Summary:
drawing a non-override window before receiving a configure event results
in an unsized window, breaking spec. it also prevents ecore-evas resize
callbacks from triggering, yielding undefined returns from functions which
attempt to get the geometry of the ecore-evas

this patch improves upon the previous version by handling the case of windows
which are created with the correct initial size, bypassing an initial configure
event

there is still a lot of work to be done in this engine to improve/consolidate
resize-related code and ensure protocol correctness

ref T7008
fix T6907

Reviewers: devilhorns, ManMower

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T7008, T6907

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

6 years agoRevert "elm win - fix resizing on show. rage was broken last week. this fixes it"
Carsten Haitzler (Rasterman) [Tue, 26 Jun 2018 03:25:17 +0000 (12:25 +0900)]
Revert "elm win - fix resizing on show. rage was broken last week. this fixes it"

This reverts commit 7bf845b24ca7bd12273f5207022e1e5db4ad2e78.

6 years agoevas: move clearing cows to right place. 80/182780/2
Hosang Kim [Wed, 27 Jun 2018 11:50:30 +0000 (07:50 -0400)]
evas: move clearing cows to right place.

Summary:
Evas is child of main loop now, so evas is deleted when main loop is quitted.
In case of not calling evas_free() explicitly by app side, a crash occurs.
So move clearing cows to below ecore_shutdown().

Tags: #efl

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

Change-Id: I28633f1246805a89a6bb915ca852a217fa21fda0

6 years agofocus: Add second_level for focus direction weight calculate
Jeonghyun Yun [Wed, 27 Jun 2018 02:34:48 +0000 (11:34 +0900)]
focus: Add second_level for focus direction weight calculate

@tizen_fix

Change-Id: I6deae4f1ef16bea5a92e301f85d532c7425fd6ac
Signed-off-by: Jeonghyun Yun <jh0506.yun@samsung.com>
6 years agoDelete unnecessarty log for tbm surface
Sunghyun kim [Wed, 27 Jun 2018 04:50:40 +0000 (13:50 +0900)]
Delete unnecessarty log for tbm surface

Change-Id: I555e4790f6f3846918ee6ffc1ec87c414e3d94e1

6 years agoelm_spinner: call _label_write for update text button label when theme is changed
Jeonghyun Yun [Tue, 26 Jun 2018 07:23:03 +0000 (16:23 +0900)]
elm_spinner: call _label_write for update text button label when theme is changed

@tizen_feature

Change-Id: Ic56ab038c0a93ca735ef3a7cc6cf1fdd7bbbdda0
Signed-off-by: Jeonghyun Yun <jh0506.yun@samsung.com>
6 years agoelementary: resolve fail to load some elementary module
Jongmin Lee [Fri, 22 Jun 2018 05:50:33 +0000 (14:50 +0900)]
elementary: resolve fail to load some elementary module

elm_module_helper.h include elm_priv.h which undef EAPI inside of it.
So that, some elementary module that include elm_module_helper.h could not
export module init/shutdown symbol correctly.
this commit prevent EAPI define to be removed.

@tizen_fix

Change-Id: I67c44033a9eaabe9685e809440eed7fbfbffd87d

6 years agoevas : disable GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
Joogab Yun [Fri, 15 Jun 2018 02:17:15 +0000 (11:17 +0900)]
evas : disable GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
 There is a problem when scaling down the 4K image.
 so add the EVAS_GL_ANISOTROPY environment variable.

Change-Id: I0d62d597131df4d8481139c33a2274791e565933

6 years agoecore_drm2: Fix failure to properly set up new plane
Derek Foreman [Tue, 26 Jun 2018 19:28:07 +0000 (15:28 -0400)]
ecore_drm2: Fix failure to properly set up new plane

Summary:
When we add a plane we need to add it to the list before doing the atomic
test to ensure we're testing new state that includes the plane, and to
ensure the next screen update includes the plane we just added.

Fix T7066

Reviewers: devilhorns

Subscribers: cedric, #committers, zmike

Tags: #efl

Maniphest Tasks: T7066

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

6 years agoRevert "eina: provide full string length to vsnprintf to allow for null character"
Xavi Artigas [Tue, 26 Jun 2018 16:38:22 +0000 (12:38 -0400)]
Revert "eina: provide full string length to vsnprintf to allow for null character"

Summary:
This reverts commit e0f8e65d2044d49df4fd6355e7835a5f01d854e7 which changed the
behavior of eina_stringshare_nprintf() and was not really needed to fix T6903.

Reviewers: zmike, Jaehyun_Cho, devilhorns

Reviewed By: zmike

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T6903

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

6 years agoelm: register legacy_type correctly
Marcel Hollerbach [Tue, 26 Jun 2018 16:21:54 +0000 (12:21 -0400)]
elm: register legacy_type correctly

Summary:
What happened before is that we registered efl_ui_leyout_legacy for
"elm_layout", which is not that good, since checking a (lets say) elm_button, for the type "elm_layout" would result in false. The same is with elm_button.

fixes T7081

Reviewers: devilhorns, zmike

Reviewed By: zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Maniphest Tasks: T7081

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

6 years agoeina/threadqueue: use mempool_del for hash free function
Mike Blumenkrantz [Mon, 25 Jun 2018 21:55:25 +0000 (17:55 -0400)]
eina/threadqueue: use mempool_del for hash free function

Summary:
I typod this in 14ae3e3dec7866e74f2990dca417eac44da41058 and when using
mempools other than chained, this probably caused all apps to crash on
shutdown

Reviewers: ManMower, devilhorns

Reviewed By: ManMower

Subscribers: cedric, #committers

Tags: #efl

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

6 years agoecore/thread: greatly reduce usleep time during shutdown loop
Mike Blumenkrantz [Mon, 25 Jun 2018 21:27:18 +0000 (17:27 -0400)]
ecore/thread: greatly reduce usleep time during shutdown loop

Summary:
now that ecore accurately waits on all threads while exiting, this
loop needs to run much more frequently in order to avoid waiting for
an unreasonably long time when exiting

Reviewers: ManMower, devilhorns

Reviewed By: ManMower

Subscribers: cedric, #committers

Tags: #efl

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

6 years agoecore/thread: track "no_queue" threads
Mike Blumenkrantz [Mon, 25 Jun 2018 18:19:59 +0000 (14:19 -0400)]
ecore/thread: track "no_queue" threads

these threads are still managed by the main loop, meaning they must be
accounted for so that they can be waited on if necessary during shutdown

this resolves some issues where ecore-con threads would persist after the
main thread had exited or called ecore_shutdown

@fix
fix T7041

this is the final version of the patch and not the mangled version which
was previously committed

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

6 years agoRevert "ecore/thread: track "no_queue" threads"
Mike Blumenkrantz [Mon, 25 Jun 2018 20:53:40 +0000 (16:53 -0400)]
Revert "ecore/thread: track "no_queue" threads"

This reverts commit 1e47db6a711a1f605bc765cb694d575af28ab85e.

somehow arc managed to land an old revision of this which was not consistent
with the final version of D6354

6 years agotests: split a large failure case for eina_file tests to provide more info
Mike Blumenkrantz [Mon, 25 Jun 2018 19:18:23 +0000 (15:18 -0400)]
tests: split a large failure case for eina_file tests to provide more info

Summary:
each failure case should always be separate in order to provide the highest
degree of detail available if a test fails

Reviewers: devilhorns, ManMower

Reviewed By: ManMower

Subscribers: ManMower, cedric, #committers

Tags: #efl

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

6 years agoeina/lock: add errno wrapping for backtrace() calls in thread debug blocks
Mike Blumenkrantz [Mon, 25 Jun 2018 19:18:11 +0000 (15:18 -0400)]
eina/lock: add errno wrapping for backtrace() calls in thread debug blocks

Summary:
somehow backtrace() is able to generate EINVAL in certain cases even though
this is not documented anywhere. these irrelevant errors should not be noticed
by users of the api during debugging, as this can cause some tests/apps to
randomly fail without explanation

@fix

Reviewers: ManMower, devilhorns

Reviewed By: ManMower

Subscribers: cedric, #committers

Tags: #efl

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

6 years agoelm/win: move trigger for "shot" to first pre-render callback
Mike Blumenkrantz [Mon, 25 Jun 2018 19:20:27 +0000 (15:20 -0400)]
elm/win: move trigger for "shot" to first pre-render callback

Summary:
in the case where the first render took far longer then the specified
shot interval, this would end up recording garbage since there was nothing
drawn yet

@fix
fix T6929

Reviewers: bu5hm4n, JackDanielZ, devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T6929

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

6 years agoedje: return available text data in part_text_get without recalc when possible
Mike Blumenkrantz [Mon, 25 Jun 2018 19:19:33 +0000 (15:19 -0400)]
edje: return available text data in part_text_get without recalc when possible

Summary:
based on the codepaths taken when setting text to a part, a recalc should
only be necessary when returning markup from a textblock, and this is only
the case because the function returns a non-allocated string

in the case where the object is textblock and (legacy || not fetching markup),
the current text is guaranteed to be set on this pointer. the reason a
recalc is necessary for the markup case is because edje TEXTBLOCK parts only
set text to the internal textblock during a recalc, meaning that attempting
to fetch text on a just-set part will fail; this does not mean that the internal
textblock object doesn't exist, only that the text has not yet been set to it
Depends on D6422

Reviewers: herdsman, devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #committers

Tags: #efl

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

6 years agoedje: remove recalc during part_recursive_get
Mike Blumenkrantz [Mon, 25 Jun 2018 19:11:00 +0000 (15:11 -0400)]
edje: remove recalc during part_recursive_get

Summary:
this adds perf overhead in order to work around a bug in text_get

all part objects are instantiated during edje_object_file_set, and forcing
a recalc here does nothing more than perform unnecessary operations

ref 8f95b17f39cb87cb4627150b0761fc95376bd026
ref D6365

Reviewers: herdsman, devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #committers

Tags: #efl

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

6 years agoeina/debug_cpu: rework thread usage
Mike Blumenkrantz [Mon, 25 Jun 2018 19:16:39 +0000 (15:16 -0400)]
eina/debug_cpu: rework thread usage

Summary:
this changes the explicit pthread usage (and reimplementation of eina_thread_create)
to just use eina function calls. it also causes the thread to start and stop when
profiling is enabled and resolves some possible errors which could occur after
a fork or when trying to compile under windows

pthread usage: this code appears to have been 100% copied from eina_thread.c, and it
isn't clear to me why existing eina_thread api was not used. this has no functional
benefit, but it makes the code more readable

thread lifetime: there is no need to have a thread running at all times for a feature
which will be rarely used and which must be explicitly enabled by the user

windows: this file previously generated a lot of compiler warnings from unused functions
and variables since nothing here is available under windows. the entire file is now
a giant #ifndef _WIN32 to avoid any compile warnings or unexpected runtime behavior

fix T7055
Depends on D6371

Reviewers: ManMower, vtorri, devilhorns

Reviewed By: ManMower

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T7055

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

6 years agoeina/debug: replace some explicit pthread_t usage with Eina_Thread
Mike Blumenkrantz [Fri, 22 Jun 2018 19:52:16 +0000 (15:52 -0400)]
eina/debug: replace some explicit pthread_t usage with Eina_Thread

no functional changes

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

6 years agoeina/lock: rework meaning of EINA_DEBUG_THREADS variable
Mike Blumenkrantz [Mon, 25 Jun 2018 19:15:34 +0000 (15:15 -0400)]
eina/lock: rework meaning of EINA_DEBUG_THREADS variable

Summary:
previously this used to mean 'the number of ms that a lock can wait for
until abort() is called once the lock is acquired' and it was useful
when trying to find contention issues with locks

unfortunately this required a bit of reading into the code to determine,
and it made the common case of setting values to 1 fail in some cases,
as this is a very short amount of time. also the documentation explicitly
gives '1' as an example setting for this variable, which will cause immediate
abort() in most cases when debugging was enabled since things are much slower

this variable now is the number of usec that a lock can wait for before abort()
is called, and the lowest value that will be checked for abort()ing is 100, meaning
that '1' is valid again
Depends on D6375

Reviewers: ManMower, devilhorns

Reviewed By: ManMower

Subscribers: cedric, #committers

Tags: #efl

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

6 years agoeina/lock: when debug threads are enabled, always call trylock in lock function
Mike Blumenkrantz [Mon, 25 Jun 2018 19:15:32 +0000 (15:15 -0400)]
eina/lock: when debug threads are enabled, always call trylock in lock function

Summary:
when debugging thread issues, it's not actually helpful to immediately
deadlock--this defeats any attempt at debugging. instead, call trylock first
in order to detect a possible deadlock and then throw an error which can be
caught by the user
Depends on D6374

Reviewers: ManMower, devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #committers

Tags: #efl

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

6 years agoeina/lock: reorder inline posix lock functions
Mike Blumenkrantz [Mon, 25 Jun 2018 19:15:29 +0000 (15:15 -0400)]
eina/lock: reorder inline posix lock functions

Summary: no functional changes

Reviewers: ManMower, devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #committers

Tags: #efl

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

6 years agoecore_evas: prevent duplicated ecore_evas registration
YeongJong Lee [Mon, 25 Jun 2018 19:14:01 +0000 (15:14 -0400)]
ecore_evas: prevent duplicated ecore_evas registration

Summary:
After a44697c37a304c0d4d574b6772775c6936869e24, we can register same ecore_evas
to ecore_evases using ecore_evas_input_event_register.
(ecore_evas_input_event_register -> ecore_evas_done -> _ecore_evas_register)
This can make infinite loop in EINA_INLIST_FOREACH(ecore_evases, ee) because
next inlist of ecore_evases is ecore_evases after double call of
_ecore_evas_register.

This patch prevent it.

Test Plan:
Ecore_Evas *ee = ecore_evas_new(NULL, 0, 0, 800, 600, NULL);
ecore_evas_input_event_register(ee);
(part of document of ecore_fb_input_device_window_set)

Check that there is no infinite loop

Reviewers: zmike, devilhorns

Reviewed By: zmike

Subscribers: cedric, #committers

Tags: #efl

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

6 years agoecore_con: make dns resolver thread stop blocking when canceled
Mike Blumenkrantz [Mon, 25 Jun 2018 19:13:22 +0000 (15:13 -0400)]
ecore_con: make dns resolver thread stop blocking when canceled

Summary:
if the user or system attempts to cancel this thread then it should
stop blocking and exit in order to avoid potentially exiting after
efl has expected ecore-con to stop being active

@fix
fix T7041
Depends on D6354

Reviewers: ManMower, devilhorns

Reviewed By: ManMower

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T7041

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

6 years agoecore/thread: track "no_queue" threads
Mike Blumenkrantz [Thu, 21 Jun 2018 22:38:22 +0000 (18:38 -0400)]
ecore/thread: track "no_queue" threads

these threads are still managed by the main loop, meaning they must be
accounted for so that they can be waited on if necessary during shutdown

this resolves some issues where ecore-con threads would persist after the
main thread had exited or called ecore_shutdown

@fix
fix T7041

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

6 years agoeina_thread_queue: use normal mempools for block allocation
Mike Blumenkrantz [Thu, 21 Jun 2018 22:17:33 +0000 (18:17 -0400)]
eina_thread_queue: use normal mempools for block allocation

there's no need to reimplement mempools here when we already have a great
mempool api

this makes the code slightly more readable

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