Commit Graph

21621 Commits

Author SHA1 Message Date
Derek Foreman fe41727bc3 wayland_shm: cosmetic code simplification
We already have this value in a temp, so use it.
2017-11-10 13:43:45 -06:00
Derek Foreman 77212021f3 waylamd_shm: Use ecore_wl2_window_damage
The new library function provides the same functionality and will allow
us to stop tracking things in the engine that the library already knows
about windows (compositor_version)
2017-11-10 13:43:45 -06:00
Derek Foreman abba80f3d6 ecore_wl2: Add API for adding damage to a window
This was done in the engine previously, but would be better as a library
function.
2017-11-10 13:43:45 -06:00
Daniel Kolesa f19a905261 eolian: fix generation tests 2017-11-10 19:43:25 +01:00
Daniel Hirt ef3d2120bf Edje: use textblock by default
As most of you know, TEXT part was, up to this point, an Evas.Text
object.

This patch merges TEXT and TEXTBLOCK both to use Efl.Canvas.Text.
Code is added to emulate what TEXT did that TEXTBLOCK did not.

I believe we can move forward with TEXT, and deperacate TEXTBLOCK from
the EDC. You can also set markup to TEXT parts.

Exactness seems to show some differences, but further examination shows
that it's due to difference in how width is calculated in
Efl.Canvas.Text. The results seem correct.

Be sure to report of any breakage via Phabricator or contact me
directly.
I am running E with this and did not stumble upon any crashes or visual
bugs.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-11-10 10:30:09 -08:00
Daniel Hirt c7b2372ffb Edje: move textblock handling to a separate source
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-11-10 10:30:04 -08:00
Daniel Hirt 58ce1d654b Canvas text: change halign/valign to use doubles
There are use cases where you would want to align by a value.

The wordy alignment values are thus removed.
This commit also separates auto-modes (none, normal, locale) for
horizontal alignment to its own API.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-11-10 10:30:00 -08:00
Daniel Hirt 941fe1ffbd Canvas text: adjust bottom padding at edge of text
Now the edges include both the top AND bottom paddings.
Also fixes vertical alignment.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-11-10 10:29:53 -08:00
Daniel Hirt 45d3614345 Canvas text: fix width calculation with style effects
There are multiple places in the code where both the padded item's
width and the maximum style padding (at the edges) are accounted for.
For the sake of making calculations for wrapping/ellipsis we should
only use the maximum style padding.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-11-10 10:29:49 -08:00
Daniel Hirt 0725ff620b Canvas text: update style pad when no format nodes are present
This updates the style pad even if there are no format nodes.
An example of this is having a default style set to the object.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-11-10 10:29:44 -08:00
Daniel Hirt 20ecea1615 Canvas text: fix applying effects
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-11-10 10:29:39 -08:00
Daniel Hirt a80209a59e Canvas text: favor font name parsing over set properties
Since font names can also specify styles like weight, width etc, we
should parse the font name AFTER setting the respective properties to
the font description, so it can override some if required.

This allows, for example, the following operation:

efl_text_font_weight_set(obj, EFL_TEXT_FONT_WEIGHT_NORMAL);
efl_text_font_set(obj, "Sans:Bold");

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-11-10 10:29:27 -08:00
Derek Foreman cf345cff74 wayland_shm: Respect the alpha
The dmabuf code has been creating ARGB buffers all the time.  The old
wl_shm code correctly respected the alpha field, but that was lost in
the new version.

I'm not sure we ever create non-alpha wayland buffers, since CSD has
to have alpha to do shadows, but if there's any way to do it it'll
work now.
2017-11-10 09:55:58 -06:00
Daniel Kolesa 753359230a eolian: more intuitive generation options and mrge impls into .c
Previously the output base name used to include extension, now
you don't need to specify an extension and it's determined from
the input file name instead.

