Commit Graph

392 Commits

Author SHA1 Message Date
Marcel Hollerbach 46d464e5bf here comes meson
a new shiny buildtool that currently completes in the total of ~ 4 min..
1 min. conf time
2:30 min. build time
Where autotools takes:
1:50 min. conf time
3:40 min. build time.

meson was taken because it went quite good for enlightenment, and is a traction gaining system that is also used by other mayor projects. Additionally, the DSL that is defined my meson makes the configuration of the builds a lot easier to read.

Further informations can be gathered from the README.meson

Right now, bindings & windows support are missing.

It is highly recommented to use meson 0.48 due to optimizations in meson
that reduced the time the meson call would need.

Co-authored-by: Mike Blumenkrantz <zmike@samsung.com>

Differential Revision: https://phab.enlightenment.org/D7012
Depends on D7011
2018-10-02 17:22:50 +02:00
Carsten Haitzler 18cccd8798 ecore x - fix vsync to not block amdgpu drivers
amdgpu vsync works so don't block is so those drivers get proper
vsynced rendering as well.

@fix
2018-07-24 13:09:55 +09:00
Mike Blumenkrantz a524ab1fe3 ecore-x: add some useful xkb function wrappers
@feature
2018-01-24 16:18:51 -05:00
Mike Blumenkrantz b28d6ac5e6 ecore-x: re-add implementation of ecore_x_connection_get()
this symbol has been missing since the removal of xcb

@fix
2018-01-24 16:18:51 -05:00
Mike Blumenkrantz 067ec7bd5c ecore-x: filter XkbNewKeyboardNotifyEvent before emitting ecore-x event
this is only relevant to watchers of the ecore-x event if there is a keycode
change

@fix
2018-01-24 16:18:51 -05:00
Mike Blumenkrantz 4b38020f89 ecore-x: add more info to Ecore_X_Event_Xkb event
this event corresponds to xkb state changes which are useful when working
with xkb instances

@feature
2018-01-24 16:18:51 -05:00
Mike Blumenkrantz ff1a0475c3 ecore-x: add more null checks for functions
@fix
2018-01-22 17:34:37 -05:00
Mike Blumenkrantz 7c087d209a ecore-x: perform internal shutdown on io error if callback is set
avoid crashing in callback when referencing dead display or handling events

@fix
2018-01-22 17:34:37 -05:00
Vincent Torri 4ae6eeb2cf efl: remove _MSC_VER (Visual Studio macro) usage in source code 2018-01-04 12:59:47 -08:00
Jean-Philippe Andre ff24ac2d6d efl: Reset ecore event types on init
This fixes cycles of init/shutdown/init where ecore event types would
become invalid, since they are now stored in a dynamic array rather than
a statically stored array.

The risk here is that if a module of EFL tends to init/shutdown in a
"normal" scenario then the event type array will grow in a leaking
manner. This could be fixed by resetting those event ID's only when the
loop actually exits (EFL_EVENT_DEL on the main loop). I'm not using
EFL_EVENT_DEL in this patch as this would add too many event callbacks
to the main loop object, which may result in slightly slower event calls
to it, affecting the overall performance.
2017-12-19 11:14:37 +09:00
Prince Kumar Dubey 284276b2ec ecore: removing assignment operation to avoid warning.
Summary: assignment to local variable "ret" has no meaning as it is not used after assignment. So, removing assignment operation to avoid warning.

Reviewers: raster, cedric

Subscribers: jpeg, rajeshps

Differential Revision: https://phab.enlightenment.org/D5303

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-10-16 13:29:02 -07:00
Prince Kumar Dubey 41197981ab efl: unsigned int/long never be less than zero. Fixed.
Reviewers: raster, cedric

Subscribers: rajeshps, jpeg

Differential Revision: https://phab.enlightenment.org/D5300

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2017-10-13 12:07:28 -07:00
Mike Blumenkrantz 72e9d604a3 ecore-x: reject successive MappingNotify events if they are identical
in some cases loading an xmodmap on enlightenment startup can trigger an infinite
number of identical events which hard locks the xserver for a very, very long time

@fix
2017-09-22 10:10:07 -04:00
Jean-Philippe Andre 5c8670fb2b ecore_x: Avoid crash on NULL
This happens in E with software compositing, since E's commit
5702f0975e890f07cfb. E should be fixed shortly but segv is not
acceptable. Without segv E is still massively broken so it's
not like the bug would be hidden (large black areas in windows,
after switch vdesks with enough windows).
2017-08-02 13:34:45 +09:00
Marcel Hollerbach aca00f8502 ecore_x: init XEvents before passing to x
it turns out that xlib is going to copy the complete struct into
something internal. This might lead to the condition that a uninitalized
value might be part of the struct, and when later the struct is read
again the code might do wrong stuff since that value could be set now to
a randomly other meaningfull value.

This turned out on me in e as i could not write any letters like ßöäü,
since that lead to a not returning call to _XReply internal of xlib.
Dugging that showed that xlib was waiting on a reply of a call that
never got executed, and the XEvent it is waiting on just contians a
randomly correct value.

