platform/upstream/efl.git
7 years agoelm: Remove range "span_size" API in EO
Jean-Philippe Andre [Wed, 20 Sep 2017 02:16:17 +0000 (11:16 +0900)]
elm: Remove range "span_size" API in EO

Reasons:
 - This API has been confused with the min size of the widget, resulting
   in badly laid out applications.
 - The EO API was not very nice (Range is about numbers, the Gfx size
   hint in a part is really ugly).

While I understand the value of this API and how it can be used in
scalable applications, it is in fact not absolutely necessary.
Alternatively to that span size, the widget min size can already be
defined from the application side, or the widget can simply be expanded
to fill in its parent.

This can obviously be reinstated later if the need arises for EO. For
now, keep this feature as legacy-only.

7 years agoelm: Split off text and content for efl_part
Jean-Philippe Andre [Tue, 19 Sep 2017 12:46:59 +0000 (21:46 +0900)]
elm: Split off text and content for efl_part

This is VERY tricky.
For legacy, just create an internal class that has both. It's easier
this way. For parts that are handled by Layout directly, we know from
Edje which type to return.

For EO objects we should know from the part name which kind of part we
are dealing with:
 - text (overridden by the widget)
 - content (overridden by the widget)
 - special (new efl_part based functions)
 - generic (handled by Layout)

Note: Efl.Ui.Slider was handling "span size" on ALL parts. That's bad...
This is now limited to "span" only.

7 years agoelm: Move base implementation for efl_part in widget
Jean-Philippe Andre [Tue, 19 Sep 2017 11:02:26 +0000 (20:02 +0900)]
elm: Move base implementation for efl_part in widget

This means that ALL part handles inherit from the base part class
Efl.Ui.Widget.Part. Layout is the only exception where Efl.Part is
specially overridden.

This is a first step towards generic part APIs, including background in
all widgets.

7 years agoUi text: add Efl.Ui.Text_Async object
Daniel Hirt [Tue, 12 Sep 2017 05:38:51 +0000 (08:38 +0300)]
Ui text: add Efl.Ui.Text_Async object

Adds "Efl.Ui.Text_Async" object.
This new widget uses the "async_layout" functionality of the underlying
Efl.Canvas.Text object.

Currently, if "editable" mode is enabled, there is no asynchronous
layout, as interactive operations (e.g. typing) should get processed
immediately. Thus, only "non-editable" instructs the text object to do
asynchronous layout.

@feature

7 years agoCanvas text async: add async layout functionality
Daniel Hirt [Mon, 4 Sep 2017 16:16:27 +0000 (19:16 +0300)]
Canvas text async: add async layout functionality

This adds the 'async_layout' method.
The 'async layout' method is similar to 'size_formatted_get', but done
outside of the mainloop. When a call is made to this method, a thread
is created (after some preparation like updating the logical text
items), and the visual layout is offloaded to that thread. The result
is returned as Eina.Future.

The mainloop is blocked for operations that manipulate the object, if a
thread has already been created but hasn't complete its work.
Consecutive calls for async layout for the same object are not handled
simultaneously. Each time the threads has complete its work, the next
(if exists) layout will be dispatched.

@feature

7 years agoevas-drm: Fix uninitialized variables
Chris Michael [Wed, 20 Sep 2017 10:26:05 +0000 (06:26 -0400)]
evas-drm: Fix uninitialized variables

Small patch to fix Coverity reported issues of uninitialized variables

Fixes CID1381306, CID1381305, CID1381304, CID1381303

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoefl ui layout - handle content unset properly and remove the unset item
Carsten Haitzler (Rasterman) [Wed, 20 Sep 2017 08:31:23 +0000 (17:31 +0900)]
efl ui layout - handle content unset properly and remove the unset item

the content unset in some cases - specifically terminology seems to
put the item back in and doesnt remove it... causing it later to be
deleted if unset to remove it and re-use it (which is rarely done).

@fix

7 years agoUi text: add null checks for anchor update
Daniel Hirt [Tue, 19 Sep 2017 17:16:59 +0000 (20:16 +0300)]
Ui text: add null checks for anchor update

Add null checks in case item was not found.
Also use one more emoticon to test the provider.

7 years agoEdje: move selection-related part_text API to legacy
Daniel Hirt [Tue, 19 Sep 2017 16:36:43 +0000 (19:36 +0300)]
Edje: move selection-related part_text API to legacy

