Commit message (Collapse)AuthorAgeFilesLines
* ecore_wl2: Silence a commit ERR on window hideDerek Foreman2018-03-161-0/+14
| | | | | Cosmetic fix, should be functionally identical. Hide can be called asynchronously, so it's ok, and the ERR can be silenced.
* eolian: add APIs to get unit from object and state from unitDaniel Kolesa2018-03-164-0/+50
* eolian: intial API for a new error mechanismDaniel Kolesa2018-03-163-7/+80
| | | | | | | | Unlike panic, this will be used to handle regular errors such as parse errors. There will be no jumps and you will be able to pass in a pointer to get the error data into some local memory. That way you will be able to override printing error messages.
* eolian: initial API for a new panic mechanismDaniel Kolesa2018-03-163-0/+51
| | | | | | This will be used to handle unrecoverable errors. For robustness, you will be able to set a custom panic callback, jump and try to recover manually.
* csharp: Fix support for ptr(structs)Lauro Moura2018-03-1611-121/+638
| | | | | | | | | | | | | | | | | | | In general, ptr(struct) parameters behavior depends whether the parameter has the @owned modifier or not. If there is no @owned parameter (meaning no transfer of ownership happens) and it is a "complex" struct, with reference type fields (like strings), the struct is converted to the respective <Struct>Internal struct and passed with "ref" to the DllImport'd function. For @in parameters, after the function it returns, this intermediate struct is converted to the public struct type and assigned to the original parameter, updating it to the external world. When we have ownership transfers, the structure is copied to unmanaged memory and given to the callee. We can't send managed memory directly as the callee may try to free it. On the managed side, the original struct is left to be garbage collected normally.
* csharp: Change policy on ptr(struct) owned callsLauro Moura2018-03-161-5/+3
| | | | | | | | | | | | | | | | | | | | | | When transferring the ownership of a ptr(struct) from Unamanaged to managed, we should marshal the reference-typed fields or they can point to Managed memory that would make no sense to access from C (for example, strings would return garbage). The downside is that it can cause potential leaks if the receiver of the memory do not free it. In the current state of the EFL api this can happen in two places: - Efl.Ui.List.SegArray::remove return -> ptr(Efl.Ui.List.LayoutItem) @owned - Efl.Ui.Focus.Manager::fetch return -> ptr(Efl.Ui.Focus.Relations) @owned The resources copied by both structs may leak when those functions are overriden in C# and the values returned to the C code. Also hide some internal stuff instead of exporting it and generate implicit conversion operators for struct external/internal.
* eolian_cxx: Add 'unknown' to parameter directionLauro Moura2018-03-162-2/+5
| | | | | It'll be used in eolian_mono as the 'direction' of return types in some helper functions.
* efl-cxx: Fix installation of efl_part_impl headerLauro Moura2018-03-161-1/+4
| | | | It was being installed directly into efl-cxx instead of efl-cxx/cxx.
* eolian: simplify lexer initDaniel Kolesa2018-03-162-32/+6
* eolian: event/function_get_by_name -> by_name_getDaniel Kolesa2018-03-1613-70/+70
* eo: Orphan an object that is being invalidated.Lauro Moura2018-03-151-1/+3
| | | | | | | | | | | | | | | | | | Summary: This will avoid infinite loops and errors when the parent tries to orphan an invalidated child. Fixes T6780 Test Plan: Run `make check` Reviewers: cedric Maniphest Tasks: T6780 Differential Revision: https://phab.enlightenment.org/D5839 Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
* eolian: more stringent and fine-grained validationDaniel Kolesa2018-03-163-12/+12
* eolian: fix unit child managementDaniel Kolesa2018-03-162-8/+7
| | | | Also pass correct unit to validation for performance.
* eolian: merge objects in unitsDaniel Kolesa2018-03-151-0/+1
* eolian: reduce the number of database traversals during validationDaniel Kolesa2018-03-152-18/+39
| | | | | This significantly improves performance by not iterating certain paths multiple times.
* ee_drm: prevent extra flipsDerek Foreman2018-03-151-0/+6
| | | | | | | | Similarly to commit 8b962d24acf192bd6c22de779c57eac73dd2f4db prevent extra flips in the drm engine. These are potentially more harmful to DRM as they can cause frame drops and missed render opportunities.
* ee_wayland: Prevent extra commitsDerek Foreman2018-03-151-1/+2
| | | | | | | | | 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.
* eolian: fix minor memory leaksDaniel Kolesa2018-03-152-6/+15
* eolian: make sure dtors are always run correctlyDaniel Kolesa2018-03-152-6/+16
* eolian: remove the temps systemDaniel Kolesa2018-03-152-23/+11
* eolian: manage exprs through node systemDaniel Kolesa2018-03-152-35/+31
* eolian: manage typedecls through node systemDaniel Kolesa2018-03-151-31/+14
* eolian: manage class/vars through new node systemDaniel Kolesa2018-03-153-20/+43
* eolian: store types in node hashDaniel Kolesa2018-03-153-81/+78
* eolian: generic dtor management for lexerDaniel Kolesa2018-03-153-71/+79
* eolian: unified node allocation apiDaniel Kolesa2018-03-152-0/+55
* eolian: in-lexer-state current class storageDaniel Kolesa2018-03-153-43/+45
* efl_ui_focus_manager_root_focus: switch to focus adapterMarcel Hollerbach2018-03-153-46/+3
* efl_ui_focus_manager_calc: set redirect before setting focusMarcel Hollerbach2018-03-151-8/+6
| | | | | | 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.
* efl_ui_focus_manager_calc: do not set focus on a deletion managerMarcel Hollerbach2018-03-151-1/+1
| | | | | otherwise objects might already be on the way out, without a elementary parent.
* elm_interface_scrollable: make sure to have the content always focusableMarcel Hollerbach2018-03-151-1/+1
* elm_widget_item_static_focus: move canvas_object_set to laterMarcel Hollerbach2018-03-151-1/+4
| | | | | | 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
* elm_genlist: support immidiate focus once the item is realizedMarcel Hollerbach2018-03-152-4/+18
| | | | this supports the case of item.focus = true before the item is realized.
* elm_genlist: move focus recovering to first_touch instead ofMarcel Hollerbach2018-03-152-42/+39
| | | | | | | 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.
* efl_ui_focus_manager_calc: add onedirection to dirtyMarcel Hollerbach2018-03-151-3/+8
* elm_genlist: performe elm_item_focus_setMarcel Hollerbach2018-03-151-4/+1
| | | | | this means all neccessary fields with last focus and current focused item are updated correctly
* efl_ui_focus_composition: redirect canvas move events to the adapterMarcel Hollerbach2018-03-152-1/+39
| | | | | otherwise a moving canvas object will not be recalculated, as the manager does not know about the new focus geometry
* elm_widget_item_static_focus: fix fetching of the itemMarcel Hollerbach2018-03-151-1/+2
* elm_widget_item_static_focus: delete adapter when deleted or unrealizedMarcel Hollerbach2018-03-151-1/+12
| | | | | | 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.
* elm_genlist: set focus to the item when a user calls the functionMarcel Hollerbach2018-03-151-0/+2
* elm_genlist: set focus to the item when a user calls the functionMarcel Hollerbach2018-03-151-0/+1
* efl_ui_focus_manager_sub: flush the border if we cannot find a candidateMarcel Hollerbach2018-03-152-0/+13
| | | | | | 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
* ecore_wl2_window: Silence some spurious warningsDerek Foreman2018-03-141-2/+4
| | | | | | | | | 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.
* evas_render: Don't render from norenderDerek Foreman2018-03-141-1/+1
| | | | | commit 4dee873a appears to have accidentally flipped a flag in _evas_canvas_norender causing it to actually try to render.
* ee_wayland: Set window visible before trying to render itDerek Foreman2018-03-141-2/+1
| | | | | if we try to render before setting ee->visible the results aren't likely to be... visible.
* eolian: turn some state APIs into inlines over unit APIsDaniel Kolesa2018-03-142-253/+202
* pyolian: remove unneeded bindings in eolian_stateDaniel Kolesa2018-03-142-112/+0
* elua: inherit state from unit in eolian bindingsDaniel Kolesa2018-03-141-195/+112
* eolian: refactor doc ref resolution APIDaniel Kolesa2018-03-148-18/+17
* eo: fix invalidate to always happen.Cedric BAIL2018-03-131-0/+6