Also, implementation boilerplate used to merge with .eo.c before,
which made no sense. Now it's merged with .c instead when it
exists or makes a new .c file when it doesn't.
2017-11-10 14:48:59 +01:00
Jeeyong Um 7c0f1fdd34 edje_cc: Extract function to build stack ending with wildcard 2017-11-10 12:59:55 +09:00
Jean-Philippe Andre 247d25aa99 cxx: Fix example for GCC
clang has no problem, but GCC complains with "support not implemented"
Discovered with distcheck
2017-11-10 12:20:27 +09:00
subhransu mohanty 41062cb15d evas/vg: use surface cache for efl vg canvas 2017-11-10 11:20:38 +09:00
subhransu mohanty f0b8c37d80 evas/vg: refactor ector engine api and backend . 2017-11-10 11:20:38 +09:00
subhransu mohanty befb7701a7 evas/engine: added new engine api for ector 2017-11-10 11:20:38 +09:00
subhransu mohanty aacf277c3a evas/vg: added support for engine surface cache. 2017-11-10 11:20:38 +09:00
subhransu mohanty d4a2b2025b evas/common: added a generic cache in evas common. 2017-11-10 11:20:38 +09:00
subhransu mohanty 76e75dc105 ector: move gradient generation api to draw library for reuse. 2017-11-10 11:20:38 +09:00
subhransu mohanty 5f9c54a1b2 triangulator:Added stroke_set api to the triangulator_stroker. 2017-11-10 11:20:38 +09:00
Cedric Bail 3b7607d7f6 ecore_evas: improve ecore_evas fallback animator logic for legacy case.
In Enlightenment with internal window being WL window connected to the
X11 backend, you end up with the later requiring the former to tick, even
if the former do not have a proper animator source. To work around the
problem when there is one backend that is not providing support for
animator source, we do need to avoid switching on another window source
as they could be linked somehow and we can not know.
2017-11-09 18:07:31 -08:00
Cedric Bail fee2b1beb4 ecore_con: add support for EFL_MAIN with ecore_con support. 2017-11-09 15:25:51 -08:00
Cedric Bail bd83a76393 ecore: move EFL_MAIN to Efl_Core.h
This make EFL_MAIN available and working with just Ecore. For simplicity
it is available with Efl_Core.h. Ideally it should also work with Efl_Net.h
alone and finally with an Efl_Ui.h.

T6262
2017-11-09 15:13:37 -08:00
Cedric Bail 66c46f0528 elementary: allow efl_general.h to be included multiple time. 2017-11-09 15:13:37 -08:00
Cedric Bail 4d41f95106 elementary: make elm_init and elm_shutdown optional in EFL_MAIN. 2017-11-09 15:13:37 -08:00
Derek Foreman ba2abb2eb9 wayland_shm: Don't require dmabuf support to use wl_shm
Unintended side effect of my merging of the two code paths.  We should
still try to use wl_shm if we can't use dmabuf here.
2017-11-09 16:08:30 -06:00
Derek Foreman 132a77c682 ecore_wl2: Discard too-old dmabuf support
We need at least version 2 for create_immed, so don't even bind the
global if it's useless to us.

This will also stop us from trying to use dmabuf (and getting killed by
the compositor) on older compositors that don't support the version we
need - we'll just use wl_shm instead when this pointer is NULL.
2017-11-09 16:06:42 -06:00
Derek Foreman 51da93da28 efl_wl: Add missing @since to new functions
These ones were introduced for 1.21.
2017-11-09 12:41:22 -06:00
Carsten Haitzler 1e83d963d9 elput - ref device that is in the event queue 2017-11-09 11:42:29 +09:00
Amitesh Singh 6c444bebcb Efl.Ui.Slider: fix documentations 2017-11-09 11:02:29 +09:00
Al Poole e63e2d7e21 elm_code_widget: keep track of visibility.
Keep track of visibility and ensure the cursor can never be
filled when hidden. This should finally end any issue with the
cursor and visibility with the new focus system. Didn't see this
previously until working on Edi's bottom panes which caused redraw
on resize of the widgets.