7 years agoEdje: move IMF-related part_text API to legacy
Daniel Hirt [Tue, 19 Sep 2017 16:17:26 +0000 (19:17 +0300)]
Edje: move IMF-related part_text API to legacy

7 years agoecore-evas-drm: Implement actual evas engine rotations in drm
Chris Michael [Tue, 19 Sep 2017 15:58:55 +0000 (11:58 -0400)]
ecore-evas-drm: Implement actual evas engine rotations in drm

This patch implements handling of evas output rotation for the
ecore_evas drm engine.

ref T5999

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoevas-drm: Support rotations other than 0
Chris Michael [Tue, 19 Sep 2017 15:55:29 +0000 (11:55 -0400)]
evas-drm: Support rotations other than 0

This patch adds support for software rotation in the evas drm engine.
This is a fallback codepath in case hardware rotation is not supported
for a given rotation amount. This patch also fixes a leak of and
pending updates during output buffer free.

ref T5999

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoevas-drm: Override eng_output_resize function
Chris Michael [Tue, 19 Sep 2017 15:51:30 +0000 (11:51 -0400)]
evas-drm: Override eng_output_resize function

This patch provides an override in the evas drm engine for the output
resize function. We override this function so that we can reconfigure
the output buffer.

ref T5999

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoecore-drm2: Minor formatting fix
Chris Michael [Tue, 19 Sep 2017 15:45:43 +0000 (11:45 -0400)]
ecore-drm2: Minor formatting fix

NB: No functional changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoecore-evas-drm: Formatting
Chris Michael [Mon, 18 Sep 2017 14:27:04 +0000 (10:27 -0400)]
ecore-evas-drm: Formatting

NB: No functional changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoelm: Fix invalid uses of Efl.Orientation
Jean-Philippe Andre [Tue, 19 Sep 2017 09:51:58 +0000 (18:51 +0900)]
elm: Fix invalid uses of Efl.Orientation

I think this closes the orientation vs. direction problem.
RTL vs. AnyRTL is not fully handled yet but this becomes a
widget-per-widget issue (eg. should a box in a RTL locale be mirrored if
set to horizontal?).

Fixes T5870

7 years agoefl_ui_image: add new scale type: EFL_UI_IMAGE_SCALE_TYPE_TILE
Sungtaek Hong [Tue, 19 Sep 2017 08:32:09 +0000 (17:32 +0900)]
efl_ui_image: add new scale type: EFL_UI_IMAGE_SCALE_TYPE_TILE

Summary:
Tile is common type which can be used eg: background.
This is added to scale type which can be set/get by
efl_ui_image_scale_type_set/get()
@feature

Test Plan:
Run elementary test
           Run Image Scale Type
           Check radio "Tile".

Reviewers: jpeg, cedric, woohyun

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

7 years agoevas_object_main: fallback to other usage instead of returning NULL
Marcel Hollerbach [Thu, 24 Aug 2017 17:28:51 +0000 (19:28 +0200)]
evas_object_main: fallback to other usage instead of returning NULL

Even if a object is on deleting or doesnt have a layer, it still can be
found in a higher hirachy.

7 years agoevas_events: add checking state of point
Hosang Kim [Tue, 19 Sep 2017 08:22:48 +0000 (17:22 +0900)]
evas_events: add checking state of point

Summary:
When multi down or multi move occur, state of touch point changes to EVAS_TOUCH_POINT_STILL.
So I add condition, "state == EVAS_TOUCH_POINT_STILL"

Reviewers: jypark, woohyun, cedric

Subscribers: cedric, jpeg

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

7 years agoels_tooltip: Fix to use some functions before tooltip_test_set or tooltip_content_cb_set
Jeonghyun Yun [Tue, 19 Sep 2017 08:05:15 +0000 (17:05 +0900)]
els_tooltip: Fix to use some functions before tooltip_test_set or tooltip_content_cb_set

Summary:
If user call tooltip_orient_set or tooltip_style_set or tooltip_window_mode_set
before tooltip_test_set or tooltip_content_cb_set, those functions doesn't work.
Because elm_tooltip will be created when tooltip_content_cb_set is called.
I fixed logic to use some functions before tooltip_test_set or tooltip_content_cb_set.

Test Plan: elementary_test -> Popups -> Tooltip

Reviewers: jpeg, Jaehyun

Subscribers: cedric, jpeg

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

