Commit Graph

65052 Commits

Author SHA1 Message Date
Mike Blumenkrantz 17995ee710 efl/gesture: reorder gesture private structs
order based on descending member size

Reviewed-by: woochan lee <wc0917.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D11197
2020-02-05 10:10:24 +01:00
Mike Blumenkrantz a29a59fa64 efl/gesture: remove 'gesture' member from recognizer data struct
this was never used

ref T8503

Reviewed-by: woochan lee <wc0917.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D11178
2020-02-05 10:10:21 +01:00
Mike Blumenkrantz 9691299c34 efl/gesture: remove 'manager' member from recognizer data struct
this can be fetched using efl_provider_find from the recognizer

ref T8503

Reviewed-by: woochan lee <wc0917.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D11177
2020-02-05 10:10:18 +01:00
Mike Blumenkrantz 7444007fe7 efl/gesture: remove 'config' property from recognizers
this is a manager functionality, and recognizers are always child objects of
managers

ref T8503

Reviewed-by: woochan lee <wc0917.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D11176
2020-02-05 10:10:14 +01:00
Mike Blumenkrantz 159b73c0d8 efl/gesture: expose 'continues' as a public property for recognizers
we still access this using private data in the in-tree recognizers, but
now it's also accessible normally to custom recognizers

ref T8503

Reviewed-by: woochan lee <wc0917.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D11175
2020-02-05 10:10:11 +01:00
Mike Blumenkrantz 54cb6e04d2 efl/gesture: add an event to notify when a config value has been changed
recognizers should be storing config values internally to avoid overhead
of multiple eo/hash lookups on every event

Reviewed-by: woochan lee <wc0917.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D11174
2020-02-05 10:10:08 +01:00
Mike Blumenkrantz 89e8cb912c efl/gesture: move finger_size into private structs of recognizers
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

Reviewed-by: woochan lee <wc0917.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D11173
2020-02-05 10:10:05 +01:00
Mike Blumenkrantz f2347354f3 tests/gesture: add zoom and pinch tests
basic tests verifying completion of the gestures

Differential Revision: https://phab.enlightenment.org/D11170
2020-02-05 10:10:02 +01:00
Mike Blumenkrantz ff8e8fd5f8 efl/gesture: discard non-press events for all touch points if unseen previously
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

Reviewed-by: woochan lee <wc0917.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D11169
2020-02-05 10:10:01 +01:00
Mike Blumenkrantz bf0fe4a800 efl/gesture: add 'pressed' state info for touch data
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

Reviewed-by: woochan lee <wc0917.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D11168
2020-02-05 10:09:57 +01:00
Mike Blumenkrantz 0bb36d23e2 efl/gesture: correctly reset zoom gesture recognizer data on >2 finger touch
canceling without a proper reset breaks the recognizer for successive events

Reviewed-by: woochan lee <wc0917.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D11167
2020-02-05 10:09:55 +01:00
Mike Blumenkrantz f5e7625af8 tests/elm: add util function for doing pinch motions
simple function which takes start points and vectors for 2 touches

Differential Revision: https://phab.enlightenment.org/D11166
2020-02-05 10:09:52 +01:00
Mike Blumenkrantz 5abe7f14d2 efl/gesture: more accurately handle flick/momentum recognition with multi-touch
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

Reviewed-by: woochan lee <wc0917.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D11165
2020-02-05 10:09:51 +01:00
Mike Blumenkrantz 72bba1d837 efl/gesture: break out _direction_get() into helper function
this is useful in multiple places, no functional changes

Reviewed-by: woochan lee <wc0917.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D11164
2020-02-05 10:09:48 +01:00
Mike Blumenkrantz 12a064874e evas/events: fix multi-touch object targeting on touch down events
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

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D11163
2020-02-05 10:09:45 +01:00
Mike Blumenkrantz a1222c7d60 efl/gesture: correct config value name for glayer_double_tap_timeout
typo--