@fix
2017-11-09 00:55:36 +00:00
Derek Foreman c2fe37a46d wayland_shm: Remove old shm code
The new shm code should be equally capable - minus one surface resize
optimization that probably didn't buy us much performance at the cost
of memory.
2017-11-08 15:12:51 -06:00
Derek Foreman a5c7fbd006 wayland_shm: Return oldest buffer for new renders
This is what the old shm code has been doing, and it's probably better
than what the dmabuf code was doing.

We currently allocate 3 buffers.  The usual case has us swapping between
two of those buffers and saving that third buffer for emergencies - if
we ever need that third buffer it'll require a full redraw.

If we return the oldest available buffer the usual case requires a little
more damage but we should never hit the full redraw case, which can cause
a frame drop on slow hardware.
2017-11-08 15:12:51 -06:00
Derek Foreman 4adf87ae91 wayland_shm: Simplify surface commits
We no longer have the concept of a "pre" buffer (allocated but not yet
registered as a wayland buffer)
2017-11-08 15:12:51 -06:00
Derek Foreman b5674b7885 wayland_shm: Remove useless function
This serves no purpose anymore.
2017-11-08 15:12:51 -06:00
Derek Foreman 566c3f328a wayland_shm: Remove dmabuf fallback
Now that we're dependent on create_immed there's no possibility of falling
back to non dmabuf allocation.

The only failing case we really need to handle is failing the first
allocation, which is currently broken and I'll be adding an advance test
for it shortly.
2017-11-08 15:12:51 -06:00
Derek Foreman 73bddb4471 wayland_shm: Make EVAS_WAYLAND_SHM_DISABLE_DMABUF use new code
Use the new wl_shm allocation functions making the old wl_shm code
unreachable even with the use of the disable env var.
2017-11-08 15:12:51 -06:00
Derek Foreman c54a12aca6 wayland_shm: Add wl_shm to dmabuf
wl_shm and dmabuf only really need to differ in how they allocate a buffer,
but right now we've got them in separate files.  This dramatically
reduces the complexity of the wl_shm code and shares much more
implementation with the dmabuf code.

This throws away at least one "optimization" wl_shm used - over-allocating
buffers so that window resizing doesn't always require a new buffer
allocation.  If people feel that window resizing has become too slow now
this can be added to the dmabuf code to the benefit of both allocators.

Disabling dmabuf by env var still uses the old wl_shm implementation for
now, but soon that code will be removed entirely and the env var disable
will use this path.
2017-11-08 15:12:47 -06:00
Derek Foreman d346ac7b2e wayland_shm: Track size of buffer 2017-11-08 15:12:44 -06:00
Derek Foreman 381bb0e798 wayland_shm: move buffer release callback to top of file
Code motion with no functional changes.
2017-11-08 15:12:42 -06:00
Derek Foreman ef1279465f wayland_shm: make creating a wayland buffer back end specific
This way we can have shm and dmabuf share the same framework.
2017-11-08 15:12:37 -06:00
Derek Foreman 7e1805ada1 wayland_shm: Factor out wl_buffer creation code 2017-11-08 15:12:34 -06:00
Mike Blumenkrantz e99183c33b quicklaunch: add support for quicklaunch domains
this allows quicklaunch to be used independently of the DISPLAY value
2017-11-08 11:48:39 -05:00
Daniel Kolesa 70ee11af84 eolian: enable cyclic imports of eo files 2017-11-08 16:46:14 +01:00
Daniel Kolesa 5c2611d93a eolian: simplify dependency parsing and cut down on hash lookups 2017-11-08 16:12:40 +01:00
Carsten Haitzler 7a7abb043a elput - re-enable switches (power buttons, lid etc.)
this is needed for devices that no longer produce aspi events for
these. otherwise good luck getting any event on lid open/close or on
pressing the power button. this also stops hiding switch events from
libinput and now you can get switch events to find lid or tablet mode
switching changes.

@fix
2017-11-08 20:37:50 +09:00
Jean-Philippe Andre 10b6eb627a edje: Oops. Remove edje_global include as well. 2017-11-08 20:16:28 +09:00
Jean-Philippe Andre cc1ed7183c edje: Hide edje_global from the rest of the world
Call provider_find on the loop (or basically any object) with the
color/text/size class interface instead, to find it. The main loop is
the main holder of those objects.