7 years agoanimation2: fix compile instruction
Jean-Philippe Andre [Tue, 19 Sep 2017 08:00:35 +0000 (17:00 +0900)]
animation2: fix compile instruction

Summary:
without it, it was failing with following error
/usr/bin/ld: /tmp/ccnjRcVr.o: undefined reference to symbol 'evas_object_move'
//usr/lib64/libevas.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

Test Plan: just try to compile it with and without.

Reviewers: jpeg

Reviewed By: jpeg

Subscribers: cedric, jpeg

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

7 years agoevas_event: Fix missing case when check the event area
jiin.moon [Tue, 19 Sep 2017 07:59:16 +0000 (16:59 +0900)]
evas_event: Fix missing case when check the event area

Summary:
If the object is outside the parent geometry because of map,
this object would be ignored in determining object is in the event area.

Please refer to below case
1) There are some button in the box object
2) A button has map with 90 degree.
   It would be placed outside the box geometry
3) If you press the button part outside the box,
   the button event does not work.

Test Plan: sample code

Reviewers: jpeg, cedric

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

7 years agoevas: Document Textgrid objects API
Bryce Harrington [Tue, 19 Sep 2017 07:55:47 +0000 (16:55 +0900)]
evas: Document Textgrid objects API

Subscribers: cedric, jpeg

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

7 years agoevas: Textgrid doxygen grammar/spelling cleanup
Bryce Harrington [Tue, 19 Sep 2017 07:55:37 +0000 (16:55 +0900)]
evas: Textgrid doxygen grammar/spelling cleanup

Subscribers: cedric, jpeg

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

7 years agoevas: Eo Textgrid doc grammar cleanup
Bryce Harrington [Tue, 19 Sep 2017 07:55:25 +0000 (16:55 +0900)]
evas: Eo Textgrid doc grammar cleanup

Subscribers: cedric, jpeg

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

7 years agoeldbus: Fix test case (make check)
Jean-Philippe Andre [Tue, 19 Sep 2017 07:46:22 +0000 (16:46 +0900)]
eldbus: Fix test case (make check)

7 years agoelm_map: keep overlays list when showing overlays
Sungtaek Hong [Tue, 19 Sep 2017 07:37:00 +0000 (16:37 +0900)]
elm_map: keep overlays list when showing overlays

Summary:
In elm_map_overlay_show and elm_map_overlays_show,
it frees overlays list members. This lists are used
in elm_map_overlay functions, so should remain.

Test Plan:
1. Run elementary_test -> Geographic -> Map
2. Click group overlay (whose text is "3") -> bubble appears
3. Click "Show" button -> observe no more Eina Magic Check Failure appear.

Reviewers: jpeg, cedric, woohyun

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

7 years agoevas: Fix invalid call to intercept
Jean-Philippe Andre [Tue, 19 Sep 2017 07:23:50 +0000 (16:23 +0900)]
evas: Fix invalid call to intercept

This fixes scrolling in rage.

Lessons learnt:
 - Do not trust raster's bisecting skills ^^,
 - Do not blame GCC until you're 100% positive about the exact code
   triggering an issue,
 - va_arg is unsafe, and can lead to crazy issues like this one,
 - va_arg passes (int x, int y) differently from Eina_Size2D sz, and
   optimization flags may also affect how that's done, or at least what
   kind of garbage data is used.

7 years agoedje: Ensure min size calc is always >= restricted
Jean-Philippe Andre [Tue, 19 Sep 2017 06:20:29 +0000 (15:20 +0900)]
edje: Ensure min size calc is always >= restricted

We're not 100% sure yet but there seems to be an issue with GCC and -O2
where rage scrolling doesn't work anymore, since the first patch below:

See 641a58f735e93fb9e70dc85c006b3da09645bae7
See f53fe993a6a285ddb49aa69d6c6856169f37ec63

This commit unfortunately doesn't solve the issue.

7 years agoupdate PO files from src...
Carsten Haitzler (Rasterman) [Tue, 19 Sep 2017 07:16:44 +0000 (16:16 +0900)]
update PO files from src...

7 years agoefl po files - fix LTR/RTL translation string to be correct for langs
Carsten Haitzler (Rasterman) [Tue, 19 Sep 2017 07:09:21 +0000 (16:09 +0900)]
efl po files - fix LTR/RTL translation string to be correct for langs

also add the comment in the code for trsanslators

