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
It has been discussed on the ML (thread: "[RFC] rename efl_self") and
IRC, and has been decided we should rename it to this in order to avoid
confusion with the already established meaning of self which is very
similar to what we were using it for, but didn't have complete overlap.
Kudos to Marcel Hollerbach for initiating the discussion and
fighting for it until he convinced a significant mass. :)
This commit breaks API, and depending on compiler potentially ABI.
@feature
This combines evas canvas functions to list and query
touch points into a single iterator:
- evas_touch_point_list_count
- evas_touch_point_list_nth_xy_get
- evas_touch_point_list_nth_id_get
- evas_touch_point_list_nth_state_get
This also fixes a number of issues related to feeding fake
input events.
Note: I wanted to add delta x,y information as well but it's
in fact not really possible outside the event callback itself,
as the previous x,y position will not be updated unless there's
an event.
@feature
Those two properties aren't related to a "drawing" canvas
but to the current state of input.
Note: both Efl.Input.Pointer (pointer input event data) and
Efl.Input.Interface (common interface for input handling objects)
expose a pointer position API. Not sure what to do about that.
enventor exhibits this issue, where the focus target is
NULL in some cases. The ERR message was harmless, but it's
good to avoid it and be explicit that the object should be
non NULL when adding event callbacks.
Efl.Object.event_callback_call no longer calls legacy smart callbacks;
calling only event callbacks registered with the given event description
pointer.
Create the method Efl.Object.event_callback_legacy_call to inherit the old
behavior from Efl.Object.event_callback_call, calling both Efl.Object events
and legacy smart callbacks.
Update all other files accordingly in order to still supply legacy
callbacks while they are necessary.
This simply avoids calling functions on NULL objects, since
the previous patch would ERR out rather than silently ignore
the problem.
I just add explicit NULL checks before calling the functions,
so it's clear the object could be NULL (in the widget).
This removes:
Efl.Event interface
And renames:
Efl.Event.Input -> Efl.Input.Event
Efl.Event -> Efl.Input.Event (merged)
Efl.Event.Pointer -> Efl.Input.Pointer
Efl.Event.Key -> Efl.Input.Key
Efl.Event.Hold -> Efl.Input.Hold
This also moves some interfaces from efl/ to evas/ where they
belong better.
This allows renaming Eo_Event to Efl_Event.
EAPI elm_win_type_set
EAPI elm_win_name_set
Those two APIs should never have been part of the legacy API,
but they have been generated since at least 1.16. The commits
1aceb3bc19
and
41aa19447c
removed the legacy symbols generation. It seemed like a good
idea since the APIs shouldn't exist, but in fact this broke
ABI. I hate this. So sorry about it.
I'm adding them back in with no documentation and as
EINA_DEPRECATED.
This is an emergency commit before the 1.18.x release
announcement.
Fixes T4344
@fix
alpha
If we have a borderless alpha window, then make call to set opaque
region accordingly. This still avoids calling opaque_region_set twice,
yet maintains opaque region for the above mentioned case.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This removes some useless code in various places, where the
switch from eo_do() to standard function call was not properly
refactored.
This changes:
type ret = 0;
ret = my_eo_function();
return ret;
To:
return my_eo_function();
When we are calculating minimum size hints for the window object, we
should be adding framespace to maximum size, not subtracting it...
Honestly this just looks like a brain-dead typo.
Fixes T44225
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Previously, if the window had no frame object, then this could would
have been setting opaque region twice (for the alpha case). We can
avoid this if we move the alpha check to below the frame check.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This reverts commit fb24955782.
While this patch did fix the issue of toggling window Borderless state
in EFl-Wl client applications, it is "Enlightenment's" stance that it
will not change to match this fix, so this has to be reverted else
internal E dialogs show up with no border (due to them using SSD).
This is going to re-open T4092 sadly :( and now leave that bug with no
possible fix.
ref T4092
Fixes T4126
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit partially fixes a phab ticket where toggling window border
state (elm_test -to "Window States") would cause the frame to be
destroyed thus making the window contents appear to jump around
ref T4092
NB: I call this a 'partial' fix because while it does fix the issue of
efl client apps, there is still some breakage in Enlightenment that
needs investigating.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit just readds the layer setting code which made the frame
border be above content. This does make sense in some contexts
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This patch fixes an issue where if you tried to resize a window to
it's minimum size, the contents of the window would draw outside the
window frame. Basically, when we are setting min/max size hints to the
window object we need to account for framespace.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This patch fixes an issue where wayland windows would not swallow
clients properly. Basically, we should be swallowing the elm window
layout directly rather than use a rectangle (as was previous). This
commit also waits until the internal elm theme has been applied to the
sd->edje object before adding the wayland window frame.
This commit has the added benefit of being able to remove an additional
Evas_Object from the internal data structure.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
this fixes T4053
this was due to everal widgets haveing changed their class names and
are using the new names for mapping to keybinding config that used
legacy names to match binding to widget.
Summary:
If every assigning logics to enginelist is not performed some how,
system will crash because the first parameter of strcmp is null.
Test Plan: N/A
Reviewers: Hermet
Reviewed By: Hermet
Subscribers: cedric, Hermet, raster, jpeg
Differential Revision: https://phab.enlightenment.org/D4149
Summary:
if trying to apply incorrect theme, widget apply default theme and return TRUE.
so there is no way to check it really apply correct theme.
To resolve this problem, _elm_theme_set return three type enum
* related history : 4ca3ef4514
* elm_object_style_set is public api, so I didn't change it.
* typedef name [ Theme_Apply ] is temporarily, please suggest better one.
@fix
Reviewers: singh.amitesh, herb, Hermet, cedric, jpeg, raster
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4073
Those actually belong to elm_config, or rather Efl.Config:
efl_config_int_set("cache_image_cache_size", 42);
efl_config_int_set("cache_font_cache_size", 1337);
It supports the same syntax as the config value, but
overrides it. This provides a more convenient way to select
the acceleration for a single window.
Its get() value should be what was effective when the window was
created. So it can depend on the config or a previous call
to set().
@feature
only start throttling ocne we have a window and it has rendered or
been focused or mouse has gone in - then we are surely really visible
and sane and only start throttling if no windows are visible then. if
auto throttle is on this can improve startup time by the trottle amount