Note: This makes use of provider_find instead of direct access to the
variable, in order to self-test the code. In theory release builds will
not do this and user directly the variable.
2017-11-08 20:02:31 +09:00
Jee-Yong Um 2f838acd4e Efl: add class interfaces (color/text/size)
Summary: implement Efl.Gfx.Class interface

Reviewers: jpeg, cedric

Subscribers: taxi2se, herdsman

Differential Revision: https://phab.enlightenment.org/D4403
2017-11-08 19:17:59 +09:00
Andy Williams d5dbcdabd1 eo: Rename efl_ref_get to efl_ref_count 2017-11-08 09:30:42 +00:00
Carsten Haitzler 2a5267d416 unbreak efl so e works again.... after cedric
we cant go iterating the mainloop before the current point. if someone
set up handlers but hasnt configured the things those handles use yet
as they dont expect them to be used until the mainloop is started...
thenthings break. we cant change this assumption without breaking
things.
2017-11-08 16:32:52 +09:00
Jean-Philippe Andre c308498a9d win: Fix alpha windows
Fixes T6334
2017-11-08 16:17:29 +09:00
subhransu mohanty 8952c3e524 evas/vg: changed the efl_vg_dup api signature.
Reviewers: jpeg, cedric

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5440
2017-11-08 15:55:52 +09:00
Jean-Philippe Andre 75a65ad41a tests: Properly define access beta/protected
This solves warnings (and likely errors) in the make check test cases
for ATSPI, since most of efl_access APIs are now marked as beta.
2017-11-08 15:28:35 +09:00
Bryce Harrington 50fba34e6c eina: Fix spelling/punctuation errors in documentation (prefix..promise)
Reviewers: cedric, ajwillia.ms

Subscribers: jpeg, segfaultxavi

Differential Revision: https://phab.enlightenment.org/D5438
2017-11-08 15:20:34 +09:00
Pawel Aksiutowicz e2ad1469a5 focus: Some typos for efl_ui_focus_manager fixed
Reviewers: stanluk, lukasz.stanislawski

Subscribers: lukasz.stanislawski, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5433
2017-11-08 15:16:04 +09:00
Carsten Haitzler a3b1b5d540 efl - fix build after cedric breakage
25b6a280c0 broke the build...
specifically building AGAINST efl.
2017-11-08 15:05:11 +09:00
Cedric BAIL 50cc85f426 elementary: fix quicklaunch support. 2017-11-07 16:08:39 -08:00
Cedric BAIL e32dd07c9d elementary: refactor and clean efl_quicklaunch_prepare. 2017-11-07 16:08:39 -08:00
Cedric BAIL d171cf9639 elementary: fix ELM_MAIN macro to properly expose symbol. 2017-11-07 16:08:39 -08:00
Cedric BAIL 4f70a29580 elementary: add debugging information to quicklaunch binary. 2017-11-07 16:08:39 -08:00
Cedric BAIL e729d6b994 elementary: use efl_exit to leave the mainloop instead of direct use of exit. 2017-11-07 16:08:39 -08:00
Cedric BAIL fa3e1dc784 evas: rely on ecore to reset evas rendering thread on fork. 2017-11-07 16:08:39 -08:00
Cedric BAIL d125892601 evas: rely on ecore to reset upscaler thread on fork. 2017-11-07 16:08:39 -08:00
Cedric BAIL 73e6404b1a evas: rely on ecore to reset ecore_pipe for evas_async_events.
Ecore being a dependency of evas, let's make our life easier and
rely on ecore to tell us when to reset pipe due to a fork instead
of trying to guess.
2017-11-07 16:08:39 -08:00
Cedric BAIL ee65414ef6 ecore: introduce ecore_init_ex/ecore_shutdown_ex to propagate argc,argv properly. 2017-11-07 16:08:39 -08:00
Cedric BAIL 3d72cb8da3 ecore: report startup time of the main loop with EFL_FIRST_LOOP environment variable. 2017-11-07 16:08:39 -08:00
Cedric BAIL dd40079185 ecore,elementary: move startup time accounting in ecore. 2017-11-07 16:08:39 -08:00
Cedric BAIL 25b6a280c0 elementary: move Efl new general purpose API to efl_general.h 2017-11-07 16:08:39 -08:00
Carsten Haitzler ede0587887 efl net - handle proxy helper fails better and abort proxy lookups
if proxy fails are too many then give up on queued lookups as they
likely will continue. i noticed a process continually spawning efl net
proxy helper because one queued lookup failed and could be looked up
so it kept trying again and again.