Reviewed-by: Hermet Park <<hermetpark@gmail.com>>
Differential Revision: https://phab.enlightenment.org/D11155
2020-02-05 10:09:42 +01:00
Mike Blumenkrantz 0694a54dbd tests/gesture: add extra event callback to verify event multiplication is fixed
Differential Revision: https://phab.enlightenment.org/D11145
2020-02-05 10:09:06 +01:00
Mike Blumenkrantz e41434d96d efl/gesture: redo (and make stupider) hash usage in gesture manager
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
2020-02-05 10:09:05 +01:00
Mike Blumenkrantz 38641ecd9b efl/gesture: add touch_count property for gesture event info
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

Reviewed-by: woochan lee <wc0917.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D11126
2020-02-05 10:09:03 +01:00
Mike Blumenkrantz aaaae57bf4 tests/gesture: add gesture tests for basic multi-touch tap events
Differential Revision: https://phab.enlightenment.org/D11090
2020-02-05 10:09:00 +01:00
Mike Blumenkrantz ec4ff09d97 tests/elm: add util functions for doing multi-touch events
Differential Revision: https://phab.enlightenment.org/D11089
2020-02-05 10:08:58 +01:00
Mike Blumenkrantz ce3d569cfd efl/gesture: fix zoom to ignore single press events and not crash
zoom requires two fingers for a pinch, so skip the first press

Reviewed-by: woochan lee <wc0917.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D11088
2020-02-05 10:08:57 +01:00
Mike Blumenkrantz 89b35b3f79 efl/gesture: restrict flick and momentum gestures to original touch point
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

Reviewed-by: woochan lee <wc0917.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D11087
2020-02-05 10:08:54 +01:00
Mike Blumenkrantz 15527dbecb efl/gesture: handle multi-touch press for tap gestures
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

Reviewed-by: woochan lee <wc0917.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D11086
2020-02-05 10:08:51 +01:00
Yeongjong Lee 723382bf5c evas: prevent calling api with NULL filter image
This fixes a bunch of warnings like that
```
../src/lib/eo/eo.c:644 _efl_object_call_resolve() NULL passed to function xxx().
```

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11283
2020-02-05 08:58:25 +01:00
Marcel Hollerbach 7f57e8e601 move stabelized items out of @beta
fixes T8570
fixes T8567
fixes T8566
fixes T8521
fixes T8501
fixes T8460
fixes T8455
fixes T8454
fixes T8254
fixes T7945
fixes T7944
fixes T7943
fixes T7942
fixes T7941
fixes T7940
fixes T7939
fixes T7938
fixes T7937
fixes T7936
fixes T7935
fixes T7934
fixes T7933
fixes T7858
fixes T7857
fixes T7856
fixes T7855
fixes T8599

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D11264
2020-02-05 08:58:22 +01:00
abdulleh Ghujeh ecd10c8c3d efl_canvas_textblock: incorrect value returned for underline dashed gap
the function text_underline_dashed_gap_get return underline_dash_width value instead of underline_dash_gap value.
this patch return the correct value.

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D11277
2020-02-05 08:58:18 +01:00
junsu choi fcdf523b98 software_evas_engine: Remove unnecessary member for ector_surface_set
Summary:
The clear of the Evas_Thread_Command_Ector_Surface structure is an unmanaged variable.
When ector calls _draw_thread_ector_surface_set and it checks the clear value.
the clear value is garbage value. This can cause the pixels to fail to initialize.
This is why afterimages remain after updating shapes while using ector surfaces.

Test Plan:
./build/src/examples/evas/efl-canvas-vg-simple
1 - Basic Shape test
Scale up 's' or do something

Reviewers: Hermet, smohanty, kimcinoo

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11278
2020-02-05 10:47:15 +09:00
Ali Alzyod ba99891710 efl.canvas.textblock: update style strings
Summary:
Update

backing -> background_type
backing_color -> background_color
underline_dash_color -> underline_dashed_color
underline - > underline_type
strikethrough - > strikethrough_type
style -> (effect_type + shadow_direction)
underline_dash_width -> underline_dashed_width
underline_dashed_gap -> underline_dashed_gap