@fix
2017-08-01 18:16:23 +02:00
Carsten Haitzler d371ece4a9 ecore x - convert to using unsed instead of dummy state,ents after ret
found by PVS studio
2017-07-31 12:12:40 +09:00
Carsten Haitzler 7620d5d957 ecore-x - remove useless extra assignments of value to itself
usless code that does nothing - not a bug though

found by PVS studio
2017-07-29 11:22:54 +09:00
Carsten Haitzler 52fdb5e830 ecore-x - add ecore x dpms force api
add api that allows us to force dpms on or off. needed to fix e
support for non-suspend new systems that don't do S3 ...

@feature
2017-07-04 14:50:53 +09:00
Chris Michael cd311db990 ecore-x: Minor formatting fix
NB: No functional changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-06-09 12:29:25 -04:00
Jean-Philippe Andre 64b90fd22e ecore_x: Fix build warning (invalid enum used) 2017-05-16 20:47:48 +09:00
thierry E 07024ab6c8 ecore_x: add function to show and hide X cursor.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-05-09 10:15:02 -07:00
thierry E 71c8f1de27 ecore_x: handle DPMS state for a more accurate idling evaluation.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-05-09 10:15:01 -07:00
Carsten Haitzler d8dd685966 window stacks - make these unstable bta api for now
until settled, make these as beta for now.
2017-03-28 13:51:39 +09:00
Cedric BAIL 4eeb4e8706 ecore_x: avoid crash during shutdown due to Ecore_Event queue. 2017-03-09 16:17:58 -08:00
Stefan Schmidt f4304615df ecore_x: add singce tags for ecore_x_stack_* functions added during 1.19 cycle 2017-02-14 21:47:15 +01:00
Marcel Hollerbach bcdde959e6 cmake: add ecore_x 2017-02-07 09:24:52 +01:00
Marcel Hollerbach e34f36be12 ecore_x: we dont need this version file anymore
it indicated a while back which backend was used, we only have xlib
left.
2017-02-07 09:24:52 +01:00
Carsten Haitzler cc5dd2bd87 efl window stacks - implement pop to for x11 in the portable way 2016-12-22 15:17:43 +09:00
Carsten Haitzler 39af0d88aa efl stack wins - add base property/boolean to indicate win is a base
part of adding stacks...
2016-12-20 10:57:55 +09:00
Carsten Haitzler 56b0b6490d ecore-x - add missing atom fetches!
ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE
ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY
ECORE_X_ATOM_E_KEYROUTER_SUPPORTED
ECORE_X_ATOM_E_KEYROUTER_WINDOW_KEYTABLE

all had no atom fetches! fix..

@fix
2016-12-16 16:16:53 +09:00
Carsten Haitzler 90be06df9e ecore-x - add e stack type atom and api's to set and get it 2016-12-16 16:16:53 +09:00
Hannes Janetzek 1b0690dd9a ecore-x: fix Mode_switch key mapping
- remove redundant XKeysymToString when sym == sym2

@fix
2016-12-15 11:35:41 -05:00
Jean-Philippe Andre 4722b685cf ecore_evas/x: Inform WM about borders and shadows
This exploits the existing X Atom "GTK_FRAME_EXTENTS"
2016-11-23 13:04:12 +09:00
Gustavo Sverzut Barbieri 010b14bc37 ecore_x_vsync: not using Ecore_Con.h anymore. 2016-11-21 19:47:35 -02:00
Carsten Haitzler 4ed2e01591 remove xcb support in ecore_x and evas engines as per mailing list
as per mailing list discussion about dropping xcb support now. it
hasn't been complete for a long time, thus not recommented for being
turned on. as we are moving to a wayland world xcbmakes even less
sense. as agreed, time to clean up a bit and remove a distraction as
well as not well tested code. this also updates po's too.

@feature
2016-11-03 22:22:54 +09:00
Carsten Haitzler 973eaedf51 improve responsivness of timer sleeping threads for vsync with prctl
prctl allows us on some platforms to request a thread be woken up more
agressively e.g. due to a timeout bu setting timerslack. since we use
a dedicated thread just for vsync events, this is a very good idea to
ask the kernel to be as exact as possible for this thread as it only
wakes up once per frame (or should only) and accuracy is important. so
use this.

also improve prctl checks to be more explicit in configure.ac and use
these ifdefs in ecore exe too where prctl is used as well.

@feature
2016-10-28 22:58:36 +09:00
Carsten Haitzler da04400c5d ecore-animator allow for animator to skip queued animator ticks
set ECORE_ANIMATOR_SKIP to skip queued animtor ticks if multiple are
in the pipeline. optional and not on by default. i would think its not
a good idea to skip these animator ticks and skipping/deferring is a
job higher up.

@feature
2016-10-28 13:58:56 +09:00
Carsten Haitzler 177e6e1486 ecore_x - remove ecore_x_vsync tool as it isnt enabled or used runtime
so ecore_x_vsync as a tool uses glx for nvidia drivers plut "wait for
vblank" extensions to try vsync "sync". the problem is this is flakey
because the drivers may or may not continue vsyncing after screen off
or syspend/resume or vt changes and all the workarounds dont seem to
be reliable, so since this causes this to be disabled, no point
keeping all the code and build stuff around, so remove this "unused
junk" we have in the tree.
2016-10-04 10:04:39 +09:00
Jean-Philippe Andre 60526528a6 evas: Add normalized and window coordinates to axis events
This is for Wacom graphics tablets (with a pen).

