Commit Graph

51712 Commits

Author SHA1 Message Date
Jean-Philippe Andre a07877bd57 elm: Add a test case for evas masking
This tests masks of masks in a genlist, with maybe a map.
Nothing crazy.
2016-12-16 19:18:29 +09:00
Jean-Philippe Andre 584e17ae84 elm_layout: Implement Efl.Text
This implements support for efl_text_set() for the default
part (NULL). This also adds support for efl_text_set(efl_part())
for layouts. This should cover a LOT of widgets :)

The next step is to remove Elm.Layout.text but it's used in too
many places at the moment. @herdsman!!
2016-12-16 18:53:33 +09:00
Jean-Philippe Andre 03eb4c6409 evas: Fix issues with masking (make check)
After a previous patch, mask_subrender worked differently, and
didn't reset the object's cache clip color. This made evas_suite
fail. But also it seems some other issues creeped in and it was
necessary to fix the test case by adding data_updates (mistake!)
and removing an invalid draw call.
2016-12-16 17:10:01 +09:00
Carsten Haitzler 0bf269d966 elm - add test for efl ui win stacking api 2016-12-16 16:16:53 +09:00
Carsten Haitzler 4b96738443 efl_ui_win - use ecore_x window stack api to set up property in x11 2016-12-16 16:16:53 +09:00
Carsten Haitzler 75a429328a efl_ui_win - teamwork really has issues and i think needs deprecation
teamwork api in elm win (efl_ui_win) has a few issues:

