Commit Graph

65300 Commits

Author SHA1 Message Date
Xavi Artigas 54b2ddd88e ecore_evas: Use EFL naming convention in cnp & dnd methods
Some methods were missing the Drag namespace or the _Cb suffix.
Depends on D11219

Differential Revision: https://phab.enlightenment.org/D11426
2020-03-04 17:26:30 +01:00
Xavi Artigas 8cdc8e9c8f mono-tests: Fix build after DnD changes
The test struct used to check mono bindings struct pack/unpack
is no longer available. Used a different one, and checked the same things.

Differential Revision: https://phab.enlightenment.org/D11219
2020-03-04 17:26:30 +01:00
Xavi Artigas c78841efcf docs: Strengthen docs for Copy&Paste and Drag&Drop
Including Eina.Content

And a typo/bugfix in ecore_evas_x.

Differential Revision: https://phab.enlightenment.org/D11204
2020-03-04 17:26:30 +01:00
Vincent Torri 9abd2604fa port cnp on Windows
Test Plan: Ctrl-c and Ctrl-Vworking

Reviewers: raster, zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11439
2020-03-04 17:26:30 +01:00
Marcel Hollerbach 61075d45cc ecore_evas: Introduce cnp support for cocoa
with this commit you can do limited cnp for cocoa. You still cannot copy
and paste pictures or markup arround, only text is supported so far.
However, text on its own works quite stable and good.

Differential Revision: https://phab.enlightenment.org/D11351
2020-03-04 17:26:30 +01:00
Marcel Hollerbach 072a5fa525 ecore_cocoa: change clipboard API
the new API works with mimetypes, so we can remove the cnp types from
Ecore_Cocoa.h and just forward the types from ecore_evas directly

Differential Revision: https://phab.enlightenment.org/D11350
2020-03-04 17:26:30 +01:00
Marcel Hollerbach 87901ea2ff rewrite efl cnp and dnd handling
the previous commits introduced a abstraction for drag in drop which can
be now used for this here. With this commit all the direct protocol
handling in efl.ui is removed, and only the ecore evas API is used.

Additionally, this lead to a giant refactor of how APIs do work. All
Efl.Ui. interfaces have been removed except Efl.Ui.Selection and
Efl.Ui.Dnd, these two have been restructored.
A small list of what is new:
- In general no function pointers are used anymore. They feel very
  uncompftable in bindings and in C. For us its a lot easier to just
listen to a event when a drop enters or leaves, there is no need to
register custom functions for that.
- Asynchronous data transphere is handled via futures, which proved to
  be more error safe.
- Formats and actions are handled as mime types / strings.
- 0 is the default seat if you do not know what else to take.
- Content is in general passes as a content container from eina, this
  also allows applications to pass custom types

The legacy dnd and cnp API is implemented based on that.
All cnp related things are in elm_cnp.c the dnd parts are in elm_dnd.c

