Elm.Interface.Fileselector now supports Efl.Model objects, allowing users
to work with paths from different data models.
Example of model attribution:
ELm_Fileselector *fs = eo_add(EFL_FILESELECTOR_CLASS, NULL);
Efl_Model *model = ...;
elm_interface_fileselector_model_set(fs, model, NULL);
Now when dealing with pointer types, we will not get pointer to
pointer semantics in callbacks and eina_promise_owner_value_set
for Eina_Promise.
It will work as expected:
Eina_Promise_Owner* promise = eina_promise_add();
void* p = malloc(sizeof(T));
eina_promise_owner_value_set(promise, p, &free);
This does:
1. Forward keyboard events from evas to win
2. Allow feeding external input events
Input events can be faked by apps by simply forging
eo objects of the proper type (key or pointer evt) and
calling eo_event_callback_call().
Such events will be forwarded to the internal Evas, and
some bool flags prevent infinite refeeding loops.
efl_event_dup() returns fake events for this to work.
@feature
This reverts commit ac5a0b7e79.
I added assert(pd == sd) in the modified code and couldn't find
anything suspicious. The proper class is used in eo_data_scope_get().
I also can't find a crash or a bug currently in hover. I know there
was a problem earlier, but that was fixed in 3092e08a83.
Now, if there is still a problem, we should check it carefully.
Pinging @cedric
We can not assume that the elementary parent will be also somewhere in the eo parent
hierarchy. We need to explore both when doing an eo_provider_find in elementary for it
to be really useful.
This lets me narrow down the remaining cases of pointers across the EFL.
The void pointers will later need to be reevaluated on per-case basis and
replaced appropriately where possible/feasible.
1. remain elm_win_type_set
2. remain elm_win_alpha_set
3. remain elm_win_available_profile_set/get
app usually set availble profile into window, and app fw or other lib can read it.
so I remain get/set api both.
4. remove elm_win_profile_set/get from eo
5. remove illume feture in eo and move it to legacy
This code was written when eo_del() was removed and eo_unref() was the
recommended practice. Since we added eo_del() back we now need to adjust
this new code accordingly.
This reverts commit 546ff7bbba.
It seems that eo_del() is useful and removing it was creating bugs.
The issue is that the way we defined parents in eo, both the parent and
the programmer share a reference to the object. When we eo_unref() that
reference as the programmer, eo has no way to know it's this specific
reference we are freeing, and not a general one, so in some
circumstances, for example:
eo_ref(child);
eo_unref(child); // trying to delete here
eo_unref(container); // container is deleted here
eo_unref(child); // child already has 0 refs before this point.
We would have an issue with references and objects being freed too soon
and in general, issue with the references.
Having eo_del() solves that, because this one explicitly unparents if
there is a parent, meaning the reference ownership is explicitly taken
by the programmer.
eo_del() is essentially a convenience function around "check if has
parent, and if so unparent, otherwise, unref". Which should be used when
you want to delete an object although it has a parent, and is equivalent
to eo_unref() when it doesn't have one.
1. remain borderless property.
2. shaped property was removed because wayland not support this.
3. remain noblank property.
4. remain role, name properties.
5. remove title property because it can be supported using name property
1. remain iconified, maximized, fullscreen property
2. remain sticky property
3. change return value type of modal from bool to enum for the future.
4. merge urgent_set and demand_attention
5. remain activate method
1. remain focus_highlight_style,focus_highlight_enabled,
focus_highlight_animated,prop_focus_skip,focus. because each window need to set the focus
feature.
2. autohide, autodel is remained for convenient.
3. icon_name will be removed. elm_win_icon_object_get can used instaed of icon_name.
elm_win have three feature releated with screen.
1. screen_rotation_get
2. scrren_size_get
3. screen_dpi_get
so create efl_screen interface, and elm_win implement that interface
Summary:
- elm_map has a scrollbale interface and it is set
as ELM_SCROLLER_SINGLE_DIRECTION_SOFT by default.
- elm_map can be rotated by gesture or by an API
elm_map_rotate_set, so this single direction
makes scroll unnatural.
Reviewers: Hermet, cedric
Subscribers: conr2d, jpeg
Differential Revision: https://phab.enlightenment.org/D3986
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This is going back to the same idea as legacy. We will have
events such as:
- move
- down
- up
- in
- out
- wheel
- cancel ("new" - very rare)
Now the question is whether/how we should divide "multi" events
which start from the 2nd finger from standard mouse events. The first
multitouch finger should by default look like a mouse event.
This moves Efl.Pointer.Event back to Evas. Originally I wanted
to share this class with Ecore but eventually I didn't need to
do so, since only ecore_evas (which depends on evas) really needs
access to these.
The internal data struct is not moved out of efl (yet?)
previously, elm_image refered to align values
set by evas_object_size_hint_align_set function
to position the internal image inside an image object.
size hint value is for positioning the image object inside its container object,
so the previous code is inappropriate.
this commit adds 'align' property for positioning the internal image.
Summary:
Currently when an item in gengrid is focused and if it is scrolled
off the viewport halfly and if it user clicks on it, it won't be
scrolled into viewport. Only non-focused items will be scrolled into
viewport when clicked.
Test Plan:
elementary_test -> Gengrid focus -> Click an item ->
Scroll it little bit out of viewport -> Click again
Reviewers: prince.dubey, shilpasingh, cedric, raster, SanghyeonLee
Subscribers: seoz, rajeshps, govi, jpeg
Differential Revision: https://phab.enlightenment.org/D3977
Previously, preserved content was shown unexpectedly after its naviframe
item was popped because the preserved content was not removed but was
unset from its naviframe item.
Since popped naviframe item becomes hidden on the screen, the preserved
content of the popped naviframe item should become hidden by default as
well.
So, I was storing a single "sd" pointer (class private data)
but using it in two different places, ie. as if it were two
different classes. Crashes happened, complaints were heard.
See T3714.
This fixes T3714
Efl.Part uses a basic inheritance for layout objects, but somehow
this completely falls apart when the child class overrides all
the functions. Weird. I'll check that more.
Summary:
When the widget is unset from any container, a parent of the widget
doesn't exist. So we should set its parent to the top object.
But if we just set sd->parent, the parent can not find the widget as a
child. So the container widgets set the parent-child relation when
sub object is unset.
This commit is related to 0822ad2195.
@fix
Test Plan:
Check this issue.
https://phab.enlightenment.org/D3855
The unset widget don't added any widget as child.
So when it set scale, the widget can not reload the thmeme.
Reviewers: raster, cedric, Hermet, reutskiy.v.v
Reviewed By: Hermet, reutskiy.v.v
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3957
Conflicts:
src/lib/elementary/elm_mapbuf.c