Commit Graph

58396 Commits

Author SHA1 Message Date
Daniel Kolesa 2760f047d3 eolian: merge objects in units 2018-03-15 23:32:20 +01:00
Daniel Kolesa 978ba5052d eolian: reduce the number of database traversals during validation
This significantly improves performance by not iterating certain
paths multiple times.
2018-03-15 23:25:35 +01:00
Derek Foreman f0a96ec53c ee_drm: prevent extra flips
Similarly to commit 8b962d24ac prevent
extra flips in the drm engine.

These are potentially more harmful to DRM as they can cause frame
drops and missed render opportunities.
2018-03-15 14:49:56 -05:00
Derek Foreman 8b962d24ac ee_wayland: Prevent extra commits
It's possible that we unregister then reregister an animator so quickly
that the ecore_evas idle enter/exiters haven't had a chance to run yet.
In this case a render will come shortly anyway and we shouldn't use a
'false' commit to kick off a frame callback.

Silences an ERR and unmeasurably improves protocol utilization.
2018-03-15 14:41:15 -05:00
Daniel Kolesa 2c59abc878 eolian: fix minor memory leaks 2018-03-15 16:45:23 +01:00
Daniel Kolesa edc73c4c4c eolian: make sure dtors are always run correctly 2018-03-15 16:34:39 +01:00
Daniel Kolesa df83efcef9 eolian: remove the temps system 2018-03-15 16:34:39 +01:00
Daniel Kolesa 5178b15ac5 eolian: manage exprs through node system 2018-03-15 16:34:39 +01:00
Daniel Kolesa da47159dbd eolian: manage typedecls through node system 2018-03-15 16:34:39 +01:00
Daniel Kolesa 80445f5160 eolian: manage class/vars through new node system 2018-03-15 16:34:39 +01:00
Daniel Kolesa aa313ccfb6 eolian: store types in node hash 2018-03-15 16:34:39 +01:00
Daniel Kolesa cd49130df7 eolian: generic dtor management for lexer 2018-03-15 16:34:39 +01:00
Daniel Kolesa 916c8cb046 eolian: unified node allocation api 2018-03-15 16:34:39 +01:00
Daniel Kolesa 938acf22c0 eolian: in-lexer-state current class storage 2018-03-15 16:34:39 +01:00
Marcel Hollerbach 432deb1129 efl_ui_focus_manager_root_focus: switch to focus adapter 2018-03-15 15:39:12 +01:00
Marcel Hollerbach c8ba7a070f 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.
2018-03-15 15:39:12 +01:00
Marcel Hollerbach 875a7eb0da 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.
2018-03-15 15:39:12 +01:00
Marcel Hollerbach 8746c275f5 elm_interface_scrollable: make sure to have the content always focusable 2018-03-15 15:39:12 +01:00
Marcel Hollerbach 1d3209a9ec 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
2018-03-15 15:39:12 +01:00
Marcel Hollerbach 02a062ba67 elm_genlist: support immidiate focus once the item is realized
this supports the case of item.focus = true before the item is realized.
2018-03-15 15:39:12 +01:00
Marcel Hollerbach be3cfcec66 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.
2018-03-15 15:39:12 +01:00
Marcel Hollerbach 844854d3e8 efl_ui_focus_manager_calc: add onedirection to dirty 2018-03-15 15:39:12 +01:00
Marcel Hollerbach 7d2d6c7e1d elm_genlist: performe elm_item_focus_set
this means all neccessary fields with last focus and current focused
item are updated correctly
2018-03-15 15:39:12 +01:00
Marcel Hollerbach df55911967 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
2018-03-15 15:39:12 +01:00
Marcel Hollerbach b7a5a9298d elm_widget_item_static_focus: fix fetching of the item 2018-03-15 15:39:12 +01:00
Marcel Hollerbach 0b1d67e793 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.
2018-03-15 15:39:12 +01:00
Marcel Hollerbach e5af7c914a elm_genlist: set focus to the item when a user calls the function 2018-03-15 15:39:12 +01:00
Marcel Hollerbach 8410659bb6 elm_genlist: set focus to the item when a user calls the function 2018-03-15 15:39:12 +01:00
Marcel Hollerbach 44a3e2b7c4 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
2018-03-15 15:39:12 +01:00
Derek Foreman 984d8bd4ce 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.
2018-03-14 16:10:14 -05:00
Derek Foreman b55b8110a9 evas_render: Don't render from norender
commit 4dee873a appears to have accidentally flipped a flag in
_evas_canvas_norender causing it to actually try to render.
2018-03-14 16:08:07 -05:00
Derek Foreman 812ab64413 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.
2018-03-14 16:08:07 -05:00
Daniel Kolesa ab43e61ef6 eolian: turn some state APIs into inlines over unit APIs 2018-03-14 17:20:49 +01:00
Daniel Kolesa 4fd0d5b436 pyolian: remove unneeded bindings in eolian_state 2018-03-14 17:08:36 +01:00
Daniel Kolesa 0ee6410add elua: inherit state from unit in eolian bindings 2018-03-14 17:03:33 +01:00
Daniel Kolesa 2d0a25c995 eolian: refactor doc ref resolution API 2018-03-14 16:51:11 +01:00
Cedric BAIL 425a447379 eo: fix invalidate to always happen. 2018-03-13 15:29:21 -07:00
Jean-Philippe Andre fd82c2521e 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>
2018-03-13 15:15:01 -07:00
Cedric BAIL 101f17d1c5 tests: add genlist test to verify group item api behaviour
ref T5938

Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-13 15:14:50 -07:00
Cedric BAIL 7c2a1932c7 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

Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-13 15:14:50 -07:00
Cedric BAIL 067c9afa4e 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>
2018-03-13 15:14:50 -07:00
Cedric BAIL 950e2c13bb 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>
2018-03-13 15:14:50 -07:00
Cedric BAIL a1655cf9cb 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>
2018-03-13 15:14:50 -07:00
Cedric BAIL ac5f11ed1f tests: disable elm glview tests when running in buffer engine
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-13 15:14:50 -07:00
Cedric BAIL 0a6c302e9a 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>
2018-03-13 15:14:50 -07:00
Cedric BAIL 24db9f60be elm: call ecore_event_shutdown during elm_shutdown
ref 4e14ba3f48

Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-13 15:14:50 -07:00
Cedric BAIL e0c863a358 tests: check whether ecore is properly shut down after elm_shutdown
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-13 15:14:50 -07:00
Cedric BAIL 14bbae9b23 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>
2018-03-13 15:14:50 -07:00
Cedric BAIL 3d90c9d7dd tests: avoid test failures for elm_win when not running in X
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-13 15:14:50 -07:00
Cedric BAIL d1bf11f819 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>
2018-03-13 15:14:50 -07:00