**+prevent unified APIs from supporting legacy style tags, and prevent legacy APIs from the ability to use new unified tags**

Reviewers: zmike, woohyun, segfaultxavi, bu5hm4n, cedric

Reviewed By: segfaultxavi, bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8523

Differential Revision: https://phab.enlightenment.org/D11188
2020-02-04 17:54:34 +01:00
Ali Alzyod 5f5253214c efl.input.text: add underscore for enums names
Summary:
(Efl.Input_Text.Panel_Layout_Type) phonenumber -> phone_number
(Efl.Input_Text.Panel_Layout_Type) numberonly     ->number_only
(Efl.Input_Text.Capitalize_Type) allcharacter -> all
(Efl.Input_Text.Panel_Layout_Normal_Variation_Type) filename -> file_name
(Efl.Input_Text.Panel_Layout_Password_Variation_Type) numberonly-> number_only

Reviewers: segfaultxavi, woohyun, bu5hm4n

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8541

Differential Revision: https://phab.enlightenment.org/D11280
2020-02-04 16:44:58 +01:00
abdulleh Ghujeh 7c058d5e61 efl_text_change_info: change text change type property( bool -> enum)
changed the insertion property to be an enum instead of a boolean property.
this will be clearer for usage and provide the ability to add more types in the future.

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D11272
2020-02-04 09:54:58 +01:00
Yeongjong Lee dd4bad3037 csharp: implement GetChildrenIndex for GenericModel
Summary: This patch will fix EFL# build error.

Reviewers: felipealmeida, woohyun, Jaehyun_Cho

Reviewed By: Jaehyun_Cho

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11269
2020-02-04 17:17:27 +09:00
Ali Alzyod a92f8c210b efl.ui.textbox: add and use keyboard bindings
As other widgets, efl.ui.textbox will use keyboard bindings instead of listen to keyboard events

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11236
2020-02-04 09:14:04 +01:00
Marcel Hollerbach 1587d7fa1b elm_config: add helper method for copying widget key bindings
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11262
2020-02-04 09:14:00 +01:00
Marcel Hollerbach 12880f053c elm_config: fix wrong update code
the version here was wrong, probebly a missmatch between hex. & dec and
a off by one error. This is fixing that problem and does not just copy
all keybindings.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11261
2020-02-04 09:13:57 +01:00
Shinwoo Kim 8986f8d2dc evas proxy: make it work for load_region
Summary:
This makes a proxy object use a selective region of a source object.
So far a proxy has not worked for load_region at all.
This should be better solution than https://phab.enlightenment.org/D10604
introducing new interface.

This is useful when the source is too big to allocate a proxy surface.
This will be used by elm_scroller to solve following issue.

[Issue]
If size of elm_sclloer content is too big, then the proxy of
elm_scroller to show loop effect does not work. Because
evas_gl_common_image_surface_new does not allow
bigger size surface than max_texture_size

Reviewers: Hermet, jsuya

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10626
2020-02-04 12:14:25 +09:00
Shinwoo Kim 50f3648391 evas proxy: make it work for File_Save.save
Summary:
File_Save.save does not work for proxy object from following commit.

   c53f152 evas: Make save() work on snapshots

Test Plan:
1. Add an image object and set source object.
evas_object_image_source_set(obj, source);

2. Save the object as a file when you need.
evas_object_image_save(obj, "./file_name.png", NULL, NULL);

Reviewers: cedric, Hermet, jsuya

Reviewed By: Hermet

Subscribers: zmike, subodh6129, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10629
2020-02-04 12:06:38 +09:00
Marcel Hollerbach 02245a2494 theme: rework a bit the tab_pager theme
the theme now works in a way where the current tab is in one color with
the content, so its correctly assosiated. The not selected items are in
a bit more gray setting so its meant to be in the background.

https://pasteboard.co/IB1UV8o.png

