Commit Graph

47617 Commits

Author SHA1 Message Date
Jean-Philippe Andre 1950fb6fde Elm win: Forward pointer events from evas to window
This will allow applications to listen to those events
on the whole window. Necessary since they won't have access
to Evas with EO APIs.
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre c68f71239c Evas events: Add EO APIs for lock & modifiers
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?)
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre 2ca159dc58 Evas events: Replace calls to event feed with internal func 2016-05-31 19:03:04 +09:00
Jean-Philippe Andre 4c7272720b Evas events: Pass Efl_Pointer_Event for proxy source events 2016-05-31 19:03:04 +09:00
Jean-Philippe Andre 7658ed7ae3 Evas events: Forward more pointer events
This continues the work started in the previous commit:
forward full event info (Efl_Pointer_Event) from evas to
the upper layers.

This also includes more support for IN and OUT.
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre 37d894abb1 evas: send eo pointer events on mouse move
This is still VERY experimental and not fully done yet.
All other pointer events need to be sent as well.

The legacy event system is used as a transportation mechanism,
as it is too hard to change the logic. This only adds an extra
eo event in case of move. Obviously for performance we might
want to listen to callback_add,del but that's an optimization
for later.

The whole point of sending those pointer events is to carry more
information than can be sent over legacy evas events, and unify
the events in a common format.
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre 8e31929aab Efl.Pointer.Event: Add dup() method to copy an event 2016-05-31 19:03:04 +09:00
Jean-Philippe Andre 05dfab8442 ecore_x: Pass in/out through ecore_input_evas
This whole input system is a massive mess. It looks like spaghetti.
Long live the giant flying monster.

This commit changes how some events are propagated in X.

Before:
 ecore_x -> evas_event -> evas

After:
 ecore_x -> ecore_input_evas -> ecore_evas -> evas_event -> evas

There are still inconsistencies between events and between X and WL,
but ecore_evas should be used for all events since it rotates the
inputs.
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre 1c739cada9 evas_events: Propagate more eo pointer events
This covers mouse in,out,cancel. Axis (joystick) is still
todo.
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre ef843e8801 efl: Simplify pointer event names + add missing
No more difference between touch & mouse.
Add axis, cancel, in and out.
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre c1be667a6c ecore_evas: Pass mouse down,up,move with eo
This way, ecore sends eo events to evas, which can then
be listened to by other clients (FIXME: the events will
need to be propagated from evas to the elm window).

Current support:
- mouse/multi down
- mouse/multi up
- mouse/multi move
- mouse wheel
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre f119327495 evas: Move event feed and input to legacy 2016-05-31 19:03:04 +09:00
Jean-Philippe Andre d764d8710a ecore_evas: Feed evas events with eo (down, up) 2016-05-31 19:03:04 +09:00
Jean-Philippe Andre 21bc2f89f5 ecore_input: Pass all events through direct cb first
Since the direct input event callback returns true if the
event has been processed, we can easily support legacy and
progressively implement full support for eo input events.
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre 5aa00004a5 ecore_evas: Register direct input cb from modules
If the ecore_evas modules were using
ecore_event_window_register() then they can also redirect
everything though the direct callback instead.
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre bd70604ee8 ecore_evas: Add private direct callback for ecore
All ecore_input_evas events should be passed through ecore_evas
in order to avoid any information loss between ecore and evas.

This is a private API.
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre ea8c6e5632 Evas: Extend pointer events and add legacy conversion routines
To be honest, this commit is a bit of a mess since it's a
rebased version of some temporary work patches.
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre c06cdadca2 Evas: Fix compilation warnings (enum implicit cast)
Moving enums to Efl renames them but keeps the value the same.
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre fb35171186 Evas.Canvas: Move some event_feed to legacy
Paving the way to Efl.Pointer.Event...
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre 645a7b7d6c Efl: Add storage class Efl.Pointer.Event
This object is the data carried over in an event data pointer.

The private data should be accessible by Ecore and Evas, but
not externally. This means we should be able to easily extend
the feature set, adding more and more information, without
breaking API / ABI.

Also, this should allow applications to create fake input
events easily without exposing our internal structures, or
functions with more and more parameters (such as feed multi).

This is only a storage class, shouldn't contain any logic.
In the future, some logic may be added for gestures support
for instance, or input smoothing / resampling (eg. if input
frequency is 90Hz and screen refresh rate is 60Hz).

The aim is to replace:
- Evas_Event_Mouse_Xxx
- Evas_Event_Multi_Xxx
- Ecore_Event_Mouse_Xxx

We might want to also support Axis, Gestures, etc... with the
same model or even same storage class.
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre ce5688a388 Evas: EO-ify Evas_Device and partly move to Efl
So, this is not a very clean solution, but this mostly
makes Evas_Device an Eo object of class Efl.Input.Device.
Since evas_device relies on some Evas knowledge (evas
callbacks, canvas private data), it can't be fully moved
to lib/efl/.

