this is a manager functionality, and recognizers are always child objects of
managers
ref T8503
Differential Revision: https://phab.enlightenment.org/D11176
we still access this using private data in the in-tree recognizers, but
now it's also accessible normally to custom recognizers
ref T8503
Differential Revision: https://phab.enlightenment.org/D11175
recognizers should be storing config values internally to avoid overhead
of multiple eo/hash lookups on every event
Differential Revision: https://phab.enlightenment.org/D11174
we must write these recognizers using publicly available apis to ensure
that we don't accidentally start using private struct data
this requires a lot of changes to properly manage the config value for finger
size and update the recognizer data when changed (which external recognizers
will need to monitor an event to achieve) and then also to change some
recognizers so they don't use memset and unset the finger_size value
ref TT8503
Differential Revision: https://phab.enlightenment.org/D11173
not sure why this was restricted to first touch point previously, but the logic
applies to all points as we don't want to be tracking input for a touch we
haven't gotten a down for
Differential Revision: https://phab.enlightenment.org/D11169
since we retain touch info for the duration of a touch sequence, including
after a touch point has been unpressed, it's necessary to track the current
state of each point and then use that to accurately determine the number of
touches active
Differential Revision: https://phab.enlightenment.org/D11168
if we have one of these gestures where we are flicking/momentuming with multiple
touch points, we want to permit this so long as the touch points are moving vaguely
in the same direction, e.g., press -> swipe with 2 fingers
with this, we now cancel these gestures with multi-touch active if we detect motion
with subsequent touch events that doesn't match the vector of the "active" press
for which we are monitoring events
Differential Revision: https://phab.enlightenment.org/D11165
a touch press is both a touch and a move event, which means the canvas must
update its list of target objects on the first touch press to avoid using the
wrong objects when processing events
@fix
Differential Revision: https://phab.enlightenment.org/D11163
this rewrites the gesture event dispatcher to use a hash of hashes for
tracking which events are being watched on a given object to avoid:
* dispatching n gesture events per object to each callback, where n is the
number of gesture callbacks for any given type
* removing all gesture callbacks when only one callback is removed
this is not smart code. it should be improved at some time, but that time
is not now.
Differential Revision: https://phab.enlightenment.org/D11144
this allows us to provide the number of touch points active in any gesture
so we can detect e.g., double-tap with two fingers
Differential Revision: https://phab.enlightenment.org/D11126
if multiple fingers are pressed down, filter and use only the first finger
to make gesture recognizing more accurate
this may change later once tests develop
Differential Revision: https://phab.enlightenment.org/D11087
any time multiple fingers are pressed down at the same time, we should
treat this as a single gesture like if only one finger was pressed
Differential Revision: https://phab.enlightenment.org/D11086
this lets gesture framework track two touch points in order to distinguish between
successive presses and e.g., treat a simultaneous two finger tap as a single tap
gesture rather than two
it also simplifies some internal code and removes most hash lookups
Differential Revision: https://phab.enlightenment.org/D11085
this adds test cases for flicks in different directions, flicks which
leave the canvas, and gestures which are momentums but not flicks
Differential Revision: https://phab.enlightenment.org/D11055
some parts of this were entirely unreadable due to mixed tabs/spaces and other
bizarre formatting issues which somehow made it into the tree
Differential Revision: https://phab.enlightenment.org/D11053
this enables various internal components which use timestamps to have timestamps
that can be used
Differential Revision: https://phab.enlightenment.org/D11028
for non-continuing gestures which have been canceled at this point, we must
not emit events in order to avoid sending useless events which serve no
purpose other than to waste cpu cycles
Differential Revision: https://phab.enlightenment.org/D11027
We want to keep implementation for file interface in a safe place and remove it from our side world (eo).
This is a simple copy-paste, from efl.ui.textbox into efl_ui_internal_text_interactive
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11153
Summary:
This reverts commit 93bd970259.
efl.ui.image using prev and current inner image object.
Unloading the efl.ui.image class can be unloaded up to the prev image.
And because efl.ui.image is using the image caching feature together,
it may get unexpected errors. Therefore, revert this patch.
Test Plan: N/A
Reviewers: Hermet
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11157
1- Implement setting selection range programmatically by modifying selection cursors from **efl_text_interactive_selection_cursors_get**
2- Add setter with **efl_text_interactive_selection_cursors_set** to set the range at once (modify start and end)
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Reviewed-by: WooHyun Jung <wh0705.jung@samsung.com>
Differential Revision: https://phab.enlightenment.org/D10968
Summary:
Variation sequence treated as a single run, if we found one, we keep looking adding to the same run, but if it is not, then we need to start a new one.
Before:
{F3826735}
After:
{F3826736}
Test Plan:
```
#include <stdio.h>
#include <Elementary.h>
/*
gcc -o example test.c `pkg-config --cflags --libs elementary`
*/
EAPI_MAIN int
elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
{
Evas_Object *win, *en;
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
win = elm_win_util_standard_add("emoji-example", "emoji-example");
elm_win_autodel_set(win, EINA_TRUE);
en = elm_entry_add(win);
elm_entry_scrollable_set(en, EINA_TRUE);
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(en, "<font_size=25>☪☪️☪가</font_size>");
evas_object_show(en);
elm_object_content_set(win, en);
evas_object_resize(win, 400, 200);
evas_object_show(win);
elm_run();
return 0;
}
ELM_MAIN()
```
Reviewers: woohyun, bowonryu
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8542
Differential Revision: https://phab.enlightenment.org/D11096
Summary:
1- add new Eina type (Eina_Int_Range). which represents int range (start, Len).
2- Use this type instead of Efl.Text_Range with selection events.
Reviewers: cedric, woohyun, bu5hm4n, segfaultxavi, zmike
Reviewed By: woohyun
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8570
Differential Revision: https://phab.enlightenment.org/D11128
Summary:
Since Stack_Manager displays fade in/out transition effects, the class
name is renamed from Stack_Manager to Fade_Manager.
Depends on D11142
Reviewers: segfaultxavi, bu5hm4n, zmike
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11143
Summary:
In spotlight classes, "Manager" and "Indicator" are used as prefix in
the class names.
e.g. Efl.Ui.Spotlight.Manager_Plain, Efl.Ui.Spotlight.Indicator_Icon
However, those classes are basically manager and indicator classes with
different features. Therefore, "Manager" and "Indicator" should be used
as postfix in the class names.
e.g. Efl.Ui.Spotlight.Plain_Manager, Efl.Ui.Spotlight.Icon_Indicator
However, for the easier usage of C APIs, c_prefix of those classes are
remained to be "efl_ui_spotlight_manager_xxx" and
"efl_ui_spotlight_indicator_xxx".
Reviewers: segfaultxavi, bu5hm4n, zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11142
evas can tell us max texture size. in edje when we have image sets
(multiple images that make up mipmaps effectively for a logical
image), we now can avoid choosing an image that exceeds max texture
size. this actually fixes bugs i have seen on the rpi3 which has a max
texture size of 2048 which makes it easy to exceed it with wallpapers
or even terminology's default theme.
so combo of new feature and fix... but requires a rebuild of the edj
files...
@feat + @fix
Summary:
Concrete class is only used to call static member of NativeMethod. they don't
need any inheritance and implementation of c functions.
Depends on D9893
Test Plan: ninja test
Reviewers: lauromoura, felipealmeida
Subscribers: Jaehyun_Cho, woohyun, segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9894
Summary:
We have checked that unload is not called even if different files
call again elm_image_file_set on the same object.
If file_set is called repeatedly, I think a potential error can occur.
So, modify to call unload when doing file_set by referring to efl_ui_zoomable.
Test Plan: N/A
Reviewers: Hermet, zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11148