Differential Revision: https://phab.enlightenment.org/D11190
2020-03-04 17:26:30 +01:00
Marcel Hollerbach 447fecd32e ecore_evas: introduce wayland support for cnp & dnd
This adds cnp support, actions are right now only mapped to "ask",
further support can be added there, and synchronization can be added to
register more available actions. However, i did not find *any* wayland
implementation in gtk qt nor chromiumos that even use the action to
indicate anything. This here also has a slightly different behaviour to
X11 in terms of coordinates for motion,leave,enter. They can contain
negative coordinates (which is due to the fact that wl is CSD and X11 is
SSD. However, I did not want to fix this in any regard, as you might
want to use that, and it would be a none trivial amount of code to fix
that.

Differential Revision: https://phab.enlightenment.org/D11329
2020-03-04 17:26:30 +01:00
Marcel Hollerbach c391870366 ecore_evas: introduce initial selection & dnd support for x.
Seats are not implemented, if there is a type mismatch promises are
going to be rejected. Most of this code is copied over from
selection_manager.

Differential Revision: https://phab.enlightenment.org/D11195
2020-03-04 17:26:30 +01:00
Marcel Hollerbach 2951c69c49 ecore_x_selection: do not skip any any atoms
i dont know why we skipped the first two atoms, but right now, if a
application is only providing one single target, we would crash.
With this we might copy a few atoms more. However, these atoms do not
matter, as we skip those, that we cannot understand

Differential Revision: https://phab.enlightenment.org/D11194
2020-03-04 17:26:29 +01:00
Marcel Hollerbach 6b337ed19b ecore_x: add API to request selection changed events for diff. wins
we need that in order to get seleciton per window events, which is
required to get a nice mapping onto the ecore_evas object.

Differential Revision: https://phab.enlightenment.org/D11193
2020-03-04 17:26:29 +01:00
Marcel Hollerbach ce070a8fdf ecore_evas: Introduce cnp / dnd API for ecore evas
The idea of copy and paste here is:
- The user specifies the content he wants to have in the selection
  buffer with a Eina_Content, these content pointer ownerships are
  passed to the called. Internally ecore_evas code will memorieze the
  pointer, and pass on function callbacks to the modules, which then do
  not have to deal with the ownership.

- In case the module does not specify these APIs, the callback
  implementation will be called, which only works for cnp *not* dnd.

- Action and mime types are handled as strings, which allows way better
  custom organisations.

(The docs needs improvement)

Differential Revision: https://phab.enlightenment.org/D11192
2020-03-04 17:26:29 +01:00
Marcel Hollerbach ff4cba32c3 eina: introduce Eina_Abstract_Content
A little abstraction to have abstract data content bound to a type.

Differential Revision: https://phab.enlightenment.org/D11018
2020-03-04 17:26:29 +01:00
Marcel Hollerbach c872940bae elm_label: add EFL_ACCESS_WIDGET_ACTION_MIXIN
we implement the API from it, so we should have that as a type here.

Differential Revision: https://phab.enlightenment.org/D11447
2020-03-04 15:05:08 +01:00
Hermet Park 146cf9da7e evas: ++safety by prevent invalid accesses. 2020-03-03 19:18:00 +09:00
Stefan Schmidt 120c0e4032 tests_: elementary: remove not used allocation in collection view test
Allocated but never used (and never freed). Seems like a copy and paste
bug to me.

CID: 1412363

Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11442
2020-03-03 10:55:44 +01:00
Stefan Schmidt 57adf37303 tests_: elementary: free memory in error path
Make sure we free the iterator here as well.

CID: 1409658

Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11441
2020-03-03 10:55:40 +01:00
Mike Blumenkrantz 677b507281 tests/gesture: add test for gesture sequence
ensure that tap continues working after complex gestures

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11440
2020-03-03 10:54:42 +01:00
Mike Blumenkrantz 710c05ed5a efl/gesture: deduplicate some code
also remove a misleading comment

no functional changes

Differential Revision: https://phab.enlightenment.org/D11395
2020-03-03 10:54:39 +01:00
Mike Blumenkrantz 6d9f8416e7 tests/gesture: add a couple rotate gesture tests
these end up triggering a lot of corner cases in other recognizers too,
but the tests themselves are fairly minimal

Differential Revision: https://phab.enlightenment.org/D11391
2020-03-03 10:54:38 +01:00
Mike Blumenkrantz 6aa9299cc9 tests/gesture: verify rotate gesture event counting in existing tests
these magically pass already

Differential Revision: https://phab.enlightenment.org/D11390
2020-03-03 10:54:37 +01:00
Mike Blumenkrantz db5fcd13db tests/elm: add util function for doing a multi-press drag around
same as existing function, but takes a finger id

Differential Revision: https://phab.enlightenment.org/D11389
2020-03-03 10:54:36 +01:00
Mike Blumenkrantz 7f6dfbac80 tests/elm: fix drag_around helper to handle negative angles
oops

Differential Revision: https://phab.enlightenment.org/D11388
2020-03-03 10:54:34 +01:00
Mike Blumenkrantz 613cd9f812 efl/gesture: fix flick internal touch id tracking
need to always make sure we set this when a gesture is being tracked so
we know which touch point we're watching

Differential Revision: https://phab.enlightenment.org/D11387
2020-03-03 10:54:33 +01:00
Mike Blumenkrantz 322fdba5f0 efl/gesture: fix momentum gesture recognizer to properly continue its gestures
it's not enough to just check the value for this in the recognizer; we need to
always modify the recognizer property here to correctly manage object lifetimes
and generate the correct events (e.g., not emitting momentum gestures while
multiple fingers are moving simultaneously)

also update a couple existing unit test checks which were wrong

Differential Revision: https://phab.enlightenment.org/D11386
2020-03-03 10:54:32 +01:00
Mike Blumenkrantz e1b7020633 efl/gesture: correctly filter tap events based on the processing touch point
if the recognizer is processing using a touch point other than the first finger,
e.g., in the case where multiple fingers are pressed simultaneously, then
the recognizer needs to also detect distance based on that finger

more fixes for triggering tap events while fingers are moving

Differential Revision: https://phab.enlightenment.org/D11385
2020-03-03 10:54:31 +01:00
Mike Blumenkrantz 3603884e51 efl/gesture: fix internal gesture object management
when a gesture ends and is not set to continue, the gesture object must
be preserved until the entire touch sequence ends in order to ensure that
all the touch point states are accurately detected and updated and so
additional instances of that gesture are not accidentally triggered

this fixes weird corner cases where you could tap with two fingers and
then get a long press event while dragging the second finger around as
long as you did it quickly enough

Differential Revision: https://phab.enlightenment.org/D11384
2020-03-03 10:54:29 +01:00
Mike Blumenkrantz d300e90d39 efl/gesture: port 'rotate' gesture from elm to new gesture framework
this is a 1:1 port with minimal changes other than what's necessary to
integrate into the new framework

Differential Revision: https://phab.enlightenment.org/D11383
2020-03-03 10:54:28 +01:00
Mike Blumenkrantz 830cdcf7ea efl/gesture: move some internal recognizer functions to be reusable
no functional changes

Differential Revision: https://phab.enlightenment.org/D11382
2020-03-03 10:54:27 +01:00
Mike Blumenkrantz 641c9427ef efl/gesture: rename long_tap -> long_press
this is consistent with the rest of efl naming

ref T8503

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D11376
2020-03-03 10:54:26 +01:00
Mike Blumenkrantz e54454b986 efl/gesture: remove empty efl.object implementations from gesture objects
these are no longer needed

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D11354
2020-03-03 10:54:23 +01:00
Mike Blumenkrantz 25d96317c0 efl/gesture: remove 'type' member from Efl_Canvas_Gesture_Data
this is no longer used

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D11353
2020-03-03 10:54:20 +01:00
Mike Blumenkrantz d481cbe83c tests/gesture: add custom gesture to custom recognizer test
this adds a simple custom gesture implementation with basic motion
accumulator properties to verify (and give an example of) the custom
gesture capability that can be used by apps alongside custom recognizers

Differential Revision: https://phab.enlightenment.org/D11352
2020-03-03 10:54:17 +01:00
Marcel Hollerbach 76cc9488dd efl_ui_spotlight_scroll: improve scroll behaviour
when the mouse motion was used, we need to mark this event as processed.
Otherwise a click event will be emitted which is wrong.

Additionally, we should only scroll when we are definitly not clicking.
Right now, the scrolling animation would dance arround on a real TS.

Additionally², this commit introduces a little macro which calculates
the distance of a position.
2020-03-02 17:24:33 +01:00
Stefan Schmidt c6dba86e4c exactness: check success of mkdir
Evaluate return code of mkdir() and print error if it fails.

CID: 1419844

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11429
2020-03-02 17:06:15 +01:00
Stefan Schmidt 7499bf9ba2 Revert "elm_label: sizing eval is called _on_label_resize to ensure label size."
This reverts commit 3d57fc0c92.

The change broke elementary tests on my local machine as well as on CI.
Please redo the change and bring it back after testing with the test
suites we have.
2020-03-02 16:54:04 +01:00
Wonki Kim 34477e1cbe ecore_wl: removes unreachable statements
Summary: this patch removes unreachable statements

Reviewers: Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11437
2020-03-02 18:26:39 +09:00
Hermet Park f6de7c244a evas event: fix typo at map coord transform. 2020-03-02 16:55:40 +09:00
Bowon Ryu 3d57fc0c92 elm_label: sizing eval is called _on_label_resize to ensure label size.
Summary:
EFL should guarantee size of label in various situations that the label is resized.
elm_layout_sizing_eval called on on_label_resize.

Test Plan: N/A

Reviewers: YOhoho, zmike, Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, Hermet, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11435
2020-03-02 16:53:10 +09:00
Carsten Haitzler 559bbd8ce3 freeq - up numbers for fq blocks and other limits to defer big batches
this should improve some perf by upping the max a free queu can baloon
up to 256k items and 32m of data (whichever is hit first).
2020-02-28 20:03:05 +00:00
Xavi Artigas 84a34d2ef6 docs: Give some doc love to Evas_Object_Vg 2020-02-28 12:36:57 +01:00
Xavi Artigas 00ca49422b doxygen: fix missing @p tag 2020-02-28 12:08:51 +01:00
Xavi Artigas dd7a6c5112 doxygen: fix invalid anchor names 2020-02-28 12:07:45 +01:00
Xavi Artigas 9c24c05458 doxygen: fix missing endcond tag 2020-02-28 12:05:26 +01:00
Xavi Artigas 0a70c70c0c doxygen: fix missing titles in addgroup 2020-02-28 11:44:19 +01:00
Xavi Artigas f8a23b1fcf doxygen: fix invalid eolian_main_intro ref 2020-02-28 11:44:19 +01:00
Xavi Artigas 9f4b5458ea doxygen: fix duplicated toc sections 2020-02-28 11:44:19 +01:00
Xavi Artigas 4c10f403bb doxygen: remove deprecated (and unused) configuration 2020-02-28 11:44:19 +01:00
Xavi Artigas dc9750ae1c doxygen: remove duplicated sections
Unified widgets simply copied elm's headers, duplicating doxygen sections.
2020-02-28 11:44:19 +01:00
Xavi Artigas ddbe32f2eb doxygen: fix missing end group tag 2020-02-28 11:44:19 +01:00