Daniel Kolesa [Fri, 22 Sep 2017 15:46:02 +0000 (17:46 +0200)]
eolian: merge REGULAR and COMPLEX types
Daniel Kolesa [Fri, 22 Sep 2017 15:10:42 +0000 (17:10 +0200)]
eolian: add mstring
This is a new type representing a mutable string (no const).
Regular strings cannot be made mutable with @owned because
they might be hidden behind typedefs.
Daniel Kolesa [Fri, 22 Sep 2017 14:08:56 +0000 (16:08 +0200)]
eo: make more freefuncs implicit
Mike Blumenkrantz [Fri, 22 Sep 2017 13:54:37 +0000 (09:54 -0400)]
ecore-x: reject successive MappingNotify events if they are identical
in some cases loading an xmodmap on enlightenment startup can trigger an infinite
number of identical events which hard locks the xserver for a very, very long time
@fix
Vincent 'vtorri' Torri [Fri, 22 Sep 2017 10:06:10 +0000 (05:06 -0500)]
EFL For WIN32: Replace HAVE_EVIL define with _WIN32
Lauro Moura [Fri, 22 Sep 2017 07:57:06 +0000 (09:57 +0200)]
ecore: Avoid using newer check.h functions.
Summary:
The ptr_null/nonnull were added in the 0.11 version of libcheck. The
required version in configure.ac is 0.9.10 (some distros still use this
old one).
Reviewers: felipealmeida, stefan_schmidt
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5220
Andy Williams [Thu, 21 Sep 2017 11:24:51 +0000 (12:24 +0100)]
elm_code: respect event hold for key_down
Jean-Philippe Andre [Thu, 21 Sep 2017 03:25:02 +0000 (12:25 +0900)]
layout: Fix slider label using proper part type
This relies on the new edje API that gives us the exact type of a part.
This fixes the shortcomings of edje_edit_part_type_get() and returns a
proper Text part type for efl_part(slider, "elm.units.max").
See previous commits:
"edje: Add part_type_get API"
"elm: Split off text and content for efl_part"
Jean-Philippe Andre [Thu, 21 Sep 2017 03:23:29 +0000 (12:23 +0900)]
edje: Add part_type_get API
For now I made this EO-only but this definitely could be expose in
legacy API as well.
This simply gives exact information about the type of part, after doing
a recursive search. Edit Edit doesn't do a recursive search, only a
direct one, which can yield invalid results (eg. RECT or NONE instead of
TEXT in case of "elm.units.max" for a slider).
@feature
Jean-Philippe Andre [Wed, 20 Sep 2017 09:05:03 +0000 (18:05 +0900)]
hover: Fix hover parts usage
The string comparison was invalid for full part names. It worked with
the aliases, by chance, not by design.
This got broken by
eee60abbcf but using full part names from the
application side was already broken before that.
@fix
Jean-Philippe Andre [Wed, 20 Sep 2017 06:44:37 +0000 (15:44 +0900)]
elm: Remove eo.h header from Makefile
Fixes make distcheck
Jean-Philippe Andre [Wed, 20 Sep 2017 06:16:12 +0000 (15:16 +0900)]
elm: Resolve part alias in legacy APIs only
This fixes make check.
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.
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.
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.
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
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
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>
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
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.
Daniel Hirt [Tue, 19 Sep 2017 16:36:43 +0000 (19:36 +0300)]
Edje: move selection-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
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>
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>
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>
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>
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>
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
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
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.
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
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
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
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
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
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
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
Jean-Philippe Andre [Tue, 19 Sep 2017 07:46:22 +0000 (16:46 +0900)]
eldbus: Fix test case (make check)
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
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.
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.
Carsten Haitzler (Rasterman) [Tue, 19 Sep 2017 07:16:44 +0000 (16:16 +0900)]
update PO files from src...
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
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.
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
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
Jean-Philippe Andre [Tue, 19 Sep 2017 02:57:22 +0000 (11:57 +0900)]
evas: Remove remnants from EO 1 internal API
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
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
Jean-Philippe Andre [Mon, 18 Sep 2017 13:29:20 +0000 (22:29 +0900)]
text: Remove unused EO structs
Bad copy & paste?
Jean-Philippe Andre [Mon, 18 Sep 2017 13:02:16 +0000 (22:02 +0900)]
polygon: Use Eina.Position2D for point_add
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.
Jean-Philippe Andre [Mon, 18 Sep 2017 12:13:19 +0000 (21:13 +0900)]
photocam: Use Eina.Rect for image_region
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...
Jean-Philippe Andre [Mon, 18 Sep 2017 12:01:19 +0000 (21:01 +0900)]
evas: Use Eina.Rect for load_region
Jean-Philippe Andre [Mon, 18 Sep 2017 11:56:45 +0000 (20:56 +0900)]
efl: Use Eina.Size2D for image load size
Jean-Philippe Andre [Mon, 18 Sep 2017 11:49:56 +0000 (20:49 +0900)]
efl: Use Eina.Size2D for image size
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
Jean-Philippe Andre [Mon, 18 Sep 2017 11:40:53 +0000 (20:40 +0900)]
efl: Use Eina.Position2D for input events
Jean-Philippe Andre [Mon, 18 Sep 2017 11:16:33 +0000 (20:16 +0900)]
efl: Use Eina.Size2D in Gfx.View
Jean-Philippe Andre [Mon, 18 Sep 2017 10:59:11 +0000 (19:59 +0900)]
evas: Use Eina.Slice on the stack (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.
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
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
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
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.
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.
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>
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>
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>
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>
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
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.
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.
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.
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)
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.
Jean-Philippe Andre [Mon, 18 Sep 2017 08:19:03 +0000 (17:19 +0900)]
edje: Use Eina.Size2D for min calc
Jean-Philippe Andre [Mon, 18 Sep 2017 08:01:10 +0000 (17:01 +0900)]
edje: Use Eina.Size2D for group min & max size
Jean-Philippe Andre [Mon, 18 Sep 2017 07:44:42 +0000 (16:44 +0900)]
efl: Use Eina.Size2D for size hint aspect
Jean-Philippe Andre [Mon, 18 Sep 2017 07:38:47 +0000 (16:38 +0900)]
efl: Use Eina.Size2D for size hints base & step
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.
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.
Jean-Philippe Andre [Mon, 18 Sep 2017 05:35:22 +0000 (14:35 +0900)]
efl: Use Eina.Size2D for size hint min
Jean-Philippe Andre [Mon, 18 Sep 2017 05:07:56 +0000 (14:07 +0900)]
efl: Use Eina.Size2D for size hint max
Jean-Philippe Andre [Mon, 18 Sep 2017 04:55:59 +0000 (13:55 +0900)]
gfx: Add comment about visibility
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.
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).
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
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
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
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
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
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().
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 !
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.
Cedric Bail [Sun, 17 Sep 2017 06:19:35 +0000 (23:19 -0700)]
ector: avoid calling function pointer when it is unecessary.
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.
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
Felipe Magno de Almeida [Sun, 17 Sep 2017 09:15:26 +0000 (06:15 -0300)]
eo-cxx: Fix assignment operator for eo::concrete