@fix
2017-11-07 22:42:49 +09:00
Jean-Philippe Andre a0dc0eb516 cxx: Fix slider example
The fix is not complete. We need to make efl_part() work nicely in C++:
 - Get the refs work properly (maybe without auto-del)
 - Generate the parts from the EO file as methods on the object

Final form should be close to:
  slider.indicator().format_string_set("%1.2f");

Where everything autocompletes nicely :)
2017-11-07 22:21:13 +09:00
Jean-Philippe Andre 528dfce251 slider: Export the part class
It needs to be exposed for things like c++ and others to work.
2017-11-07 22:17:04 +09:00
Jean-Philippe Andre 8aeccdb7a1 slider: Advertise indicator part in the EO file
There are 3 other indicator APIs that aren't in the part class... why?
2017-11-07 22:00:43 +09:00
Jean-Philippe Andre 0076f54112 evas: Yet another OSX build fix...
Please tell me this is the last one
2017-11-07 21:53:45 +09:00
Lauro Moura 7ab444acbc example: Add elocation to elm build
Summary:
9d2dcd92 requires elocation to build.

cxx examples still broken due to elm cleanup

Test Plan: make examples

Reviewers: jpeg, felipealmeida

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5426
2017-11-07 21:49:26 +09:00
Sungtaek Hong 439fbe4bcb efl_ui_radio: keep radio state when theme is changed
Summary:
during elm_widget_theme_apply() state was set to off when state is on.
@fix

Test Plan: change locale/theme when a radio is on.

Reviewers: jpeg, cedric, woohyun

Differential Revision: https://phab.enlightenment.org/D5432
2017-11-07 21:08:40 +09:00
Jean-Philippe Andre 12fa8caec5 evas: Another attempt at fixing OSX build
Build failed with LKI not found, as a symbol, but it's a macro.
Copy & pasted from evas_common_private.h
How can this work on one platform and not another? I don't get it...
2017-11-07 20:18:52 +09:00
Bryce Harrington 70f7f88eab eina: Fix spelling errors in documentation (matrixsparse..module)
Reviewers: cedric, ajwillia.ms

Subscribers: segfaultxavi, jpeg

Differential Revision: https://phab.enlightenment.org/D5425
2017-11-07 09:03:57 +00:00
Carsten Haitzler 3790c4d47a eina freeq - make it clear that content is invalid on submission
and that the free function cannot access content of the pointer
(unless the pointer memory size is 0).
2017-11-07 17:36:57 +09:00
Carsten Haitzler eb67a08c8d eo - fix freeq usage to not use freeq for a vtable cleaning
the freeq can't allow things to access the content of the pointer
because the content canbe written over by canary handling qhen
submitted to the freeq. clear it inline then just submit the final
pointer to the freeq.

@fix
2017-11-07 17:36:57 +09:00
Carsten Haitzler 784411800b elm win - note need for other display system code... 2017-11-07 17:36:57 +09:00
Amitesh Singh d6c9b37925 Efl.Ui.Slider: implement Slider.part & Ui.format functions
indicator_format_set/get & indicator_format_function_set are
now legacy APIs.
indicator format can be set by using generic Ui.Format function
e.g.
efl_ui_format_string_set(efl_part(sliderObj, "indicator"), "1.0%f");
2017-11-07 17:13:44 +09:00
Jean-Philippe Andre 80b0ef7537 elm: Fix make check (code_widget)
elm_code_widget is causing a lot of trouble as it's relying on internal
access to elementary, without being built as part of elementary.so. Many
EAPI symbols are exported that shouldn't need to be, as they are only
internals of elm.
2017-11-07 14:59:01 +09:00
Jean-Philippe Andre a438e9382c evas: Fix make check
Because of this I couldn't test my previous patches properly and now
realized that I also broke make check... >_<