Differential Revision: https://phab.enlightenment.org/D10305
2020-02-03 17:16:06 +01:00
Marcel Hollerbach 566831e3e2 efl_ui_spotlight: correctly emit page size
this fixes tab pagers "on the fly" changing of the position manager.

ref D10775

Differential Revision: https://phab.enlightenment.org/D10957
2020-02-03 17:16:05 +01:00
Marcel Hollerbach 77a04db578 efl_ui_tab_pager: do not directly inherit from spotlight anymore
spotlight moved away from layout, this could have also been solved with
setting a edje object as resize object. However, this commit now
contains the spotlight internally.

The resons why containing it internally is better:
- You now only have one way of selecting a page, marking it as selection
via the selectable API
- You cannot build race conditions between selecting a page and setting
the active_element anymore
- The tab_pager is now also just a simple single_selectable implementor,
which makes this whole usage more convinient.
- There is now a event you can listen to if you want to know if
something has changed the selected item
- push and pop would have never worked correctly in the tab_pager, as
the item would have appeared always before the item was "faded" in. This
possibility is not given anymore

Last but not least, this makes tab_pager usable again, the tab bar is
displayed again.

Differential Revision: https://phab.enlightenment.org/D10775
2020-02-03 17:16:03 +01:00
Cedric BAIL 70849969b8 efl: add test for efl_model_children_index_get.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11186
2020-01-31 10:11:40 -08:00
Cedric BAIL 2e41a13166 efl: add Efl.Model.Children_Index_Get.
This allow for fetching random children in a model. A simple fallback is
provided by Efl.Loop_Model that will allow all model to provide this
feature in a non optimized way. Later on this can be speeded up.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11185
2020-01-31 10:11:39 -08:00
Cedric BAIL eaeb96cc3d ecore: refactor unpacking/packing code used in conjonction with eina_future_all*.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11184
2020-01-31 10:11:35 -08:00
Cedric BAIL 5d20a3bc6d eina: do not warn when calling eina_inarray_pop on empty inarray to match eina_array_pop.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11253
2020-01-31 10:11:33 -08:00
Cedric BAIL c7508d3d52 eina: add test for eina_future_all_iterator.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11181
2020-01-31 10:11:32 -08:00
Cedric BAIL 373f2ad797 eina: add eina_future_all_iterator and eina_promise_all_iterator.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11180
2020-01-31 10:11:31 -08:00
Tom Callaway c245b576aa Fix build with gcc 10 (which has -fno-common enabled by default).
EFL failed to build from source in Fedora Rawhide as a result of the update to GCC 10. GCC 10 enables -fno-common by default, and this found three issues in EFL:

  # The eina benchmark code defined int key_size in a header that was included in multiple places.
  # The elementary test code defines the "dt1", "dt2", "dt3" vars in two code files which are compiled together (but these variables do not appear to be used globally)
  # The eio test code defines the "ee" var in two code files which are compiled together (but this variable does not appear to be used globally)

I've fixed these issues and confirmed locally that the code builds again in Fedora.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11259
2020-01-31 14:31:57 +01:00
ProhtMeyhet 5af0e65bff edje: use EINA_UNUSED consistently after in function signatures -- part2
Sorry, I've overlooked these as they are on a new line,
or at the beginning of a function, but I think I've got them all now.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11254
2020-01-31 14:31:54 +01:00
Marcel Hollerbach 509ad38083 evas_object_grid: fix leaking of pointer
priv->children was leaked to a freed pointer here.
This is now fixed.
2020-01-31 13:52:51 +01:00
Woochanlee 260964dbdd evas_object_grid: Fix memory leak.
_evas_object_smart_clipped_init() (in evas_object_smart.c) is called when evas_object_grid is created.
And a rectangle is created in the function.

But, the rectangle is not deleted even  though evas_objecct_grid is deleted.
This patch fixes the problem by deleting it in smart_del fucntion.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11140
2020-01-31 13:52:51 +01:00