Making the input device an interface rather than a class
was also not a great solution, as the goal is to share
the data structure around EFL internals (Ecore and Evas).
2016-05-31 19:03:04 +09:00
Carsten Haitzler 47e3b171a3 efl test suite - test args event and args values 2016-05-31 17:16:14 +09:00
Andy Williams cdd59921c6 elementary: Add a preview for icon theme
Not yet solved how to load an elm theme preview...
2016-05-30 23:45:56 +01:00
Felipe Magno de Almeida 1eafe1d16a eina: Add non-allocated version to benchmark 2016-05-30 17:01:40 -03:00
Felipe Magno de Almeida 6e02d52fbb eina: Add mempool usage in benchmark 2016-05-30 16:22:27 -03:00
Felipe Magno de Almeida ad0166f792 eio: Fix eio_test_job_xattr test
Test wasn't enabled when modifications to function prototypes to
eio_job_file_xattr_list and eio_job_file_xattr properties were
made, so it got pushed inadvertidly without the necessary
changes to user code.
2016-05-30 15:54:01 -03:00
Jaeun Choi ab23a53094 elm_image: add a new eo property 'align' and implement related functions
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.
2016-05-30 20:26:34 +09:00
Carsten Haitzler 58d50e2b13 elm init - add args event with ne efl loop args 2016-05-30 19:55:43 +09:00
Carsten Haitzler f0335bde28 efl loop - add an args event and ability to produce it
this is an args event. right now we don't use it, but this should be
done by some of the setup/init of an app and then produce an args
event. the idea would be that this can be used by single-instance apps
like web browsers, terminology to treat launch as an event.
2016-05-30 19:47:21 +09:00
godly.talias afb4a194a8 Added feature to bring focused item to viewport on click
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
2016-05-30 14:39:37 +09:00
junsu choi 610b766db2 eet_image.c : Fix build warning
Summary: initialized two variable for uninitialized build warning

Test Plan: N/A

Reviewers: woohyun, raster

Reviewed By: raster

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D3990
2016-05-30 14:18:31 +09:00
Jaehyun Cho 075ccc5022 elc_naviframe: Hide preserved content after its item is popped.
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.
2016-05-30 14:02:52 +09:00
Jean-Philippe Andre 3092e08a83 elm: Fix efl_part inheritance
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.
2016-05-30 13:35:34 +09:00
Jaehwan Kim 945932e1b1 Elementary: fix the indentation 2016-05-30 11:39:00 +09:00
Jean-Philippe Andre c59d222f6d elm_hover: Fix crash with efl_part
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.
2016-05-30 11:14:43 +09:00
Jaehwan Kim 62cf70034d widget: set the parent-child relation again, when the widget is unset
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
2016-05-30 09:49:04 +09:00
Davide Andreoli 343cd4da0e FDO icons: better icon for "preferences-other"
This is the icon apps should use for their settings
2016-05-29 16:55:39 +02:00
Jean Guyomarc'h aedeca0ed2 eina_btlog: handle objective-c class methods
Class methods signatures start with a '+'.
2016-05-28 22:45:01 +02:00
Jean Guyomarc'h 37adb060dd ector: fix redefinition of type and bizarre typedef
Maybe there is a trick here I am not aware of, but
redefining a type as itself seems a mistake to me.
This raised a warning anyway. Now it's gone.
2016-05-28 22:17:22 +02:00
Jean Guyomarc'h 3a63eacbcb ector: fix redefinition of types 2016-05-28 22:17:22 +02:00
Jean Guyomarc'h 5bfaef58f1 evas: fix warning: redefinition of types
Fixes warnings raised by cland such as:
warning: redefinition of typedef 'Efl_VG' is a C11 feature
[-Wtypedef-redefinition]
2016-05-28 22:17:22 +02:00
Jean Guyomarc'h 092ce1f83b eina: fix warning when clockid is not defined
Unused parameter was unused...
2016-05-28 21:49:33 +02:00
Jean Guyomarc'h 0d8e054556 eina_btlog: add Mac OS X support for backtrace
This was actually difficult...
Mac OS X can use addr2line (sometimes called gaddr2line in
function of the package managers). However, addr2line does
NOT handle specific cases.

It was therefore necessary to use Mac OS X' own tool: atos,
which gracefully handles all backtraces, including the one
containing objective-c messages or fat archives.

eina_btlog now tests different utilities one by one, and
determines whether it is supported or not.

Fixes T3711
2016-05-28 19:19:02 +02:00
Jean Guyomarc'h 0bb75b5fb6 autotools: remove random echo
It seems it was a debug echo that was never removed.
2016-05-28 19:19:01 +02:00
Jean Guyomarc'h 543394344d autotools: fix use of EFL_WITH_BIN
EFL_WIN_BIN takes only two arguments.
2016-05-28 19:19:01 +02:00
Jean Guyomarc'h 9ee8ea196b eina: make eina backtrace portable
Backtrace relied on non-portable code.
Platform-specific code is now enclosed
within macros defined at configuration-time.
2016-05-28 19:18:46 +02:00
Jean Guyomarc'h 9e761c9515 autotools: check for sched_getcpu()
sched_getcpu() is glibc-only, so not portable. Mac OS X
does not have it, and has no obvious replacement function.

This commit will allow future code to test for the existence
of this function, to provide fallbacks instead of making
compilation fail.
2016-05-28 19:14:16 +02:00
Jean Guyomarc'h fc74475415 autotools: improve libunwind detection
Libuwind may not be shipped with a pkg-config file.
It can be distributed on the system, but the autotools
would fail to detect it because it relied only on pkg-config.

We now first check with pkg-config, and then try to compile and
link a program using libuwind to see if it is supported anyway.

This is a first step towards a working eina_log_backtrace on
Mac OS X.
2016-05-28 19:14:16 +02:00
Jean Guyomarc'h 0193600e48 autotools: improve libunwind detection
Libuwind may not be shipped with a pkg-config file.
It can be distributed on the system, but the autotools
would fail to detect it because it relied only on pkg-config.

We now first check with pkg-config, and then try to compile and
link a program using libuwind to see if it is supported anyway.

This is a first step towards a working eina_log_backtrace on
Mac OS X.
2016-05-28 19:13:10 +02:00
Hermet Park 01c7fd7cda eio: fix build break.
there were missing eo headers.
fix and make it work again.
2016-05-28 19:08:03 +09:00