The raw data sent by ecore to evas (and then to apps) is pretty
useless as it's not normalized, and apps have no way of knowing the
dimensions of the tablet, without themselves opening the device
(we don't know nor expose the path to the device).

This is for Xi2 only for now, as Wayland support hasn't been done
yet.

The intent is to deprecate LABEL_X and LABEL_Y. I'm not sure yet
if the normalized value is useful or not (it would seem we may not
be able to provide this info in Wayland).

The new WINDOW_X, WINDOW_Y labels will be used in the new event
type (Efl.Event.Pointer). Normalized values are not exposed yet,
let's decide if we want them or not first (based on what can be
done in Wayland space).

@feature
2016-08-26 10:18:01 +09:00
Jean-Philippe Andre 7b25619213 ecore xi2: Discard "axis" inputs from standard mice
Mice in X with xi2 send Axis events which are badly defined,
and carry basically useless information, as we also receive
proper mouse events. Notably, all mice input events are
"Rel something" but in fact they are absolute values (even
the wheel information is a counter increasing every time you
scroll).

This should not break any application as such axis events
carried only values with label ECORE_AXIS_LABEL_UNKNOWN.
This also fixes a leak when n == 0 (no "valuator" found
in the list, this used to be unlikely, now happens at every
mouse event).
2016-08-26 10:18:01 +09:00
Jean-Philippe Andre c507f56110 ecore_x: Early check image bpp based on depth
This fixes argb windows transparency in E software compositor.

My current problem is that I have no idea what changed, why this
is needed now, and how things could actually work before.

Fixes T4389

@fix
2016-08-24 14:42:16 +09:00
Stefan Schmidt 461c5d2787 ecore: xcb: make sure length_name is always initialized
lib/ecore_x/xcb/ecore_xcb_icccm.c: In function ‘ecore_x_icccm_name_class_set’:
lib/ecore_x/xcb/ecore_xcb_icccm.c:320:11: warning: ‘length_name’ may be used uninitialized in this
function [-Wmaybe-uninitialized]
         s += length_name + 1;

Looking at the code this is indeed possible so better play safe here.
2016-07-29 14:20:16 +02:00
Carsten Haitzler bd91ebbbd7 efl - ecore-x - work around e's badness in makeing an x image for all wins
so e is being stupid and creating an ecore-x image forevery single
window if in x11 mode if it needs it or not. this results in having ti
allocate an actual x image and shm segments. work around this and get
bit order from somewhere else than the x image itself thus avoiding
the allocation until a real get or put is done.

@fix
2016-07-27 10:32:41 +09:00
Carsten Haitzler 93a683daad evas and ecore_x shm segment management - fix over allocation and perms
so our sysv shm segments were both over-permissive (nothing bad
really, just other users could read and write to/from our pixel data
destined for the screen... they could do this to x11 directly anyway
so no real issue), but be more restrictive and use 0600 as xserver
runs as root so can read/write anyway and we only want our own uid
access. but even more - fix our shm segment flushing to not keep lots
of segments floating about like a bad smell when we don't need them.
we had a cache but it wasnt flushed when it should be since async
rendering turned up. this fixes that and we're back to agressively
flushing them out when idle.

@fix
2016-07-26 13:21:50 +09:00
Carsten Haitzler 1e6375cbe3 ecore x xrandr - fix possible divide by zero
fixes CID 1039437 , 1039438
2016-07-11 21:17:39 +09:00
Benjamin Jacobs e03d4142ef ecore_x: NULL derefs.
Reviewers: raster, devilhorns

Subscribers: raster, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4018
2016-07-11 14:20:00 +09:00
Benjamin Jacobs 109d040e3d ecore-xcb: Fix XCB to be usable again
Summary:
Well mostly, it seems there is an issue with multi-key events and
enlightenment. Let's merge this first before opening a ticket.

Reviewers: devilhorns

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4017

@fix
2016-06-06 15:46:24 -04:00
Carsten Haitzler 072674dbe2 efl - ecore c+ ecore-imf - fix odd case input when faking a real event
so ibus module for ecore-imf likes to send an x event back to
ourselves faking a key... this works unless we are looking at
modifiers that make make for odd combos with keysyms turned into
keycodes. so actualyl use the correct original keycode plus state
unless we are having to explicitly send a keysym from ibus core.

this fixes T3703

@fix
2016-05-27 23:57:30 +09:00
Mike Blumenkrantz 7510e42c1b elm_win: implement v2 of teamwork api using window-based display protocol
this adds support for wayland and makes teamwork integration trivial for any
application

@feature
2016-05-20 14:54:06 -04:00
Cedric BAIL 0c4880e99d efl: everyone should now rely on Eina MIN/MAX redefinition. 2016-05-09 16:58:53 -07:00