Jean-Philippe Andre [Wed, 12 Oct 2016 02:31:17 +0000 (11:31 +0900)]
evas: Mark group_add/del as internal
Lacking a proper internal tag, I'm using both protected (it is
in fact a protected access function) and beta (to mark as unstable,
not real API).
New smart objects based on EO only should rely on constructor,
finalize and destructor exclusively. In theory, this should be fine.
Unfortunately it may be impossible to inherit from the Efl.Ui.Win
class as it uses a really bad hack and calls super.constructor
inside the finalize method.
Jean-Philippe Andre [Tue, 11 Oct 2016 07:54:31 +0000 (16:54 +0900)]
evas/elm: Remove function group_resize
This is an override of efl_gfx_size_set. Same as before, the
order of operations matter so it is possible that a corner
case will break. In particular, legacy code was:
- intercept
- smart resize (do stuff), super, super, super
- evas object resize
The new code is more like:
- intercept
- super, super, super, evas object resize
- do stuff
But unfortunately this broke elm_widget (read: all widgets) as
the internal resize was done before the object resize. So,
inside the resize event cb, the resize_obj size would not match
the smart object size. >_<
Jean-Philippe Andre [Tue, 11 Oct 2016 03:39:05 +0000 (12:39 +0900)]
evas/elm: Remove function group_move
This is an override of efl_gfx_position_set.
As for the other patches, I hope I didn't break anything.
A problem likely to happen is that the super call was inserted
too early or too late in the call flow. For instance:
_myclass_position_set(obj, x, y) {
position_set(super(obj), x, y);
position_get(obj, &prevx, &prevy);
do_something_with_delta_xy();
}
The above code flow is obvisouly wrong, but may have crept in this
patch (such a bug sneaked in inside smart object, breaking
everything at first).
Jean-Philippe Andre [Tue, 11 Oct 2016 03:02:20 +0000 (12:02 +0900)]
evas: Move move_children_relative to legacy only
While this kind of API seems to make sense with smart objects
(relative coordinates), it is currently not used apart from
the smart object class itself.
So, for now, I'm moving this to legacy to clean up Efl.Canvas.Group
and we can later add the equivalent in a clean "group" API.
Jean-Philippe Andre [Mon, 10 Oct 2016 09:59:42 +0000 (18:59 +0900)]
evas/elm: Remove group_show and group_hide
These should be just overrides of Efl.Gfx.visible.set. Many
widgets were handling smart show() and hide() manually, which
means this patch is quite large.
Hopefully this doesn't break anything, obviously. But here are
some widgets known to be problematic, as the old code flow was
really strange (sometimes not calling the efl_super function):
- window
- notify
Jean-Philippe Andre [Mon, 10 Oct 2016 07:44:48 +0000 (16:44 +0900)]
evas: Move clip_unset to legacy, remove group_clip
Similarly to group_color_set, group_clip_[un]set should not
exist and should be a result of efl_super and inheritance.
This patch also removes clip_unset from the EO API and keeps
only clip_set(NULL). The reason is that it will avoid bad overrides
of clip_unset() vs. clip_unset(NULL). This also simplifies the code
a bit. Ideally we should be able to reintroduce clip_unset in EO
if we can have a "@final" tag (like java's final keyword), to
prevent overrides.
Jean-Philippe Andre [Mon, 10 Oct 2016 09:24:20 +0000 (18:24 +0900)]
evas: Remove inexisting private function declarations
Jean-Philippe Andre [Fri, 7 Oct 2016 07:25:49 +0000 (16:25 +0900)]
evas: Remove method group_color_set
Widgets should simply override efl_gfx_color_set and call
super all the way up to evas object.
Legacy compatibility with call interceptors and early call
abortion (eg. delete_me or obj->layer == NULL) are implemented
with an internal call. See the previous commit introducing the
API.
Jean-Philippe Andre [Fri, 7 Oct 2016 03:43:21 +0000 (12:43 +0900)]
evas: Add pseudo-internal API to intercept basic calls
This is a poor man's solution to get rid of group functions such
as clip_set, clip_unset, color_set, etc... See the following
commits.
This API needs to be EAPI for elementary but shouldn't be used
outside EFL. This is required purely for legacy compatibility.
Here's the call flow, inside show(obj):
1. if (intercept_show(obj)) return;
2. show(super(obj));
3. do other stuff
Jean-Philippe Andre [Fri, 7 Oct 2016 03:34:24 +0000 (12:34 +0900)]
evas: Simplify code with intercept macros
Jean-Philippe Andre [Fri, 7 Oct 2016 02:37:00 +0000 (11:37 +0900)]
evas: Move intercept function types to legacy header
Jean-Philippe Andre [Wed, 7 Sep 2016 07:44:03 +0000 (16:44 +0900)]
evas_data: Fix safety checks in evas_object_data
This relies on efl_isa rather than the broken magic check
(by broken I mean it only checks for NULL).
Jean-Philippe Andre [Wed, 7 Sep 2016 05:47:33 +0000 (14:47 +0900)]
evas: Move group color_set after checking for change
I can't see why the group (smart object) color_set function
was called even if the color hadn't change. Let's test and
see if this breaks anything :)
Jean-Philippe Andre [Tue, 6 Sep 2016 12:03:11 +0000 (21:03 +0900)]
evas: Small simplification of object color_set
Jean-Philippe Andre [Tue, 6 Sep 2016 11:02:34 +0000 (20:02 +0900)]
group: Replace group_no_render by object no_render
Most of the smart functions "Efl.Canvas.Group.group_xxx" should
not exist and be overrides of the base object function instead.
Cleaning this up is necessary if we want an EO API for custom
smart objects. This patch is the first attempt at removing a
method (the simplest one).
As for no_render, I wonder if propagating to the children
really is necessary. evas_render should skip them already.
Chris Michael [Tue, 11 Oct 2016 15:30:13 +0000 (11:30 -0400)]
ecore-drm2: Free Output modes on destroy
When we destroy outputs, we should be freeing the Output's Modes also
as that was previously allocated memory.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Tue, 11 Oct 2016 15:22:40 +0000 (11:22 -0400)]
ecore-drm2: Use Atomic Modesetting for resolution changes
Since we have atomic properties now, we can use those to set given
Output modes (resolutions).
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Hosang Kim [Tue, 11 Oct 2016 12:11:14 +0000 (21:11 +0900)]
edje_calc: add rounding pixel calculation for transition.
Summary: when transition animation is working, sometimes one pixels loss occurs.
Reviewers: cedric, woohyun, jpeg, raster
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D4341
Vitalii Vorobiov [Tue, 11 Oct 2016 11:54:24 +0000 (14:54 +0300)]
edje_edit: proper work with part id's on part restack and del for map fields
@fix
jiin.moon [Tue, 11 Oct 2016 12:08:29 +0000 (21:08 +0900)]
evas: Fix no update issue if visiblity of smart object has change
Summary: If child has change about visibility, can't check it correctly.
Reviewers: jypark, cedric, jpeg, Hermet
Reviewed By: Hermet
Differential Revision: https://phab.enlightenment.org/D4345
Andrii Kroitor [Tue, 11 Oct 2016 08:42:21 +0000 (11:42 +0300)]
windows: remove expicit -levil flag
Summary:
Built from sources version of evil is already added to linker flags and
adding extra -levil makes build fail if evil is not already installed in system.
Looks like this flag was here from old times when all efl libraries were separated.
Reviewers: vtorri, NikaWhite
Reviewed By: NikaWhite
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4332
jiin.moon [Tue, 11 Oct 2016 00:28:52 +0000 (08:58 +0830)]
evas: Fix not update issue with TBM surface
Summary:
If the pixels of image object has updates
via native_suface_set api with TBM surface,
does not update on screen(no rendering)
Reviewers: jpeg, cedric
Differential Revision: https://phab.enlightenment.org/D4340
Bruno Dilly [Mon, 10 Oct 2016 18:25:33 +0000 (15:25 -0300)]
Merge branch 'devs/iscaro/osx'
Some fixes for OS X.
This series fixes two problems pointed by jayji and some other
compiler warnings.
Patches by iscaro.
Differential Revision: https://phab.enlightenment.org/D4339
Guilherme Iscaro [Sun, 9 Oct 2016 21:43:28 +0000 (18:43 -0300)]
Ecore Evas Cocoa: Properly unregister the window events.
Fix T4624
Guilherme Iscaro [Sun, 9 Oct 2016 17:52:02 +0000 (14:52 -0300)]
Eet example: Add the correct variable in the hash.
Guilherme Iscaro [Sun, 9 Oct 2016 17:12:03 +0000 (14:12 -0300)]
Efl UI Win: Avoid unused variable.
It's only used under X11 and Wayland backends.
Guilherme Iscaro [Sun, 9 Oct 2016 16:51:53 +0000 (13:51 -0300)]
Ecore_Thread: Avoid compiler warning
Use PRIuPTR to print the Eina_Thread handle.
Guilherme Iscaro [Sat, 8 Oct 2016 20:29:08 +0000 (17:29 -0300)]
Ecore Cocoa: Add missing modifiers field to Ecore Events
Fix T4477
Guilherme Iscaro [Sat, 8 Oct 2016 20:20:28 +0000 (17:20 -0300)]
Ecore_Cocoa: Fix repeat modifers keys.
Some values were repeated.
Jee-Yong Um [Mon, 10 Oct 2016 04:57:42 +0000 (13:57 +0900)]
ecore_ipc: fix typos in documentation group names
Summary: fix typos in documentation group names to grouping APIs correctly
Reviewers: cedric, jpeg, Hermet
Reviewed By: Hermet
Differential Revision: https://phab.enlightenment.org/D4333
Dave Andreoli [Sun, 9 Oct 2016 19:42:53 +0000 (21:42 +0200)]
FDO icons: add missing system-file-manager icon
Fix T4638
(cherry picked from commit
3fe1429eee5568ef7af7bc47a9dc43ce65e084ca)
Andy Williams [Sat, 8 Oct 2016 13:44:02 +0000 (14:44 +0100)]
elm_code: Don't allow cursor to be placed mid-tab
Mike Blumenkrantz [Fri, 7 Oct 2016 15:00:08 +0000 (11:00 -0400)]
ecore-wl2: add internal window flag for determining if opaque/input have been set
Mike Blumenkrantz [Fri, 7 Oct 2016 14:51:14 +0000 (10:51 -0400)]
ecore-wl2: apply input+opaque regions after creating window surface
@fix
Mike Blumenkrantz [Fri, 7 Oct 2016 14:46:28 +0000 (10:46 -0400)]
ecore-wl2: avoid crashes when setting window attrs before surface creation
this is async anyway
@fix
Marcel Hollerbach [Fri, 7 Oct 2016 14:16:32 +0000 (16:16 +0200)]
cmake: update to the new eolian bin syntax
Daniel Kolesa [Fri, 7 Oct 2016 11:36:15 +0000 (13:36 +0200)]
Merge branch 'devs/q66/eolian_gen_next'
This merges a rewritten Eolian C generator which replaces the previous
generator. The old generator did not properly reflect the design choices taken
in the Eolian library, which resulted in a sub-par codebase that was a lot more
complicated than it had to be which resulted in worse maintainability.
The new generator aims to remedy that; it has much simpler design that relies
on the Eolian library more and doesn't take certain design choices that were
made previously.
Daniel Kolesa [Fri, 7 Oct 2016 11:34:47 +0000 (13:34 +0200)]
eolian gen2: move to eolian gen (as the old one is gone)
Daniel Kolesa [Fri, 7 Oct 2016 11:26:08 +0000 (13:26 +0200)]
eolian gen2: remove old eolian gen
Daniel Kolesa [Fri, 7 Oct 2016 11:13:27 +0000 (13:13 +0200)]
eolian gen2: fix tests to match the new generator
Daniel Kolesa [Fri, 7 Oct 2016 10:58:22 +0000 (12:58 +0200)]
eolian gen2: fix minor issues with c file generation
Daniel Kolesa [Fri, 7 Oct 2016 10:31:01 +0000 (12:31 +0200)]
eolian gen2: fix stub header include guard
Daniel Kolesa [Thu, 6 Oct 2016 14:36:33 +0000 (16:36 +0200)]
eolian gen2: fix logging typo
Daniel Kolesa [Thu, 6 Oct 2016 14:35:25 +0000 (16:35 +0200)]
eolian gen2: add newline between property get/set protos
Daniel Kolesa [Thu, 6 Oct 2016 14:33:45 +0000 (16:33 +0200)]
eolian gen2: complete impl generator
Daniel Kolesa [Thu, 6 Oct 2016 14:13:39 +0000 (16:13 +0200)]
eolian gen2: complete impl gen besides params
Daniel Kolesa [Thu, 6 Oct 2016 12:56:49 +0000 (14:56 +0200)]
eolian gen2: fix file read to actually trigger impl gen
Daniel Kolesa [Thu, 6 Oct 2016 12:46:07 +0000 (14:46 +0200)]
eolian gen2: fully implement the main func for impl gen
Daniel Kolesa [Wed, 5 Oct 2016 14:32:17 +0000 (16:32 +0200)]
eolian gen2: some initial impl generation
Daniel Kolesa [Wed, 5 Oct 2016 12:47:11 +0000 (14:47 +0200)]
eolian gen2: remove the unused append mode for file write
Daniel Kolesa [Wed, 5 Oct 2016 12:45:27 +0000 (14:45 +0200)]
eolian gen2: initial skeleton for impl gen
Daniel Kolesa [Fri, 30 Sep 2016 12:27:22 +0000 (14:27 +0200)]
eolian gen2: fix generation of legacy class method wrappers
Daniel Kolesa [Fri, 30 Sep 2016 12:22:48 +0000 (14:22 +0200)]
eolian gen2: fix implement name generation
Daniel Kolesa [Fri, 30 Sep 2016 12:16:59 +0000 (14:16 +0200)]
eolian gen2: properly return from class initializer
Daniel Kolesa [Fri, 30 Sep 2016 12:15:07 +0000 (14:15 +0200)]
eolian gen2: proper generation of inherits in class def
Daniel Kolesa [Fri, 30 Sep 2016 12:07:16 +0000 (14:07 +0200)]
eolian gen2: properly generate class type for desc too
Daniel Kolesa [Fri, 30 Sep 2016 11:59:22 +0000 (13:59 +0200)]
eolian gen2: sanitize data type properly
Daniel Kolesa [Fri, 30 Sep 2016 11:40:39 +0000 (13:40 +0200)]
eolian gen2: fix typos in generation
Daniel Kolesa [Fri, 30 Sep 2016 11:36:54 +0000 (13:36 +0200)]
eolian gen2: generate only .h by default for eot files
Daniel Kolesa [Fri, 30 Sep 2016 11:25:41 +0000 (13:25 +0200)]
eolian gen2: fix double and missing free
Daniel Kolesa [Thu, 29 Sep 2016 15:37:53 +0000 (17:37 +0200)]
eolian gen2: switch EFL to new generator (doesn't work yet)
Daniel Kolesa [Thu, 29 Sep 2016 15:19:30 +0000 (17:19 +0200)]
eolian gen2: abort on OOM (not much we can do anyway)
Daniel Kolesa [Thu, 29 Sep 2016 15:09:37 +0000 (17:09 +0200)]
eolian gen2: generate legacy API implementation stubs
Daniel Kolesa [Thu, 29 Sep 2016 14:20:51 +0000 (16:20 +0200)]
eolian gen2: fully generate source
Daniel Kolesa [Thu, 29 Sep 2016 13:12:21 +0000 (15:12 +0200)]
eolian gen2: terminate EFL_OPS_DEFINE list
Daniel Kolesa [Wed, 28 Sep 2016 15:41:50 +0000 (17:41 +0200)]
eolian gen2: generation of class initializer func
Daniel Kolesa [Wed, 28 Sep 2016 12:46:24 +0000 (14:46 +0200)]
eolian gen2: fix generation type specification
Daniel Kolesa [Wed, 28 Sep 2016 12:41:32 +0000 (14:41 +0200)]
eolian gen2: properly space headers
Daniel Kolesa [Fri, 23 Sep 2016 16:41:09 +0000 (18:41 +0200)]
eolian gen2: generate prototypes/impls for all implements
Daniel Kolesa [Fri, 23 Sep 2016 16:06:34 +0000 (18:06 +0200)]
eolian gen2: don't generate class names in eo_gen_source_gen
Daniel Kolesa [Fri, 23 Sep 2016 15:49:44 +0000 (17:49 +0200)]
eolian gen2: initial partial source generation
Daniel Kolesa [Thu, 22 Sep 2016 14:59:28 +0000 (16:59 +0200)]
eolian gen2: add event generation
Daniel Kolesa [Thu, 22 Sep 2016 13:58:06 +0000 (15:58 +0200)]
eolian gen2: initial stubs for source writing
Daniel Kolesa [Wed, 21 Sep 2016 15:20:52 +0000 (17:20 +0200)]
eolian gen2: generate docs for funcs/events
Daniel Kolesa [Wed, 21 Sep 2016 13:49:22 +0000 (15:49 +0200)]
eolian gen2: generate docs for types
Daniel Kolesa [Wed, 21 Sep 2016 13:29:28 +0000 (15:29 +0200)]
eolian gen2: add code to handle doxygen generation
Daniel Kolesa [Tue, 20 Sep 2016 14:38:19 +0000 (16:38 +0200)]
eolian gen2: only generate eo c/h by default
Daniel Kolesa [Tue, 20 Sep 2016 13:50:37 +0000 (15:50 +0200)]
eolian gen2: feature complete header generator (eo and legacy)
Daniel Kolesa [Tue, 20 Sep 2016 12:22:05 +0000 (14:22 +0200)]
eolian gen2: generate fully functional eo headers
Daniel Kolesa [Mon, 19 Sep 2016 15:36:48 +0000 (17:36 +0200)]
eolian gen2: initial header generation
Daniel Kolesa [Thu, 15 Sep 2016 14:56:43 +0000 (16:56 +0200)]
eolian gen2: full type generator
Daniel Kolesa [Thu, 15 Sep 2016 14:36:24 +0000 (16:36 +0200)]
eolian gen2: generate stub headers
Daniel Kolesa [Thu, 15 Sep 2016 13:49:16 +0000 (15:49 +0200)]
eolian gen2: use length_get when enclosing include guards
Daniel Kolesa [Thu, 15 Sep 2016 13:48:15 +0000 (15:48 +0200)]
eolian gen2: initial type gen subroutine
Daniel Kolesa [Thu, 15 Sep 2016 13:30:07 +0000 (15:30 +0200)]
eolian gen2: initial type generation bits
Daniel Kolesa [Thu, 15 Sep 2016 13:11:14 +0000 (15:11 +0200)]
eolian gen2: add file read
Daniel Kolesa [Wed, 14 Sep 2016 15:07:37 +0000 (17:07 +0200)]
eolian gen2: include guard func
Daniel Kolesa [Wed, 14 Sep 2016 14:44:51 +0000 (16:44 +0200)]
eolian gen2: parse input file properly
Daniel Kolesa [Wed, 14 Sep 2016 14:00:10 +0000 (16:00 +0200)]
eolian gen2: add stubs for file writing
Daniel Kolesa [Wed, 14 Sep 2016 13:28:29 +0000 (15:28 +0200)]
eolian gen2: add logging and main.h
Daniel Kolesa [Tue, 13 Sep 2016 16:01:05 +0000 (18:01 +0200)]
eolian gen2: prepare gen/arguments/file infra
Daniel Kolesa [Tue, 13 Sep 2016 12:18:09 +0000 (14:18 +0200)]
eolian gen: initial infra for new C generator
Jaehyun Cho [Fri, 7 Oct 2016 08:54:55 +0000 (17:54 +0900)]
naviframe: Fix to add SIG_ITEM_ACTIVATED in smart callbacks.
This commit fixes commit
3a0eb75bda1bd9274e4c9de1b6ce9143b24cfc80.
Jaehyun Cho [Fri, 7 Oct 2016 08:07:48 +0000 (17:07 +0900)]
naviframe: Add "item,activated" smart callback.
"item,activated" smart callback is added to notice when an item is
activated.
"item,activated" smart callback is called as follows.
1. Item push is finished and the new item is activated.
2. Item pop is finished and the previous item is activated.
void *event_info in smart callback is the activated item pointer.
Jaehyun Cho [Fri, 7 Oct 2016 07:39:14 +0000 (16:39 +0900)]
Revert "naviframe: Add "push,finished" and "pop,finished" smart callbacks."
This reverts commit
17ac58a081a05f6e96b248f80c007e67d1f4ff44.
Instead, "item,activated" smart callback will be added.
Jean-Philippe Andre [Thu, 6 Oct 2016 07:27:28 +0000 (16:27 +0900)]
eo: Fix deadlocks with composite objects
This happens with shared objects.
The situation seems to be:
1. object has composited object a of class A in thread 1
2. call something on object a from thread 2, deadlock
In fact, do anything from thread 2 on a shared object and you deadlock.
Jean-Philippe Andre [Thu, 6 Oct 2016 07:19:12 +0000 (16:19 +0900)]
eo: Fix deadlock in efl_parent_set
If the object is shared and the given parent is invalid (eg. deleted)
then we will deadlock later. This also adds a test case with it.
Jean-Philippe Andre [Thu, 6 Oct 2016 06:42:03 +0000 (15:42 +0900)]
eo: Test deadlock after finalize (shared objects)
This is a test case for
258cfbbe8013b50a7d3f89ab863dab73fce
Unfortunately there are many other functions that we should
be testing, not just efl_finalized_get().
Jean-Philippe Andre [Thu, 6 Oct 2016 03:09:53 +0000 (12:09 +0900)]
evas: Fix async filters following changes in EO
EO is now extremely restrictive wrt. threads so that efl_data_scope_get()
can't work outside the main loop. This patch fixes the usage to create
sw buffers as shared objects (accessible from both the main loop and evas
async thread) and use plain old pointers where possible.
The buffers now have no parent because efl_add(CLASS, obj_from_mainloop)
does not work with shared objects. This is bad, as the buffers conceptually
belong to the main loop, and only need to be accessible from the draw thread
for a few calls. The main loop determines their lifecycle.
Fixes T4628
Jean-Philippe Andre [Thu, 6 Oct 2016 02:55:03 +0000 (11:55 +0900)]
eo: Fix deadlock with shared objects
The object pointer was passed to EO_OBJ_DONE, rather than its
eo id.