@fix

7 years agoexamples: cxx: fix examples for new size_set function signature
Stefan Schmidt [Tue, 19 Sep 2017 06:23:48 +0000 (08:23 +0200)]
examples: cxx: fix examples for new size_set function signature

This no longer takes two parameters. Update to the new signature.

7 years agoefl interfaces: Fix typo in doc
Bryce Harrington [Tue, 19 Sep 2017 03:15:55 +0000 (12:15 +0900)]
efl interfaces: Fix typo in doc

Reviewers: cedric

Subscribers: jpeg

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

7 years agoedje: Fix invalid storage of efl_part objects
Jean-Philippe Andre [Tue, 19 Sep 2017 03:07:13 +0000 (12:07 +0900)]
edje: Fix invalid storage of efl_part objects

Test scenario:
 - elementary_test -to "ExtProgressBar"
 - Then click on "... from C

Fixes T6032

@fix

7 years agoevas: Remove remnants from EO 1 internal API
Jean-Philippe Andre [Tue, 19 Sep 2017 02:57:22 +0000 (11:57 +0900)]
evas: Remove remnants from EO 1 internal API

7 years agoelm: rename Elm.Interface.Atspi_Action => Efl.Access.Action
Lukasz Stanislawski [Tue, 19 Sep 2017 02:19:21 +0000 (11:19 +0900)]
elm: rename Elm.Interface.Atspi_Action => Efl.Access.Action

Reviewers: cedric, jpeg

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

7 years agoelm: rename Elm.Interface.Atspi.Selection => Efl.Access.Selection
Lukasz Stanislawski [Tue, 19 Sep 2017 02:18:22 +0000 (11:18 +0900)]
elm: rename Elm.Interface.Atspi.Selection => Efl.Access.Selection

Reviewers: jpeg, cedric

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

7 years agotext: Remove unused EO structs
Jean-Philippe Andre [Mon, 18 Sep 2017 13:29:20 +0000 (22:29 +0900)]
text: Remove unused EO structs

Bad copy & paste?

7 years agopolygon: Use Eina.Position2D for point_add
Jean-Philippe Andre [Mon, 18 Sep 2017 13:02:16 +0000 (22:02 +0900)]
polygon: Use Eina.Position2D for point_add

7 years agowin: Use Eina.Size2D for pointer position
Jean-Philippe Andre [Mon, 18 Sep 2017 12:54:55 +0000 (21:54 +0900)]
win: Use Eina.Size2D for pointer position

Also rename the function for more consistency.

7 years agophotocam: Use Eina.Rect for image_region
Jean-Philippe Andre [Mon, 18 Sep 2017 12:13:19 +0000 (21:13 +0900)]
photocam: Use Eina.Rect for image_region

7 years agoefl: Use Eina.Size2D for screen size
Jean-Philippe Andre [Mon, 18 Sep 2017 12:08:28 +0000 (21:08 +0900)]
efl: Use Eina.Size2D for screen size

This API isn't so great when considering Wayland...

7 years agoevas: Use Eina.Rect for load_region
Jean-Philippe Andre [Mon, 18 Sep 2017 12:01:19 +0000 (21:01 +0900)]
evas: Use Eina.Rect for load_region

7 years agoefl: Use Eina.Size2D for image load size
Jean-Philippe Andre [Mon, 18 Sep 2017 11:56:45 +0000 (20:56 +0900)]
efl: Use Eina.Size2D for image load size

7 years agoefl: Use Eina.Size2D for image size
Jean-Philippe Andre [Mon, 18 Sep 2017 11:49:56 +0000 (20:49 +0900)]
efl: Use Eina.Size2D for image size

7 years agoefl: Add precise_position for input events
Jean-Philippe Andre [Mon, 18 Sep 2017 11:42:52 +0000 (20:42 +0900)]
efl: Add precise_position for input events

The previous commit removed useless delta

7 years agoefl: Use Eina.Position2D for input events
Jean-Philippe Andre [Mon, 18 Sep 2017 11:40:53 +0000 (20:40 +0900)]
efl: Use Eina.Position2D for input events

7 years agoefl: Use Eina.Size2D in Gfx.View
Jean-Philippe Andre [Mon, 18 Sep 2017 11:16:33 +0000 (20:16 +0900)]
efl: Use Eina.Size2D in Gfx.View

