path: root/src/lib/ecore_x (follow)
AgeCommit message (Collapse)Author
2019-07-10events: don't check for zeroed event types before registering themMike Blumenkrantz
Summary: this handles the case of reinitializing a component, but it's totally broken in the case of doing a full ecore restart Depends on D9253 Reviewers: bu5hm4n Reviewed By: bu5hm4n Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2019-06-18ecore_x - restore move event skipper that was removed long agoCarsten Haitzler (Rasterman)
so i've been wondering what is going on for a few days... and i've figured it out finally... my mouse seems ot like to generate 1000 events per second. not your usual 100 or 200. it only happened on this one machine so i was wondering what on earth was up. this machine was different in other ways like an arm cpu, differing gpu (rx550), different distro and so on. this is creating a storm of motion events.. and this is causing all sorts of overhead in just trying to deal with them all like generate more internal events, emit signals for every one of them and so on. there is no attempt to play catch-up or anything - just build up a bigger and bigger queue of them to deal with. this is NOT GOOD. this restores our old commented out event skipper that got commented out during some xcb work actually - not on its own. it was a huge xcb patch that commented it out. this restores it and makes it a little cleaner with a bool and now the perf issues i was seeing are gone. this is such a major performance fix that this deserves a backport. @fix @optimize
2019-05-29ecore-x: protect ecore_x_shutdown from creating a negative init countMike Blumenkrantz
Summary: @fix Depends on D8972 Reviewers: devilhorns Reviewed By: devilhorns Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2019-04-17build: use only BUILD_ECORE_IMF_XIM as a defineMike Blumenkrantz
Summary: meson and autotools were a bit out of sync with this, resulting in unexpected behavior Reviewers: billiob Reviewed By: billiob Subscribers: billiob, cedric, #reviewers, #committers Tags: #efl Differential Revision:
2019-04-02docs: Fix common misspellings in H filesXavi Artigas
Fixed all appearances of words from this list in H files:
2019-02-13ecore-x: only modify _ecore_key_grabs when key is toggledThierry
A New entry is added to _ecore_key_grabs even when no key was grabbed. Summary: The key grab and ungrab functions should return which keycode was used. Proposed by Reviewers: zmike Reviewed By: zmike Subscribers: zmike, cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-12-20cmake: remove!Marcel Hollerbach
This build was never complete and also was not maintained probebly. It is also dropped in favour of meson which is cool, merged, works & is fast. Differential Revision:
2018-10-18build - meson - fix ecore-x to detect xcursor to fix rgba cursorsCarsten Haitzler (Rasterman)
2018-10-11ecore_x - add nouveau into the whitelist and clean up so it's a listCarsten Haitzler (Rasterman)
it was a lot of if cases before now it's an array with min version parameters and globs for matching drivers etc. - much cleaner and neater to afdd things to the whtielist now.
2018-10-02here comes mesonMarcel Hollerbach
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 <> Differential Revision: Depends on D7011
2018-07-24ecore x - fix vsync to not block amdgpu driversCarsten Haitzler (Rasterman)
amdgpu vsync works so don't block is so those drivers get proper vsynced rendering as well. @fix
2018-01-24ecore-x: add some useful xkb function wrappersMike Blumenkrantz
2018-01-24ecore-x: re-add implementation of ecore_x_connection_get()Mike Blumenkrantz
this symbol has been missing since the removal of xcb @fix
2018-01-24ecore-x: filter XkbNewKeyboardNotifyEvent before emitting ecore-x eventMike Blumenkrantz
this is only relevant to watchers of the ecore-x event if there is a keycode change @fix
2018-01-24ecore-x: add more info to Ecore_X_Event_Xkb eventMike Blumenkrantz
this event corresponds to xkb state changes which are useful when working with xkb instances @feature
2018-01-22ecore-x: add more null checks for functionsMike Blumenkrantz
2018-01-22ecore-x: perform internal shutdown on io error if callback is setMike Blumenkrantz
avoid crashing in callback when referencing dead display or handling events @fix
2018-01-04efl: remove _MSC_VER (Visual Studio macro) usage in source codeVincent Torri
2017-12-19efl: Reset ecore event types on initJean-Philippe Andre
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-10-16ecore: removing assignment operation to avoid warning.Prince Kumar Dubey
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: Signed-off-by: Cedric BAIL <>
2017-10-13efl: unsigned int/long never be less than zero. Fixed.Prince Kumar Dubey
Reviewers: raster, cedric Subscribers: rajeshps, jpeg Differential Revision: Signed-off-by: Cedric Bail <>
2017-09-22ecore-x: reject successive MappingNotify events if they are identicalMike Blumenkrantz
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-08-02ecore_x: Avoid crash on NULLJean-Philippe Andre
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-01ecore_x: init XEvents before passing to xMarcel Hollerbach
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-07-31ecore x - convert to using unsed instead of dummy state,ents after retCarsten Haitzler (Rasterman)
found by PVS studio
2017-07-29ecore-x - remove useless extra assignments of value to itselfCarsten Haitzler (Rasterman)
usless code that does nothing - not a bug though found by PVS studio
2017-07-04ecore-x - add ecore x dpms force apiCarsten Haitzler (Rasterman)
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-06-09ecore-x: Minor formatting fixChris Michael
NB: No functional changes Signed-off-by: Chris Michael <>
2017-05-16ecore_x: Fix build warning (invalid enum used)Jean-Philippe Andre
2017-05-09ecore_x: add function to show and hide X cursor.thierry E
Signed-off-by: Cedric BAIL <>
2017-05-09ecore_x: handle DPMS state for a more accurate idling evaluation.thierry E
Signed-off-by: Cedric BAIL <>
2017-03-28window stacks - make these unstable bta api for nowCarsten Haitzler (Rasterman)
until settled, make these as beta for now.
2017-03-09ecore_x: avoid crash during shutdown due to Ecore_Event queue.Cedric BAIL
2017-02-14ecore_x: add singce tags for ecore_x_stack_* functions added during 1.19 cycleStefan Schmidt
2017-02-07cmake: add ecore_xMarcel Hollerbach
2017-02-07ecore_x: we dont need this version file anymoreMarcel Hollerbach
it indicated a while back which backend was used, we only have xlib left.
2016-12-22efl window stacks - implement pop to for x11 in the portable wayCarsten Haitzler (Rasterman)
2016-12-20efl stack wins - add base property/boolean to indicate win is a baseCarsten Haitzler (Rasterman)
part of adding stacks...
2016-12-16ecore-x - add missing atom fetches!Carsten Haitzler (Rasterman)
2016-12-16ecore-x - add e stack type atom and api's to set and get itCarsten Haitzler (Rasterman)
2016-12-15ecore-x: fix Mode_switch key mappingHannes Janetzek
- remove redundant XKeysymToString when sym == sym2 @fix
2016-11-23ecore_evas/x: Inform WM about borders and shadowsJean-Philippe Andre
This exploits the existing X Atom "GTK_FRAME_EXTENTS"
2016-11-21ecore_x_vsync: not using Ecore_Con.h anymore.Gustavo Sverzut Barbieri
2016-11-03remove xcb support in ecore_x and evas engines as per mailing listCarsten Haitzler (Rasterman)
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-10-28improve responsivness of timer sleeping threads for vsync with prctlCarsten Haitzler (Rasterman)
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 and use these ifdefs in ecore exe too where prctl is used as well. @feature
2016-10-28ecore-animator allow for animator to skip queued animator ticksCarsten Haitzler (Rasterman)
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-04ecore_x - remove ecore_x_vsync tool as it isnt enabled or used runtimeCarsten Haitzler (Rasterman)
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-08-26evas: Add normalized and window coordinates to axis eventsJean-Philippe Andre
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-26ecore xi2: Discard "axis" inputs from standard miceJean-Philippe Andre
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-24ecore_x: Early check image bpp based on depthJean-Philippe Andre
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