Daniel Kolesa [Thu, 15 Mar 2018 14:50:53 +0000 (15:50 +0100)]
eolian: manage typedecls through node system
Daniel Kolesa [Thu, 15 Mar 2018 14:42:40 +0000 (15:42 +0100)]
eolian: manage class/vars through new node system
Daniel Kolesa [Thu, 15 Mar 2018 14:31:08 +0000 (15:31 +0100)]
eolian: store types in node hash
Daniel Kolesa [Thu, 15 Mar 2018 13:12:18 +0000 (14:12 +0100)]
eolian: generic dtor management for lexer
Daniel Kolesa [Thu, 15 Mar 2018 12:53:50 +0000 (13:53 +0100)]
eolian: unified node allocation api
Daniel Kolesa [Thu, 15 Mar 2018 11:30:06 +0000 (12:30 +0100)]
eolian: in-lexer-state current class storage
Marcel Hollerbach [Thu, 15 Mar 2018 14:11:46 +0000 (15:11 +0100)]
efl_ui_focus_manager_root_focus: switch to focus adapter
Marcel Hollerbach [Thu, 15 Mar 2018 14:02:57 +0000 (15:02 +0100)]
efl_ui_focus_manager_calc: set redirect before setting focus
settings the redirect might result in unfocus calls, that might unset
evas_object_focus on a object that might be registered in two managers
due to border linking. This fixes mysterical disapearing focus.
Marcel Hollerbach [Thu, 15 Mar 2018 14:01:10 +0000 (15:01 +0100)]
efl_ui_focus_manager_calc: do not set focus on a deletion manager
otherwise objects might already be on the way out, without a elementary
parent.
Marcel Hollerbach [Thu, 15 Mar 2018 11:46:47 +0000 (12:46 +0100)]
elm_interface_scrollable: make sure to have the content always focusable
Marcel Hollerbach [Mon, 12 Mar 2018 10:12:19 +0000 (11:12 +0100)]
elm_widget_item_static_focus: move canvas_object_set to later
We dont delete the adapeter when we are still focused, to set anyway the
correct view to it, we need to set the view to the adapeter as often as
possible
Marcel Hollerbach [Sun, 11 Mar 2018 20:08:42 +0000 (21:08 +0100)]
elm_genlist: support immidiate focus once the item is realized
this supports the case of item.focus = true before the item is realized.
Marcel Hollerbach [Sun, 11 Mar 2018 16:56:07 +0000 (17:56 +0100)]
elm_genlist: move focus recovering to first_touch instead of
focus_update
this means that the function is called more reliable, and not only based
on focus state, but also based on the redirect situation.
Change-Id: Ic23534aa8d6022f2c2b7341f61c98b28a1b7de0c
Marcel Hollerbach [Fri, 9 Mar 2018 18:58:36 +0000 (19:58 +0100)]
efl_ui_focus_manager_calc: add onedirection to dirty
Marcel Hollerbach [Fri, 9 Mar 2018 17:52:42 +0000 (18:52 +0100)]
elm_genlist: performe elm_item_focus_set
this means all neccessary fields with last focus and current focused
item are updated correctly
Marcel Hollerbach [Fri, 9 Mar 2018 17:52:02 +0000 (18:52 +0100)]
efl_ui_focus_composition: redirect canvas move events to the adapter
otherwise a moving canvas object will not be recalculated, as the
manager does not know about the new focus geometry
Marcel Hollerbach [Sun, 4 Mar 2018 09:59:09 +0000 (10:59 +0100)]
elm_widget_item_static_focus: fix fetching of the item
Marcel Hollerbach [Thu, 1 Mar 2018 07:37:06 +0000 (08:37 +0100)]
elm_widget_item_static_focus: delete adapter when deleted or unrealized
somehow genlist leaks the view sometimes, thus the adapter is not
deleted when the item is deleted. This resulted in strange ghost focus
objects in the window.
Marcel Hollerbach [Wed, 28 Feb 2018 18:42:32 +0000 (19:42 +0100)]
elm_genlist: set focus to the item when a user calls the function
Marcel Hollerbach [Wed, 28 Feb 2018 18:42:32 +0000 (19:42 +0100)]
elm_genlist: set focus to the item when a user calls the function
Marcel Hollerbach [Wed, 28 Feb 2018 17:42:24 +0000 (18:42 +0100)]
efl_ui_focus_manager_sub: flush the border if we cannot find a candidate
after that someone probebly wants to check where the last focus was on,
if the set of boder elements has changed since the last border flush, then the
element might not be registered in the parent manager
Derek Foreman [Wed, 14 Mar 2018 17:08:52 +0000 (12:08 -0500)]
ecore_wl2_window: Silence some spurious warnings
ecore_wl2_window_commit() must be called during window size negotiation,
but this currently trips a warning when no frame callback has been
received for the first commit. We can't even have frame callbacks at
that point because no buffer is attached.
Don't set up the commit_pending logic until after we have a buffer.
Derek Foreman [Wed, 14 Mar 2018 21:03:36 +0000 (16:03 -0500)]
ee_wayland: Set window visible before trying to render it
if we try to render before setting ee->visible the results aren't
likely to be... visible.
Daniel Kolesa [Wed, 14 Mar 2018 16:20:49 +0000 (17:20 +0100)]
eolian: turn some state APIs into inlines over unit APIs
Daniel Kolesa [Wed, 14 Mar 2018 16:08:36 +0000 (17:08 +0100)]
pyolian: remove unneeded bindings in eolian_state
Daniel Kolesa [Wed, 14 Mar 2018 16:03:33 +0000 (17:03 +0100)]
elua: inherit state from unit in eolian bindings
Daniel Kolesa [Wed, 14 Mar 2018 15:51:11 +0000 (16:51 +0100)]
eolian: refactor doc ref resolution API
Cedric BAIL [Tue, 13 Mar 2018 22:29:21 +0000 (15:29 -0700)]
eo: fix invalidate to always happen.
Jean-Philippe Andre [Tue, 24 Oct 2017 09:09:50 +0000 (18:09 +0900)]
genlist: fix "insane" order [BUG COMPATIBILITY]
This patch implements bug compatibility.
genlist internally uses both a tree structure with Eina_List and a flat
Eina_Inlist to track its items. ALL of the items are in the inlist while
subitems appear in their parent's list. As a consequence both lists must
be kept in sync pretty tightly. Obviously this is not done at all and
has led to countless bugs, as soon as tree or groups are used:
- Invalid order of items (visually)
- Invalid order of items with sorted_insert
- Glitches in the matrix
- Crashes with sorted_insert
- Odd/even styles not properly set
- Promote/demote functions broken by design
- Developers send to psychiatric hospitals
- Etc...
Legacy genlist (1.19 and before) used an inlist order that basically
didn't make sense, as it didn't follow the logical order of elements (as
they appear visually). Unfortunately this has "worked" (really, that's a
huge stretch to use this word here) for a long time this way. As a
consequence, some applications (*cough* empc *cough*) have relied on
this order to implement "next album" or "previous album" where the
album title is a group node.
By changing the order of items in the inlist, this has broken the
assumptions made above, and ends up in cases that return NULL, leading
to SEGV. Sure, the app should have checked NULL, but that's not really
the point here. The behavior has been changed.
This patch implements "fixes" for the following functions:
- elm_genlist_first_item_get(): Don't return a parent
- elm_genlist_last_item_get(): Return a parent
- elm_genlist_item_next_get(): return a parent upon reaching the last child
- elm_genlist_item_prev_get(): return a child when a parent is passed
Important notes:
- This does not cover 100% behavior compatibility here. The only way to
have it would be to simply revert the entire genlist code to its
original version and never touch it again, ever.
- An explicit API is required for an application to specify which API
level it targets, so that we can cherry-pick which bug compatibility
features we want to enable. We are already doing this for EDC,
unfortunately.
@fix
fix T5938
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Cedric BAIL [Tue, 13 Mar 2018 19:11:50 +0000 (15:11 -0400)]
tests: add genlist test to verify group item api behaviour
ref T5938
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Cedric BAIL [Tue, 13 Mar 2018 16:40:02 +0000 (12:40 -0400)]
efl_ui_clock: do not locally store clock module api
there is no corresponding code to unset this global pointer when the module
is unloaded, so this will crash if elm_shutdown is ever called
Change-Id: Id296a265f899394d74812f8d79c14778127a5638
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Cedric BAIL [Tue, 13 Mar 2018 16:38:10 +0000 (12:38 -0400)]
elm_gengrid: do not zero item cache if object is not finalized
this is a no-op case which causes unnecessary errors
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Cedric BAIL [Tue, 13 Mar 2018 16:08:25 +0000 (12:08 -0400)]
efl_promise: avoid invalid calls when unsetting parent
if promise has no parent then the promise's loop is null
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Cedric BAIL [Tue, 13 Mar 2018 16:03:13 +0000 (12:03 -0400)]
tests: remove invalid api usage from elm layout test
the comment here indicates that the author knew it was an invalid api use
so it should not have been here in the first place
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Cedric BAIL [Tue, 13 Mar 2018 15:57:49 +0000 (11:57 -0400)]
tests: disable elm glview tests when running in buffer engine
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Cedric BAIL [Tue, 13 Mar 2018 15:39:16 +0000 (11:39 -0400)]
elm_map: remove unnecessary error message in destructor
there is no check for the existence of this file so this will error most times
from it not existing
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Cedric BAIL [Tue, 13 Mar 2018 15:35:18 +0000 (11:35 -0400)]
elm: call ecore_event_shutdown during elm_shutdown
ref
4e14ba3f4874b03185d5216829ecc1876d11c48e
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Cedric BAIL [Tue, 13 Mar 2018 15:29:55 +0000 (11:29 -0400)]
tests: check whether ecore is properly shut down after elm_shutdown
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Cedric BAIL [Tue, 13 Mar 2018 15:03:31 +0000 (11:03 -0400)]
efl_ui_win: do not trigger elm quit policy twice for same win
only check each policy for the case which should trigger it to avoid borking
main loop
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Cedric BAIL [Tue, 13 Mar 2018 14:40:23 +0000 (10:40 -0400)]
tests: avoid test failures for elm_win when not running in X
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Cedric BAIL [Tue, 13 Mar 2018 14:37:55 +0000 (10:37 -0400)]
tests: use buffer engine for elm_suite if engine is not specified
this should add some consistency to tests
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Cedric BAIL [Mon, 12 Mar 2018 19:24:01 +0000 (15:24 -0400)]
tests: properly destroy elm_win timers to prevent crashes
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Cedric BAIL [Mon, 12 Mar 2018 19:21:15 +0000 (15:21 -0400)]
efl_ui_win: track the finalize future for del to avoid crash
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Cedric BAIL [Mon, 12 Mar 2018 19:19:38 +0000 (15:19 -0400)]
ecore_evas: implement the move method for basic buffer canvas
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Jean Guyomarc'h [Tue, 13 Mar 2018 17:38:46 +0000 (18:38 +0100)]
efl_threadio: always return a value to silence warning
Jean Guyomarc'h [Sun, 11 Mar 2018 08:41:30 +0000 (09:41 +0100)]
efl_loop: fix exit code of the loop
For numeric types, eina_value_set() accepts values instead of references
on the value to be set. Hence, we were affecting as the exit code of the
loop a garbage value, yielding to invalid results.
Cedric BAIL [Mon, 12 Mar 2018 18:17:02 +0000 (11:17 -0700)]
eo: cleanup future on invalidate.
Cedric Bail [Thu, 7 Dec 2017 05:58:30 +0000 (21:58 -0800)]
eo: add an helper to get an object from an Eina_Value.
Cedric BAIL [Mon, 5 Mar 2018 21:36:54 +0000 (13:36 -0800)]
eo: allow setting value eo Eina_Value from an Eo pointer directly.
Cedric BAIL [Mon, 12 Mar 2018 16:43:44 +0000 (09:43 -0700)]
eina: fix promise scheduler lookup to find it when given a resolved chain of future.
T6738
Cedric BAIL [Thu, 1 Mar 2018 23:43:30 +0000 (15:43 -0800)]
eina: avoid warning when accessing first item and just return an error.
Daniel Kolesa [Mon, 12 Mar 2018 15:28:28 +0000 (16:28 +0100)]
eolian: update type/var name APIs
Daniel Kolesa [Mon, 12 Mar 2018 15:10:32 +0000 (16:10 +0100)]
eolian: make more name APIs into inline helpers
Daniel Kolesa [Mon, 12 Mar 2018 15:03:37 +0000 (16:03 +0100)]
eolian: update class name APIs
Daniel Kolesa [Mon, 12 Mar 2018 14:48:25 +0000 (15:48 +0100)]
pyolian: update name APIs
Daniel Kolesa [Mon, 12 Mar 2018 13:27:20 +0000 (14:27 +0100)]
elua: update eolian name APIs
Daniel Kolesa [Mon, 12 Mar 2018 12:55:01 +0000 (13:55 +0100)]
eolian: expose short_name/namespaces via object
Daniel Kolesa [Mon, 12 Mar 2018 11:26:17 +0000 (12:26 +0100)]
eolian: use short name for function pointer name
Daniel Kolesa [Mon, 12 Mar 2018 10:36:50 +0000 (11:36 +0100)]
eolian: only merge units on success when parsing all files
Amitesh Singh [Mon, 12 Mar 2018 06:04:08 +0000 (15:04 +0900)]
doc: check - correct the ingroup name for legacy apis
Dave Andreoli [Sun, 11 Mar 2018 16:44:28 +0000 (17:44 +0100)]
Pyolian generator: adjust to follow eolian changes
Daniel Kolesa [Sun, 11 Mar 2018 14:55:10 +0000 (15:55 +0100)]
eolian: simplify namespace handling
This is mostly a preparation for rework of name(space) APIs.
Dave Andreoli [Sun, 11 Mar 2018 14:52:52 +0000 (15:52 +0100)]
Pyolian: remove the useless Object.type binding
This is useless in py as Objects are never returned
directly, you always get the correct subtype (Class,
Variable, etc..). It was also clashing with Class.type
Dave Andreoli [Sun, 11 Mar 2018 14:24:59 +0000 (15:24 +0100)]
Pyolian: add tests for Eolian_Object
Two of the new tests are failing, the problem is that now
we have name clashes between Eolian_Object and Eolian_Class (at least)
For the moment I spotted:
- Object.name clash with Class.name
- Object.type clash with Class.type
Also fixed a typo in eolian_lib.py spotted by the new tests,
and removed the old tests for Declaration.
Dave Andreoli [Sun, 11 Mar 2018 13:28:51 +0000 (14:28 +0100)]
Pyolian: build the correct type from generic Object
This way all the generic Eolian_Object types are automatically
converted to the correct types (Class, Variable, etc...)
Carsten Haitzler (Rasterman) [Sat, 10 Mar 2018 13:47:12 +0000 (22:47 +0900)]
elm test - adapt to argc/v being regular argv 0 being binary name
Carsten Haitzler (Rasterman) [Sat, 10 Mar 2018 11:03:32 +0000 (20:03 +0900)]
ecore - efl thread - remove unused local vars
Carsten Haitzler (Rasterman) [Sat, 10 Mar 2018 11:02:09 +0000 (20:02 +0900)]
ecore - efl exe/thread - only allow run once ever
Daniel Kolesa [Fri, 9 Mar 2018 14:25:11 +0000 (15:25 +0100)]
eolian: resolve to Eolian_Objects instead of voids
Daniel Kolesa [Fri, 9 Mar 2018 14:19:53 +0000 (15:19 +0100)]
eolian: return Eolian_Object_Type from ref resolver
This needs only one enum and allows for better interop.
Cedric BAIL [Fri, 9 Mar 2018 01:00:03 +0000 (17:00 -0800)]
ecore: do not remove a timer that has already been removed.
Lauro Moura [Thu, 8 Mar 2018 23:43:50 +0000 (15:43 -0800)]
csharp: update examples
Summary:
They were still using the old SetSize(w, h) API instead of receiving
eina.Size2D structs.
Test Plan: Build examples and run them.
Reviewers: felipealmeida, cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5830
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Lauro Moura [Thu, 8 Mar 2018 23:43:14 +0000 (15:43 -0800)]
csharp: generate helper constructors for structs.
Summary:
C# does not have a literal form for structs (like C++'s {} aggregate
initialization). Before this commit the user would need to explicitly
instantiate a struct and assign the required values to it, like:
eina.Size2D size;
size.W = width;
size.H = height;
widget.SetSize(size);
As a workaround, this commit generates helper constructor with
parameters corresponding to the struct fields in the order they are
declared. These parameters have default values if one does not want to
explicitly initialize all fields directly. With these constructs, the
above code could be translated to:
widget.SetSize(new eina.Size2D(width, height));
It should be noted that the constructed struct will live on the managed
memory (GC) instead of the stack.
Test Plan: run "make check"
Reviewers: felipealmeida
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5838
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Cedric BAIL [Thu, 8 Mar 2018 22:05:25 +0000 (14:05 -0800)]
eo: ERR some warning when illegally using invalidated object.
Cedric Bail [Thu, 8 Mar 2018 23:18:38 +0000 (18:18 -0500)]
ecore: avoid calls to provider_find on invalidated objects in timer class
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Daniel Kolesa [Thu, 8 Mar 2018 23:40:53 +0000 (00:40 +0100)]
eolian cxx: fix typo
Cedric BAIL [Thu, 8 Mar 2018 22:59:12 +0000 (14:59 -0800)]
eo: when an object is reused, reset the invalidate flag.
Daniel Kolesa [Thu, 8 Mar 2018 22:59:40 +0000 (23:59 +0100)]
eolian: remove old declaration APIs
Daniel Kolesa [Thu, 8 Mar 2018 22:21:05 +0000 (23:21 +0100)]
eolian cxx: replace declaration api with obj api
Daniel Kolesa [Thu, 8 Mar 2018 22:16:40 +0000 (23:16 +0100)]
eolian: tests for new object apis
Daniel Kolesa [Thu, 8 Mar 2018 22:07:01 +0000 (23:07 +0100)]
pyolian: add support for object retrieval
Daniel Kolesa [Thu, 8 Mar 2018 22:01:01 +0000 (23:01 +0100)]
pyolian: wipe out declaration api
Daniel Kolesa [Thu, 8 Mar 2018 21:58:22 +0000 (22:58 +0100)]
elua: remove declaration api from eolian bindings
Daniel Kolesa [Thu, 8 Mar 2018 21:54:12 +0000 (22:54 +0100)]
eolian: remove obsolete file_get APIs
Daniel Kolesa [Thu, 8 Mar 2018 21:53:51 +0000 (22:53 +0100)]
eolian cxx: remove usages of obsolete file_get APIs
Daniel Kolesa [Thu, 8 Mar 2018 21:48:01 +0000 (22:48 +0100)]
pyolian: add Eolian_Object APIs and remove obsolete file_get ones
Daniel Kolesa [Thu, 8 Mar 2018 21:34:25 +0000 (22:34 +0100)]
elua: update eolian bindings for latest APIs
Added support for Eolian_Object, made other luaified types
"inherited" from Eolian_Object, removed type-specific file_get
as it was replaced by Object's file_get, declarations API still
in place
Derek Foreman [Thu, 8 Mar 2018 20:22:50 +0000 (14:22 -0600)]
gl_drm: Use gl extension string helper instead of strstr
Daniel Kolesa [Thu, 8 Mar 2018 18:57:55 +0000 (19:57 +0100)]
eolian gen: switch from decl api to object api
Daniel Kolesa [Thu, 8 Mar 2018 18:30:40 +0000 (19:30 +0100)]
eolian: give objects names, and reduce duplication
Daniel Kolesa [Thu, 8 Mar 2018 17:59:37 +0000 (18:59 +0100)]
eolian: add APIs to retrieve declarations as objects
This will replace the old declarations API.
Derek Foreman [Thu, 8 Mar 2018 17:24:02 +0000 (11:24 -0600)]
gl_drm: Don't NULL init a variable we're about to set
minor clean up with no functional change.
Derek Foreman [Thu, 8 Mar 2018 17:15:05 +0000 (11:15 -0600)]
gl_drm: Check EGL client extensions before using platform_base
The comment here was right, we shouldn't just trust these without testing
if we should trust these.
Derek Foreman [Thu, 8 Mar 2018 16:47:03 +0000 (10:47 -0600)]
gl_drm: Rename eng_gl_symbols to eng_egl_symbols
It now only deals with egl. gl extensions must be queried later, so it
was previously a bit weird/confusing.
Derek Foreman [Thu, 8 Mar 2018 16:44:04 +0000 (10:44 -0600)]
gl_drm: Move some extension queries to after context creation
Anything non-EGL we might query would have to be queried here, so
I'm moving the call here to protect us in the event that we need GL
extensions in the future.
I'm still a bit confused as to what string I should be passing to
evas_gl_symbols, though.
Daniel Kolesa [Thu, 8 Mar 2018 16:30:30 +0000 (17:30 +0100)]
eolian: add API to query information about Objects
As nearly every Eolian handle is backed by an Eolian_Object,
this information is now publicly exposed and has an API. This
opens up an array of new possibilities for tooling, as you
can now externally query file names, line numbers etc.,
as well as cast arbitrary handles to Eolian_Object pointers
and back.
This will be expanded later and it will replace the Declaration
system, as it's cleaner, better integrated and more versatile.
@feature
Derek Foreman [Wed, 7 Mar 2018 21:08:46 +0000 (15:08 -0600)]
gl_drm: use EGL_IMG_context_priority if available
This is a hint that we want a high priority context. Since gl_drm is
likely a compositor or a full screen app, it makes sense that it try to
use this (but other engines probably shouldn't)
Based loosely on Chris Wilson's weston patch to do the same thing.
(weston commit
b678befb6ed055e6c66466505d9195a3cebf8073)
As this extension appears to have been around for years, I haven't
added fallback defines for:
EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100
EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101
Derek Foreman [Wed, 7 Mar 2018 19:11:45 +0000 (13:11 -0600)]
gl_drm: Move the gl symbol check to immediately after display init
We don't actually need a context first, just an initialized display.
Cedric Bail [Wed, 7 Mar 2018 19:01:25 +0000 (11:01 -0800)]
eo: fix warning.
Cedric Bail [Wed, 7 Mar 2018 19:00:06 +0000 (11:00 -0800)]
eo: adjust test suite to take invalidate state into account.