7 years agoevas: Use Eina.Slice on the stack (gfx.buffer)
Jean-Philippe Andre [Mon, 18 Sep 2017 10:59:11 +0000 (19:59 +0900)]
evas: Use Eina.Slice on the stack (gfx.buffer)

7 years agoevas: Use Eina.Size2D for gfx.buffer
Jean-Philippe Andre [Mon, 18 Sep 2017 10:30:30 +0000 (19:30 +0900)]
evas: Use Eina.Size2D for gfx.buffer

For consistency.

7 years agoevas: Use Eina.Rect for object list functions
Jean-Philippe Andre [Mon, 18 Sep 2017 08:55:50 +0000 (17:55 +0900)]
evas: Use Eina.Rect for object list functions

- objects_at_xy_get
- object_top_at_xy_get
- objects_in_rectangle_get
- object_top_in_rectangle_get

7 years agoefl: Use Eina.Size2D for Efl.Canvas.max_image_size
Jean-Philippe Andre [Mon, 18 Sep 2017 08:49:20 +0000 (17:49 +0900)]
efl: Use Eina.Size2D for Efl.Canvas.max_image_size

Rarely use

7 years agoeo-cxx: Fix test errors with new Eolian @own framework
Felipe Magno de Almeida [Mon, 18 Sep 2017 23:22:32 +0000 (20:22 -0300)]
eo-cxx: Fix test errors with new Eolian @own framework

7 years agoMultibuttonentry: set as clickable
Daniel Zaoui [Mon, 18 Sep 2017 21:19:00 +0000 (00:19 +0300)]
Multibuttonentry: set as clickable

The clicked event is registered internally so the widget should be
considered as a clickable interface.

7 years agoecore: make efl_loop_future_scheduler_get shouldn't be exposed in the object function.
Cedric BAIL [Mon, 18 Sep 2017 20:33:34 +0000 (13:33 -0700)]
ecore: make efl_loop_future_scheduler_get shouldn't be exposed in the object function.

Function declared in a .eo are something that we want to allow people to inherit from
or use in a binding. I can't think of a situation where that would be the case for
this function and it solves at the same time problem of needing a shared interface
for both loop and loop_user.

7 years agobuild: help autoconf find accept4 on illumos
Andre Lupa [Mon, 18 Sep 2017 17:42:17 +0000 (10:42 -0700)]
build: help autoconf find accept4 on illumos

Reviewers: cedric, vtorri, jpeg

Subscribers: jpeg

Tags: #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoefl interface: add Eo API documentation for path and shape interpolation
Bryce Harrington [Mon, 18 Sep 2017 17:41:40 +0000 (10:41 -0700)]
efl interface: add Eo API documentation for path and shape interpolation

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoexamples: document the evas-vg-simple example
Bryce Harrington [Mon, 18 Sep 2017 17:40:46 +0000 (10:40 -0700)]
examples: document the evas-vg-simple example

Summary:
Fill in the intro section and the first test mode.  (Docs for second
mode will be forthcoming.)

Also drop some of the generic comments that are already explained better
in some of the basic examples.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewers: cedric

Subscribers: jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoeina: document matrix3 multiplication routines
Bryce Harrington [Mon, 18 Sep 2017 17:35:38 +0000 (10:35 -0700)]
eina: document matrix3 multiplication routines

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoEntry: use _edje_seat_name_get to get the seat
Daniel Hirt [Mon, 18 Sep 2017 16:37:06 +0000 (19:37 +0300)]
Entry: use _edje_seat_name_get to get the seat

The "default" name doesn't mean a lot to edje. Use the helper function
to get the proper seat name.
This fixes IMF for the Entry widget, that did not get triggered on the
hotkey combination.

@fix

7 years agoEdje load: reset seats counter on file_del
Daniel Hirt [Mon, 18 Sep 2017 16:33:42 +0000 (19:33 +0300)]
Edje load: reset seats counter on file_del

The seats list got emptied, but the counter progression was kept,
causing needless different seat names for the same device across
different edje objects.

7 years agoelm_widget: eval the manager after the logicals are evalulated
Marcel Hollerbach [Mon, 18 Sep 2017 12:23:52 +0000 (14:23 +0200)]
elm_widget: eval the manager after the logicals are evalulated

for the obj is the only child of parent this would have lead to manager
  beeing NULL.

