locks are not the same as modifiers, and the corresponding event flag must
be set based on whichever value(s) are set instead of yolo mixing and matching
@fix
ref T5737
libinput won't actually give us this info, and logs an error instead.
We can't synthesize based on pointer position due to pointer
warping.
So we must track abs reports and use previous abs reports to
synthesize rel events.
When I added the code to probe drm devices to ensure they're
modeset capable (ref 414d406b3b)
I didn't realize elput didn't allow us to open and close more than
one drm device at startup without blowing up libinput.
This is a somewhat dirty hack to rough that in.
The problem is that open/close the device during startup will
result in an async "gone" callback from logind, which then kicks
off an input shutdown. We need to try harder to only do that
shutdown when it makes sense.
Small patch to update keyboard led(s) when caps, numlock, etc are
pressed. This patch adds some fields to internal (non-API exposed)
structures inside our private header (of a BETA-API library) and thus
should still be ok during freeze.
Fixes T5655
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
this was originally intended to allow some code to be moved out of the
compositor, but the idea turned out to be unfeasible since multiple
display backends need to be supported and not all related components
will provide similar functionality
Small patch which adds an API function that can be called to swap x
and y axis and invert them according to rotation angle.
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
this is still semi-broken if a seat has many pointer-ish type devices since
pointer devices in ecore-evas were never correctly implemented to be 1:1 with
seat:cursor relationships
@feature
context and keymap need to be set at the same time in order to effectively
update keyboard state, and active group should be accessible through api
as well
preserve old function ABI to ensure old binaries don't crash
This patch adds a timestamp field to the touch structure so that we
can store it and do not have to refetch the timestamp when sending
touch events.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This patch fixes an issue where input would stop working when you
vt-switch away and back again in a running Enlightenment Wayland
session. Basically, when we vt-switch away, we need to tell libinput
to suspend input event processing, and when we return to re-enable it.
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds 2 new API functions which can enable keyboard key
remapping, and set which keys are to be remapped.
@feature
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This adds an API function that can be called to calibrate input
devices based on a given output size
@feature
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
'window' and pointer max w/h attributes are set for a manager object,
so let the attributes stay there. this also resolves issues where devices
created at a later point would fail to be initialized with these attributes
this adds an overly-complex method of removing blocking dbus calls from libinput's
synchronous device initialization architecture. libinput was clearly never meant
to be used in this way, but we're doing it anyway because we're efl.
#SamsungFeatures
This commit adds an API function which Enlightenment can call in order
to set an input device to be "left-handed". Mainly used for a mouse
pointer, but not specific to pointers.
@feature
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch makes elput handle receiving the key combinations for vt
switching and perform the actual switch itself. This is done so that
ecore_drm2, ecore_fb, etc, etc do not each need their own code to
handle vt switching.
@feature
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds a new API function to Elput that can be used to switch
to a given VT. This allows drm2 or enlightenment to switch to a given
virtual terminal in response to keybindings.
@feature
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
Small patch to add an API function that can be used to set the current
pointer position on a given seat name. This function (typically) will
be used inside an Ecore_Evas to "pointer warp".
@feature
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds start of code to create or remove input devices such
as keyboards, pointers, or touch devices.
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
As this library is just going to deal with libinput, we don't need to
have interface functions to activate or restore a virtual terminal.
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This adds new API functions which can be called to open or close an input
device and take control (or release control) of said device
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This commit adds the start of the Elput Manager & Interface code. This
will be used as an inteface to various backend methods of session &
device control (ie: systemd, direct interface, etc). This will provide
various abstractions for working with libinput when opening/closing
input devices.
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
The elput library is an efl abstraction for the libinput library which
can be used by various other subsystems (ecore_fb, ecore_drm, etc) to
handle interfacing with libinput without having to duplicate the code
in each subsystem.
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>