path: root/src/lib/ecore_drm/ecore_drm_evdev.c (unfollow)
AgeCommit message (Collapse)Author
2020-06-23Get rid of trailing whitespaces (4 / 14)Elyes HAOUAS
Remove trailing whitespaces Differential Revision:
2020-04-20doxygen docs: Fix all invalid @param namesXavi Artigas
There were quite a few of these...
2019-08-05ecore drm - legacy - fix coverity leak complaintCarsten Haitzler (Rasterman)
is real - in error case. fix it to make coverity happy. fix CID 1402696
2017-11-12libinput check - move up to requiring 1.6 as a minimum for libinputCarsten Haitzler (Rasterman)
2016-05-13ecore_drm: Handle wheel scrolling separately from finger scrollingDerek Foreman
Wheels are discrete and scroll in clicks, fingers are continuous and scroll in fractional pixels. This change causes wheel based scrolling to be returned in "clicks" instead of "degrees" - allowing us to roll a single menu item with a click. It also will allow us to reduce the speed of two finger scrolling without messing up the speed of wheel scrolling.
2016-03-09ecore-drm: Don't re-include config.hChris Michael
As ecore_drm_private.h already includes config.h header, we don't need to include it here in these files also @fix Signed-off-by: Chris Michael <>
2016-03-09ecore-drm: Update copyright noticeChris Michael
As portions of this code have been derived from existing code in Weston, we should also be including their copyright/licence text to give credit. NB: Fixes T3286 @fix Signed-off-by: Chris Michael <>
2016-02-22ecore-drm: Don't reset event modifiers on touch motionChris Michael
When we are sending an event for touch motion, we should be specifing the modifers in the event structure (not setting them to zero). @fix Signed-off-by: Chris Michael <>
2016-02-18ecore_drm: Add pointer warping APIDerek Foreman
Adds a new API: ecore_drm_device_pointer_warp() which warps the pointer to the specified location. All libinput seats with pointers are warped.
2016-01-14ecore_drm/ecore_wl2: logging: remove errant usage of %mDerek Foreman
Summary: printf %m stringifies and prints errno. I've tried to remove its use anywhere that the immediately preceding function might not set errno or is a complicated function for which knowing errno doesn't really give any useful information. I've left a few of the drmMode calls because they're just wrappers around ioctl, which legitimately sets errno. @fix Reviewers: zmike, devilhorns Reviewed By: zmike, devilhorns Subscribers: cedric, jpeg Differential Revision:
2016-01-13ecore_drm: make sure we include math.h and link against libm for floor()Stefan Schmidt
When we introduced the usage of floor() in ecore_drm_evdev.c we forgot to include math.h for it as well as linking against libm. This caused linking failures on some systems while it still worked on others. Better fix it for good. Original patch by aerodynamik. ref T2953
2016-01-04ecore-drm: Add a new API for keymap cacheJengHyun Kang
Summary: Originally, each keyboard devices could have their own keymap. The one keyboard's keymap could different with others. But for this, Ecore_Drm compile a new keymap when a keyboard is connected. But this is a burden for some people who doesn't manage keymap for each keyboard. They want to maintain only one keymap for system. So, I added cached context/keymap and just ref/unref for each keyboard device. People who want to different keymap for each keyboard just do not set cached context/keymap. Then Ecore_Drm maintain keymaps about each keyboard devices. Test Plan: Connect a keyboard device and watch flow of ioctl. Originally Ecore_Drm opened xkb data and compile keymap, but after patch, that ioctl is disppeared. @feature Reviewers: raster, devilhorns, ManMower Reviewed By: devilhorns, ManMower Subscribers: cedric, input.hacker, ohduna, jpeg Differential Revision:
2015-12-29ecore-drm: Add missing variable 'dev'Chris Michael
Seems this should have been declared in the previously pushed patch, but was missing. @fix Signed-off-by: Chris Michael <>
2015-12-29Add a new Ecore_Drm API for setting left-handed mouseJengHyun Kang
Summary: Add a new Ecore_Drm API named ecore_drm_device_left_handed_set(). Libinput support various input options. Left handed mode is one of options. Right-handed people and left-handed people use a mouse using different button mapping. So if a left handed option is enabled, libinput change right mouse button and left mouse button. So support this option, I added this api using libinput's left handed option. @feature Test Plan: After set left handed mode, left mouse button generate button numbered 3, and right mouse button generate button numbered 1. Reviewers: raster, ManMower, devilhorns Subscribers: ohduna, cedric, jpeg, input.hacker Differential Revision:
2015-12-28ecore-drm: Add APIs to support key remap functionalitySung-Jin Park
Summary: This adds two new APIs to enable/set key remap functionality and a number of keys to be remapped to the other keys. As of now there is no api to do this therefore we need to remap using linux utility such as 'setkeycodes'. By adding/calling these apis, each Ecore_Drm_Evdev device will have its specific key remap hash and we can apply each remapping keys for each key/keyboard device. Test Plan: (1) Enable key remap and set remapping of a key on a specific keyboard device (2) Plug in the keyboard device and check the key is being remapped or not (3) Check the other keys are coming normally (4) Check the the remapping key on a specific keyboard doesn't affect to any other devices Signed-off-by: Sung-Jin Park <> Reviewers: raster, zmike, gwanglim, ManMower, devilhorns Subscribers: JHyun, ohduna, cedric, jpeg Differential Revision:
2015-11-30ecore-drm: Add logical pointer x, y variable in seat for reflecting multiple ↵Duna Oh
pointer's movement Summary: When one pointer moves, we should update the position of other devices. Test Plan: (1) Two pointer devices are connected. (2) Move the cursor to (x, y) position using "device 1". (3) When you move the cursor using "device 2", the cursor doesn't start from (x, y) position. This causes discontinuous mouse motion. Reviewers: raster, zmike, gwanglim, stefan_schmidt, devilhorns, ManMower Reviewed By: devilhorns, ManMower Subscribers: cedric, Jeon, input.hacker, jpeg Differential Revision:
2015-11-17ecore-drm: Don't send mouse_move event too earlyChris Michael
We cannot be sending an ecore_event for mouse move here as it is too early in the startup process for that too happen. Raising the event here never gets caught because the ecore_evas has not yet registered for ecore_input listening. @fix Signed-off-by: Chris Michael <>
2015-08-07ecore_drm_evdev: Avoid shadowing a local variable.Stefan Schmidt
input is already used within this function so rename it in the block.
2015-07-23ecore-drm: Ignore key events that are not seat wide state changesChris Michael
Summary: This patch adds some checks to make sure that we can ignore key events which are not seat wide state changes. @fix Signed-off-by: Chris Michael <>
2015-06-29Revert "ecore-input: add keysym to Ecore_Event_Key struct"Mike Blumenkrantz
This reverts commit c3f3c4eba80f0a7f388de608f2b1566213e73603. this was audited and found to be impractical due to portability concerns
2015-05-20ecore-input: add keysym to Ecore_Event_Key structMike Blumenkrantz
currently only functional for x11, wl, drm @feature
2015-04-29ecore-drm: add touch_motion event on touch_down event handler.Mun, Gwan-gyeong
Summary: ecore-drm touch down handler does not produce ECORE_EVENT_MOUSE_MOVE event. so, when user touches screen, application can't handle mouse down event correctly. this fix adds touch_motion event on touch_down event handler. Reviewers: zmike, cedric, raster, gwanglim, devilhorns Subscribers: cedric Differential Revision:
2015-04-29ecore_drm: send a fake motion event to let other know the initial pos of mouseBoram Park
Summary: At the first time after finishing booting, the position of mouse cursor is in the center of screen. But e doesn't know it. ecore_drm should let e know the initial position of cursor by sending a fake motino event. Reviewers: devilhorns, ManMower, zmike, raster, gwanglim Subscribers: cedric Differential Revision:
2015-04-29ecore-drm: Fix using uninitialized output valueMinJeong Kim
Summary: This revision fixed using of uninitialized value 'output'. The usage can cause segmentation fault when it try to refer current_mode @fix Reviewers: devilhorns Subscribers: cedric Differential Revision:
2015-04-24ecore-drm: fix multiclick interval timeMike Blumenkrantz
libinput returns timestamps in milliseconds as int, not double
2015-04-24ecore-drm: add safety checks to all EAPI functionsMike Blumenkrantz
2015-04-22ecore_drm: Don't crash if a device is assigned a bad outputDerek Foreman
Summary: If an input device is assigned via udev to an output that we can't find we just assign it to the first output instead. Reviewers: zmike, devilhorns Subscribers: cedric Differential Revision:
2015-04-16ecore-drm: Don't fetch output geometry on every mouse movementChris Michael
Summary: This is a better way to allow mouse movement across multiple outputs as this does not require us to fetch output geometry on Every mouse movement (as before). @fix Signed-off-by: Chris Michael <>
2015-04-16ecore-drm: Fix mouse movement across multiple outputsChris Michael
Summary: When running E-Wl with multiple outputs, we could not previously move the mouse pointer across to the second output. This commit fixes that issue. @fix Signed-off-by: Chris Michael <>
2015-03-25Ecore: Use calloc() to initialize Ecore_Event_Key fullyJean-Philippe ANDRE
Some fields (eg. data) may not be properly initialized. Use calloc() instead of malloc() will ensure proper initialization even if we add more fields. These fields (data) would even be passed down to Evas as Evas_Event_Key_Down for instance.
2015-03-04ecore-drm: Center mouse pointer on an output when it gets createdChris Michael
Summary: This sets the initial mouse pointer position to be at the center of an output. @fix Signed-off-by: Chris Michael <>
2015-03-04ecore-drm: Fix formattingChris Michael
Summary: No functional changes, just formatting fixes Signed-off-by: Chris Michael <>
2015-02-27Use doubles to store libinput's mouse motionDerek Foreman
Summary: Using can result in motion being completely discarded. Since we only need integer data, we also only actually forward on an event when the mouse moves more than a full unit. Reviewers: zmike, devilhorns Subscribers: cedric Differential Revision:
2015-02-26ecore-drm modifier updating is now functionalMike Blumenkrantz
when dealing with non-kbd devices, the seat can be iterated to locate a keyboard this may or may not accurately set depressed, latched, locked, group values
2015-02-17ecore-drm: Fix issue with ecore_drm_evdev->path being incorrectChris Michael
Summary: When we try to ReleaseDevice of our evdev structure, the 'path' which was getting passed to our logind code was incorrect. This was due to libinput not providing a function to get the full device path. We fix this by making some eeze udev calls to find this device and get the full device path. @fix Signed-off-by: Chris Michael <>
2015-02-12ecore/drm: Fix libinput >= 0.8 checkStefan Schmidt
We need #if here as LIBINPUT_HIGHER_08 will be either 0 or 1 @fix
2015-02-12ecore-drm: Fix bad German formatting ;)Chris Michael
Summary: No functional changes, just formatting Signed-off-by: Chris Michael <>
2015-02-12ecore/drm: Add support for changed libinput API since 0.8Stefan Schmidt
We check for libinput 06 or higher. In version 0.8 they got an API break (hopefully the last one before 1.0) which we did not support so far. I have seen libinput 0.9 used on gentoo and newer ubuntu systems so we should definitely support them. Adding a LIBINPUT_HIGHER_08 define to check for this. So far we have only one location where we need it. Once there is a libinput 1.0 we should remove the support for older versions.
2015-02-03ecore-drm should probably send the expected (reversed) scroll z valueMike Blumenkrantz
2015-01-13ecore-drm: Limit mouse movement to within the output sizeChris Michael
Summary: This patch adds support to limit the mouse from moving outside the output dimensions, and fixes coordinate transformation calls to use the Output from the Input device @fix Signed-off-by: Chris Michael <>
2014-12-10ecore-drm: Finish implementing touch eventsChris Michael
Summary: This fixes the touch events to actually send button down/up when the proper touch event occurs @fix Signed-off-by: Chris Michael <>
2014-12-10ecore-drm: Comment out debug line for unhandled touch_frame eventChris Michael
Signed-off-by: Chris Michael <>
2014-12-10ecore-drm: Update pointer motion event coordinatesChris Michael
Summary: This fixes pointer motion events to be transformed based on output coordinates @fix Signed-off-by: Chris Michael <>
2014-12-10ecore-drm: Transform touch events into output coordinatesChris Michael
Summary: This updates touch events to be transformed into output coordinates @fix Signed-off-by: Chris Michael <>
2014-12-10ecore-drm: Handle various touch eventsChris Michael
Summary: This adds code to handle various touch events (up, down, motion) so that touchscreen devices can work with ecore_drm. @feature Signed-off-by: Chris Michael <>
2014-12-10ecore_drm: Removed unused variables in ecore_drm_evdevkabeer khan
Summary: Signed-off-by: kabeer khan <> @fix Reviewers: devilhorns Reviewed By: devilhorns Subscribers: cedric Differential Revision:
2014-12-09ecore-drm: Port ecore_drm to use libinputChris Michael
Summary: This ports the input code of ecore_drm to make use of libinput for handling of devices, events, etc @feature Signed-off-by: Chris Michael <>
2014-09-22ecore-drm: Fix some error/warn message formattingChris Michael
NB: Nothing functional here, just alignment of error messages in output. Signed-off-by: Chris Michael <>
2014-09-15ecore-drm: Fix formattingChris Michael
Signed-off-by: Chris Michael <>
2014-08-28ecore-drm: Print out failed device name during setupChris Michael
If we fail to setup an input device, let's print an error With the device name also Signed-off-by: Chris Michael <>