7 years agoelm_widget: also update if visible set is intersected
Marcel Hollerbach [Mon, 18 Sep 2017 12:21:38 +0000 (14:21 +0200)]
elm_widget: also update if visible set is intersected

the error case is when a element is shown, but its parent was not.
In that case intersect returns immidiatly, without evalulating the focus
state again.

7 years agoedje: Fix make check :(
Jean-Philippe Andre [Mon, 18 Sep 2017 08:40:03 +0000 (17:40 +0900)]
edje: Fix make check :(

No idea how I missed that one... (except that make check is now broken
for C++, again)

7 years agoedje: Merge calc_size_min_restricted & calc_size_min
Jean-Philippe Andre [Mon, 18 Sep 2017 08:31:54 +0000 (17:31 +0900)]
edje: Merge calc_size_min_restricted & calc_size_min

calc_size_min was just a helper passing 0,0 to the restricted form.
Let's not duplicate APIs in EO and use an optional argument instead.
Bindings should be nicer and C could use a macro if it's too cumbersome
to pass in 0,0.

7 years agoedje: Use Eina.Size2D for min calc
Jean-Philippe Andre [Mon, 18 Sep 2017 08:19:03 +0000 (17:19 +0900)]
edje: Use Eina.Size2D for min calc

7 years agoedje: Use Eina.Size2D for group min & max size
Jean-Philippe Andre [Mon, 18 Sep 2017 08:01:10 +0000 (17:01 +0900)]
edje: Use Eina.Size2D for group min & max size

7 years agoefl: Use Eina.Size2D for size hint aspect
Jean-Philippe Andre [Mon, 18 Sep 2017 07:44:42 +0000 (16:44 +0900)]
efl: Use Eina.Size2D for size hint aspect

7 years agoefl: Use Eina.Size2D for size hints base & step
Jean-Philippe Andre [Mon, 18 Sep 2017 07:38:47 +0000 (16:38 +0900)]
efl: Use Eina.Size2D for size hints base & step

7 years agoefl: Use Eina.Size2D for size hint combined min
Jean-Philippe Andre [Mon, 18 Sep 2017 07:22:01 +0000 (16:22 +0900)]
efl: Use Eina.Size2D for size hint combined min

For this patch I decided to add a pseudo legacy wrapper as the function
is called in a very large number of places. Fixing all those calls to
use the size2d form is a lot of work and a greater risk of b0rking
something.

7 years agoefl: Use Eina.Size2D for size hint restricted min
Jean-Philippe Andre [Mon, 18 Sep 2017 05:49:08 +0000 (14:49 +0900)]
efl: Use Eina.Size2D for size hint restricted min

This is the "internal" or "intrinsic" minimum size, to be set by EFL and
not by applications.

7 years agoefl: Use Eina.Size2D for size hint min
Jean-Philippe Andre [Mon, 18 Sep 2017 05:35:22 +0000 (14:35 +0900)]
efl: Use Eina.Size2D for size hint min

7 years agoefl: Use Eina.Size2D for size hint max
Jean-Philippe Andre [Mon, 18 Sep 2017 05:07:56 +0000 (14:07 +0900)]
efl: Use Eina.Size2D for size hint max

7 years agogfx: Add comment about visibility
Jean-Philippe Andre [Mon, 18 Sep 2017 04:55:59 +0000 (13:55 +0900)]
gfx: Add comment about visibility

7 years agoefl: Use Eina.Size2D for Efl.Gfx.size
Jean-Philippe Andre [Fri, 15 Sep 2017 09:37:25 +0000 (18:37 +0900)]
efl: Use Eina.Size2D for Efl.Gfx.size

Big patch as a lot of things call or reimplement size_set. Hopefully I
got it right... fingers crossed.

7 years agoefl: Use Eina.Position2D for Efl.Gfx.position
Jean-Philippe Andre [Fri, 15 Sep 2017 03:14:32 +0000 (12:14 +0900)]
efl: Use Eina.Position2D for Efl.Gfx.position

Note: This is a little bit more cumbersome in some places but in most
it's more convenient than (x,y).

7 years agoefl: Introduce Eina.Rect and switch EO APIs to it
Jean-Philippe Andre [Thu, 14 Sep 2017 02:59:44 +0000 (11:59 +0900)]
efl: Introduce Eina.Rect and switch EO APIs to it

It's a complex struct but defined in EO as a simple struct. ABI-wise
it's equivalent to Eina_Rectangle. Some macros that use Eina_Rectangle
also work on Eina_Rect out of the box, most of the code dealing with
x,y,w,h will require no modifications either.

But Eina_Rect provides direct access to a size or position 2d component,
as well as the usual x,y,w,h. The field "rect" is provided as a
convenience for code dealing with both Eina_Rectangle and Eina_Rect. We
may or may not require it.

Note: Size2D could use unsigned values but I have spotted a few places
in the code that actually use -1 to indicate invalid size (as opposed to
0x0).

@feature

7 years agoelm image: Fix async open to avoid multiple mmap
Jean-Philippe Andre [Fri, 15 Sep 2017 05:39:14 +0000 (14:39 +0900)]
elm image: Fix async open to avoid multiple mmap

Reported by @jiin.moon:

In case of async_open for an elm_image, we try and open a file in a
thread, then map it and populate a bit, as this may take some time
(blocking I/O). This creates a mmap with eina_file_map_new. But later
evas image loaders will (usually) try and map the entire file with
eina_file_map_all() which creates another mmap. Since the size is
different (32Kb first then all) the returned map might be different
(it's up to the kernel to decide at this point).

So, in order to avoid having multiple maps on the same file, and try to
reduce the peak memory usage, we should prefer using the same map all
the time, i.e. the global one returned by eina_file_map_all().

This patch relies on the previous patch in eina_file which fixes
eina_file_map_populate() for the global map.

@fix

7 years agoeina file: Ensure populate is safe to call
Jean-Philippe Andre [Fri, 15 Sep 2017 06:56:17 +0000 (15:56 +0900)]
eina file: Ensure populate is safe to call

This makes sure that the call to madvise is safe. On Linux it's not too
much of an issue as checks are made inside madvise, and the worst that
can happen is an error is returned (EINVAL). Not great.

But if MAP_POPULATE is not present, as is the case on *BSD, then the
internal function _eina_file_map_populate() is used for the populate
rule. In that case actual data is read and we should make sure not to
trigger a segfault or bus error.

Also, this makes sure that in case of HugeTLB we actually populate all
pages, rather than one page out of 8 (we were jumping by 16Mb instead of
2Mb).

Note: Can we get the size of a HugeTLB at runtime? We're assuming 2Mb
which might very well not be the case!
See: https://wiki.debian.org/Hugepages

Tested by disabling MAP_POPULATE and observing crashes :)

@fix

7 years agoeina file: Fix map_populate on the global map
Jean-Philippe Andre [Fri, 15 Sep 2017 05:38:29 +0000 (14:38 +0900)]
eina file: Fix map_populate on the global map

If eina_file_map_all() is called, the map isn't added to the internal
hash "rmap" and so _eina_file_map_rule_apply() would never be called.

@fix

asa

7 years agoflip: Fix invalid use of EOAPI in legacy header
Jean-Philippe Andre [Thu, 14 Sep 2017 05:47:33 +0000 (14:47 +0900)]
flip: Fix invalid use of EOAPI in legacy header

This compiled fine with GCC but not with TCC.

@fix

7 years agointv slider: use scope_get instead
Amitesh Singh [Mon, 18 Sep 2017 01:39:17 +0000 (10:39 +0900)]
intv slider: use scope_get instead

its better to use efl_data_scope_get() in eolian
functions except in finalize().

7 years agoector: move gradient color computation to a pool of thread.
Cedric Bail [Sun, 17 Sep 2017 18:46:09 +0000 (11:46 -0700)]
ector: move gradient color computation to a pool of thread.

This has been a long standing plan for improving performance in rendering
vector object. If your test involve updating gradient, you will get another
speedup of around 15%. Combined with previous shape, we get a 65% improvement
with doing the CPU intensive computation in there own thread before the
rendering kickoff. This was motly theorical until now, but well, it works
great !

7 years agoector: move RLE shape/stroke computation to a pool of thread.
Cedric Bail [Sun, 17 Sep 2017 06:23:36 +0000 (23:23 -0700)]
ector: move RLE shape/stroke computation to a pool of thread.

This has been a long standing plan for improving performance in rendering
vector object. Depending on the test, you will get an improvement between
10 to 35% when rendering vector based object.

We are still maintaining the Cairo backend as the default one at the moment
due to a lack of result comparison tests between the two engine. Hopefully
we should get that covered and we can all enjoy a backend that is 4 times
faster by default.

7 years agoector: avoid calling function pointer when it is unecessary.
Cedric Bail [Sun, 17 Sep 2017 06:19:35 +0000 (23:19 -0700)]
ector: avoid calling function pointer when it is unecessary.

7 years agoector: add ability to run task in another thread during preparation stage.
Cedric Bail [Sun, 17 Sep 2017 00:43:18 +0000 (17:43 -0700)]
ector: add ability to run task in another thread during preparation stage.

7 years agoefl net http - fix protocol error handling to not crash and handle it
Carsten Haitzler (Rasterman) [Sun, 17 Sep 2017 09:14:37 +0000 (18:14 +0900)]
efl net http - fix protocol error handling to not crash and handle it

if http server doesnt send even a valid http response and just closes
your conenction... dont segv with null pd->cm

@fix

7 years agoeo-cxx: Fix assignment operator for eo::concrete
Felipe Magno de Almeida [Sun, 17 Sep 2017 09:15:26 +0000 (06:15 -0300)]
eo-cxx: Fix assignment operator for eo::concrete

7 years agoTests/datetime: set the weekday to avoid Exactness error
Daniel Zaoui [Sat, 16 Sep 2017 20:37:36 +0000 (23:37 +0300)]
Tests/datetime: set the weekday to avoid Exactness error

The weekday, if not set, is the weekday of the day the test is run (i.e
today).
It means Exactness shots will be different most of the time.

7 years agoeina: prevent memory corruption in chained mempool
Jean Guyomarc'h [Sat, 16 Sep 2017 12:20:11 +0000 (14:20 +0200)]
eina: prevent memory corruption in chained mempool

The chained mempool uses eina trash to dispose and retrieve memory
blobs. Problem is that eina trash requires the memory blobs to be at
least of the size of a pointer. If the size of an element in the mempool
is less than the size of a pointer, which _is_ possible as no minimal
size is enforced, eina_trash will silently corrupt the memory pool.

To prevent memory corruption while still allowing small elements, the
size of an element defaults to the size of a pointer if it was smaller.
This comes at the cost of consuming slightly more memory in these cases,
but at least the memory pool can be safely be used.

@fix

7 years agoeo: fix doxygen typo
Jean Guyomarc'h [Sat, 16 Sep 2017 12:18:46 +0000 (14:18 +0200)]
eo: fix doxygen typo

7 years agoeina: handle errors when creating a mempool
Jean Guyomarc'h [Sat, 16 Sep 2017 12:17:25 +0000 (14:17 +0200)]
eina: handle errors when creating a mempool

If the backend initialization failed, the mempool would still be
successfully created. The mempool is now destroyed on failure.

7 years agoeo-cxx: Fix possible non-initialization in copy-constructor and move-constructor
Felipe Magno de Almeida [Fri, 15 Sep 2017 18:16:58 +0000 (15:16 -0300)]
eo-cxx: Fix possible non-initialization in copy-constructor and move-constructor

7 years agoeo-cxx: Fix conversion from char* to std::string
Felipe Magno de Almeida [Fri, 15 Sep 2017 17:53:19 +0000 (14:53 -0300)]
eo-cxx: Fix conversion from char* to std::string

7 years agoEdje external tests: fix some texts
Dave Andreoli [Fri, 15 Sep 2017 17:37:54 +0000 (19:37 +0200)]
Edje external tests: fix some texts

The bugs mentioned are now fixed

7 years agoeolian: remove old ownership system
Daniel Kolesa [Fri, 15 Sep 2017 15:52:55 +0000 (17:52 +0200)]
eolian: remove old ownership system

7 years agoelua: update for new eolian ownership system
Daniel Kolesa [Fri, 15 Sep 2017 15:52:38 +0000 (17:52 +0200)]
elua: update for new eolian ownership system

7 years agoeolian: correctness fixes in tests and eo files
Daniel Kolesa [Fri, 15 Sep 2017 15:48:28 +0000 (17:48 +0200)]
eolian: correctness fixes in tests and eo files

7 years agoeolian cxx/js: fix test eo file ownership
Daniel Kolesa [Fri, 15 Sep 2017 15:10:41 +0000 (17:10 +0200)]
eolian cxx/js: fix test eo file ownership

7 years agoelementary: convert to new ownership
Daniel Kolesa [Fri, 15 Sep 2017 15:05:30 +0000 (17:05 +0200)]
elementary: convert to new ownership