See D5419
2017-11-07 14:57:14 +09:00
Jean-Philippe Andre 6ecf3fd6b7 elm: Fix ui.win "bg" test case
elm_colorselector is legacy only (for now, unfortunately).
This means that elm_colorselector_class_get() crashes with weak linking.
Strong linking would make the compilation fail.
2017-11-07 14:52:48 +09:00
Jean-Philippe Andre d39bbc1491 elm: Create legacy widgets with elm_legacy_add
This will be used to solve issues around style_set:
if the widget is legacy or pure eo we may need to select a different
style. So in the constructor we need to know whether we are legacy or
eo. Note that calling style_set in finalize only is too late as we would
lose information such as efl_text_set() called inside efl_add().
2017-11-07 14:50:31 +09:00
Jean-Philippe Andre 6cea4993e0 elm: Don't do anything before construction
Obviously ui.win is still the ugly exception.
2017-11-07 14:43:22 +09:00
Jean-Philippe Andre ee90f72a76 elm: Call efl_access_type_set after construction
I don't think it is necessary to call this before construction, and that
could instead lead to issues. It's just weird overall.
2017-11-07 14:43:22 +09:00
Carsten Haitzler 6a47c2243e efl ui win - make win centering work with multiple screens
this should fix T6323
@fix
2017-11-07 13:53:27 +09:00
Vitalii Vorobiov ee93543799 evas_vg_load_svg: get rid of static Evas_SVG_Parsing
Summary:
Refactoring.
It is good to store values from that struct in a parsing/loading context

static variable is a big NO NO:
1. Ugly code design,
2. Might not work when trying to load more than one SVG file.

@fix

Reviewers: jpeg, smohanty

Subscribers: jenkins, cedric

Differential Revision: https://phab.enlightenment.org/D5399
2017-11-07 11:54:09 +09:00
Vitalii Vorobiov 66e0caccb7 evas_vg_load_svg: default stop opacity color should be 255, not 0
@fix
2017-11-07 11:54:09 +09:00
Vitalii Vorobiov d98e2323ad vg_common: property apply "objectBoundingBox" morphings to radial gradient
When objectBoundingBox flag is set up, all gradients should morphed into
multiple gradients for every entity that has gradient to be applied on
2017-11-07 11:54:09 +09:00
Vitalii Vorobiov 6bf5d9d96e svg_parse: parse correct values for radialGradient
Especially Radius calculation which was a huge pain to find formula
within SVG documentations!
2017-11-07 11:54:09 +09:00
Vitalii Vorobiov f81f031ceb vg_common: apply related coordinates for linear gradient
multiply it with object size or with view box sizes depending on
gradientUnits value
2017-11-07 11:54:09 +09:00
Vitalii Vorobiov 405e56ac55 svg_parse: parse linear gradient variables accroding to gradientUnits
There are difficult cases according to
https://www.w3.org/TR/2000/CR-SVG-20000802/pservers.html
2017-11-07 11:54:09 +09:00
Vitalii Vorobiov 6139aa78d5 svg_parse: implement <length> parse
Accodring to https://www.w3.org/TR/SVG/types.html#Length
length ::= number ("em" | "ex" | "px" | "in" | "cm" | "mm" | "pt" | "pc" | "%")
This is still work in progress since some of lengths should be treated
differently, for example gradient lengths
2017-11-07 11:54:09 +09:00
Vitalii Vorobiov 1354c1c8ab svg_parse: save global size variable to use when gradient size recalc
For example while userSpaceOnUse it uses not figure's x,y,w,h
but entire canvas, so we need to save it publically and recalc while
parsing (or after)
2017-11-07 11:54:09 +09:00