1. it directly ddigs into ecore_wl2 and uses internal headers to use
zwp_* api's directly... which effectively tied elementary directly to
libwayland and thats not a good thing - thats why ecore_wl2 exists -
to act as a layer in between
2. the only thing that supports it is e and only wiht a module and
there is no fallback code in elm to work outside this environment, so
it's kind of broken by design and will not actually reliably work
3. from a stability and security point of view, and api and protocol
that allow a client to ask your wm/compositor to open ANY url - go
make a network request possibly to a hostile url/site is bad. needing
to handle so so so so many protocols, file types etc. etc. is going to
lead to issues that SHOULD at least be isolated in the app, but now it
spreads into your wm/compositor too. :(
4. there is ZERO benefit to asking the wm to do this. the app is
using efl already. it already has all the same abilities with the same
libraries to download/display etc. so why doesnt the app do it itself?
5. doesnt work in windows, osx, framebuffer (fbcon or drm)... only in
x11 and wayland. (and then only with e + module)
6. there is no way to detect if it's going to work and write your own
fallback (which shouldnt be needed/done anyway).

nice work and enthusiasm on making teamwork but it just isn't the right
thing - not in its current form and not by design (security reasons) :(

@deprecate
2016-12-16 16:16:53 +09:00
Carsten Haitzler 56b0b6490d ecore-x - add missing atom fetches!
ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE
ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY
ECORE_X_ATOM_E_KEYROUTER_SUPPORTED
ECORE_X_ATOM_E_KEYROUTER_WINDOW_KEYTABLE

all had no atom fetches! fix..

@fix
2016-12-16 16:16:53 +09:00
Carsten Haitzler 90be06df9e ecore-x - add e stack type atom and api's to set and get it 2016-12-16 16:16:53 +09:00
Carsten Haitzler 48ac4747b1 efl_ui_win - add window "view stack" api's and ability
this adds the a stack of windows (view stack, something like naviframe
but using multiple windows instead) to elementary allowing windows to
be put into a stack and treated as one "application" when ijn such a
stack with the newest window on top being the active/focused one (or
should be). this allows for special show/hide animations as well as
possibly special sizing policies and placement policies.

@feature
2016-12-16 16:16:53 +09:00
Jean-Philippe Andre 489815457b evas: Apply clip when rendering a masked mask
This fixes a rare crash in the SW engine when a masked mask is
to be rerendered. The clip adds more safety as the lower render
draw functions assume it is properly set.
2016-12-16 15:21:01 +09:00
Jean-Philippe Andre c4bceb796d test.edc: Fix indentation of a group 2016-12-16 14:55:44 +09:00
Jean-Philippe Andre e3b8bcc771 evas: Change int into a single bit
clean_layer is a bool
2016-12-16 14:35:52 +09:00
Jean-Philippe Andre b0c67adb10 evas: Fix masks of masks
Don't ask. This is a world of magic.
2016-12-16 14:09:00 +09:00
Jean-Philippe Andre 2bed30b398 evas: "fix" masks of masks inside a proxy
Here's the situation:

1. A container (genlist) has a mask, M0.
2. An item I0 inside this container uses a proxy P0 as render object
   rather than the item directly (eg. for zooming in/out).
3. An element E0 inside this item has another mask, M1.

Theory:
1. The proxy surface for P0 is rendered, and M1 is applied to
   the element E0.
2. The proxy P0 is rendered on the canvas, with M0 applied.

Practice:
1. The element E0 is prepared for rendering, this triggers
   a mask subrender for M1.
2. M1 is rendered with M0 as a prev mask, then kept in cache and
   not redrawn (no geometry change, etc...)
3. When P0's surface is rendered, M1's surface is the result of M1+M0.
4. When P0 is drawn on screen, we can see the effect of M1+M0 as
   P0's geometry might be different from the item's I0.

Solution:
Discard prev masks and force a mask redraw when we're inside a
proxy. Ideally we should detect if the prev mask belongs to the
insides of the proxy or not.

Problems:
_mask_apply_inside_proxy() is definitely not correct, but it's
not easy to test it. Anyway I believe that in order to properly
implement all of this, we need to rethink evas_render and
the draw context. Non-primary render surfaces (maps, proxies,
masks, filters, ...) should be rendered with a clean context
and clipping, masking, etc should be computed appropriately.
2016-12-16 11:29:47 +09:00
Jean-Philippe Andre 1c21cdfdbb evas: Remove flag use_mapped_ctx and add do_async
Always assume use_mapped_ctx as true, the caller of evas_render_mapped
must ensure that the context is suitable (so either clean or contains
the appropriate clip info).

Also pass do_async to mask_subrender. For now it will always be reset
to false as the SW engine requires sync render to convert from RGBA
to Alpha (not great). The upcoming GL async engine should be able to
render masks asynchronously without any problem.
2016-12-16 11:05:45 +09:00
Jean-Philippe Andre 3e0f3822f1 evas: Call object render in mask_subrender
This can avoid some invalid render from evas_render_mapped in
a rare case. I'm not sure about the conditions but I know for
sure that at the moment mask_subrender should be only rendering
plain old images into a dedicated surface. So no need for
evas_render_mapped here.
2016-12-16 10:53:03 +09:00
Jean-Philippe Andre 70676a4179 evas: Remove context from the evas public data
It was never used, except in dubious situations (most likely a typo).
A clean context is now used in the top-most call to
evas_render_updates_internal_loop.
2016-12-16 10:51:05 +09:00
Jean-Philippe Andre 581505791a evas: Remove context from some engine function
This is for canvas_alpha_get. context is never used.
2016-12-16 10:40:55 +09:00
Jean-Philippe Andre 260d838d22 evas: Remove context from polygon internal functions
It's not used
2016-12-16 10:37:54 +09:00
Jean-Philippe Andre 4f78aba9bf evas: Use ENFN, ENDT in evas_render
This makes code shorter and easier to read (imo).
Also introduce ENCTX for the engine context. It's used in a couple
places and I believe it's just wrong - but works because the engine
context and the current context are the same.
2016-12-16 10:31:53 +09:00
Jean-Philippe Andre ae69b10455 evas: Avoid calling efl_isa in proxy_subrender
It's not necessary.
2016-12-16 10:24:52 +09:00
Jean-Philippe Andre 4e110a34bf evas: Add source_region property to proxy objects
This will allow partially rendering a proxy in a smaller image,
limited to the specified region. At the moment, this will allow
apps to create proxies of very large objects and let them deal
with the geometry & clipping.

This is not directly solving the issues with adding a filter
to textblock or the infinite page scrollers.

@feature
2016-12-16 10:24:52 +09:00
Cedric BAIL 0ca1d0eef2 emile: refactor color convertion/copy logic in jpeg data decoder. 2016-12-15 16:45:10 -08:00
Cedric BAIL 3b354d6757 eet: add test for eet_alias_get. 2016-12-15 15:18:54 -08:00
Cedric BAIL 20d77fda98 eet: add test for eet_memopen_read. 2016-12-15 15:18:41 -08:00
Cedric BAIL 0ff7bf3611 eina: add a test for eina_stringshare_refplace. 2016-12-15 15:00:58 -08:00
Cedric BAIL 563dcd1ed9 eina: add test for skyline algorithm. 2016-12-15 14:40:06 -08:00
Cedric BAIL 6471d1a01c autotools: lcov-baseline is a dependency of lcov-report actually. 2016-12-15 14:30:57 -08:00
Cedric BAIL b221fbc639 eio: fix attr tests to process an array of string. 2016-12-15 14:30:33 -08:00
Cedric BAIL b3cc37dd77 eina: pass the right size of the string to avoid unbounded access warning. 2016-12-15 11:39:16 -08:00
Cedric BAIL 57b5a237f2 evas: silence warning of clobbered variable in the png saver. 2016-12-15 11:31:31 -08:00
Cedric BAIL 224ba8586b evas: fix use of signed and unsigned type in conditional expression warning. 2016-12-15 11:28:17 -08:00
Cedric BAIL e1843b2ced evas: fix potential use of unitialized variable. 2016-12-15 11:27:54 -08:00
Cedric BAIL e12d59e216 emile: reduce the amount of clobbered variable. 2016-12-15 11:17:34 -08:00
Cedric BAIL 8a57cb44b2 eolian: silence clobbered variable warning. 2016-12-15 10:44:22 -08:00
Cedric BAIL 32da71d65d ecore_con: reduce amount of warning related to clobbered variable. 2016-12-15 10:31:56 -08:00
Cedric BAIL 635a2baf74 efl_debug: silent unused use of static variable. 2016-12-15 10:08:21 -08:00
Cedric BAIL cf62558402 evas: fix comparison between unsigned and signed warning. 2016-12-15 10:01:35 -08:00
Cedric BAIL f553c92091 ecore_con: fix incompatible type warning. 2016-12-15 09:59:41 -08:00
Cedric BAIL 59bf58829c ecore_con: fix misleading indentation warning. 2016-12-15 09:55:11 -08:00
Hannes Janetzek 1b0690dd9a ecore-x: fix Mode_switch key mapping
- remove redundant XKeysymToString when sym == sym2

@fix
2016-12-15 11:35:41 -05:00
Daniel Kolesa 3dfb7a6ba8 eolian: enable typechecked expression validation
This code was formerly disabled, but it's safe now.
2016-12-15 13:31:58 +01:00
Tom Hacohen 78bbd29720 Eo: remove unreachable code in isa.
This condition can never be true. It can't be NULL here. A NULL here
would have caused a crash earlier, though it can only be NULL if an
allocation fails, which is something that we don't really handle
for smallish allocations.

CID1366823
2016-12-15 11:36:51 +00:00
Daniel Kolesa e444d43bbb eolian: handle pointer types in typechecking expr eval
Also improve expr error messages and fix Eolian tests.
2016-12-14 18:23:16 +01:00
Daniel Kolesa ca50a4de4c ecore con tests: fix missing include 2016-12-14 18:23:16 +01:00
Daniel Kolesa db9e6354c3 eolian gen: specialize default values by type
Now we can generate NULL for stuff that is pointers and empty
struct literals for struct instead of just 0 for everything. The
previous behavior was incorrect for those cases and generated
broken code.
2016-12-14 18:23:16 +01:00
Daniel Kolesa d123978718 eolian: handle pointers in aliased_base_get 2016-12-14 18:23:16 +01:00
Daniel Kolesa c813e94606 eolian: unary expr eval for floats and add a signed number mask
This adds a new mask for all signed numbers (sint + float) and
fixes unary expr evaluation for floats, as well as fixes eval
error messages.
2016-12-14 18:23:16 +01:00
Mike Blumenkrantz b4740389f9 ecore-wl2: restore previous session recovery behavior on hide
ref 9492ee21df
2016-12-14 11:44:13 -05:00
Chris Michael 6ff374256c elput: Properly check return values from libinput config functions
As libinput_config_status may contain 3 possible return values, we
need to santize the return values there into Eina_Bool for use in our
own functions.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-14 09:18:14 -05:00