If the first output we test is disconnected but has the crtc of
the primary display assigned then we'll fail to assign the crtc
to the connector it's really connected to later.
This is a quick hack as trying to sort this out properly may be
too invasive for the upcoming 1.18 and isn't really important until
1.19 supports multihead anyway.
As it turns out, when we vt-switch Back to a running Enlightenment,
it ends up processing all outputs and causes Evas to create a giant
canvas to cover all outputs. This new canvas causes a blank screen as
the pageflipping fails (due to fb being too large). As we do not yet
support output on more an one screen anyway, temporarily disable any
output which is not marked as primary.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit adds a function we can call from inside Enlightenment in
order to fix an issue with VT-Switching. The problem was when a client
application is open, the compositor does not pass along the key-combo
for vt-switch but rather sends it to an application. This patch (along
with upcoming Enlightenment one) fixes the issue.
NB: This late API add approved by Stefan ;)
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Previously a drm event could create a new output or disconnect an output,
but could not re-enable an existing output.
This results in failure to properly wake from screen blanker.
We're currently doing screenshots in E under wayland by copying data
out of the framebuffer, mmaping gbm buffers makes screenshots work
again when rendering with GL.
When a new input device gets added, device calibration may need to be
performed. In order for that to be done properly, we need to know
which output this input device is associated with. This patch makes a
function call to Elput in order to retrieve that output name and
perform the proper calibration.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Running E wl2 in KVM led to the following issue: integrated mouse
pointer would always be stuck at (0,0).
The reason was that calibration would never happen, and it's
required* for absolute pointing devices, such as the qemu mouse
integration.
Fix: Listen to device add and calibrate based on the first
output. No idea if we could calibrate on any other output,
or how this should be done in case of multiple screens.
[*] I believe calibration might actually not be required, as
the absolute position is already the correct one when
received from libinput.
Coverity reports that we end up leaking the return from
_output_name_get as the storage is never freed.
Fixes Coverity CID1357161
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
When we vt-switch away from a running session, we need to disable
rendering to an output and re-enable when we switch back. This patch
set essentially makes vt-switching work again in Enlightenment Wayland.
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This adds a new API function that Ecore_Evas can call to calibrate
input devices given size of the output
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds 2 new API functions which are required by Ecore_Evas
in order for it to function with drm. These API functions allow for
restricting pointer movement, and for setting the window id which will
be used when sending input events
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds a new Ecore_Drm2_Event_Activate that can be raised to
inform Enlightenment that a session has been activated or suspended so
that rendering can be paused/resumed
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds support for creating, deleting, and manipulating
framebuffer objects via exposed API.
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds support for creating, destroying, and otherwise
working with outputs via exposed API functions.
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This commit adds new API functions to find, open, and close a drm
device, along with API functions to retrieve clock_id and cursor size.
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This new library is going to replace the existing Ecore_Drm. This will
refactor a lot of the code, bring improvements over the existing API,
and provide additional support for missing features.
@feature
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>