These new protocol events allow us to tell which outputs a surface is on, and
potentially update where we allocate our buffers from.
Signed-off-by: Casey Dahlin <cdahlin@redhat.com>
- Added ping_timer_destroy() to simplify cleanup.
- Changed timeout and fade step to more realistic values.
- Renamed ping_timeout_fade_frame() to unresponsive_fade_frame().
If a client is not responding, lower the brightness and
saturation to indicate it's stalled. The surface is restored
to it's original color values if the client later becomes
responsive.
Switching display mode may happen when:
1. The fullscreen surface is at top most in fullscreen layer and with
"driver" method. Shell will switch output mode to match the surface
size. If no matched mode found, fall back to "fill" method.
2. The top fullscreen surface is destroyed or unset. Switch back to the
origin mode.
Specially the "either" word there is essential, so users don't confuse
thinking that both steps are needed.
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
Some GL implementations do not provide GL_EXT_read_format_bgra
extension.
Set a glReadPixels format based on whether the extensions is supported
or not, and use that format in all backends.
Add RGBA->BGRA swapping copy to screenshooter to keep the shm buffer
data format as BGRA.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
During a bring-up of a new backend, it would be nice to get a real error
message, when the EGL and GL contexts have not been properly set up.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
This is a workaround for platforms, whose EGL headers miss the
definitions for EGL_WL_bind_wayland_display.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
Compositor core does not do anything with udev, so the header is not
needed there. Move the #include into evdev.h, from where it gets used by
compositor-drm.c, too.
Also fix the fallout:
tty.c: In function 'tty_create':
tty.c:143:2: warning: implicit declaration of function 'fstat'
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
This reverts a snip from commit d012e9df. On that commit, it was lost the
ability of calling X applications from desktop panel; xserver module
was setting DISPLAY only later, after panel was already launched.
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
wl_shell is more likely to be used for core protocol specific. Now it follows
pretty much the same style of what tablet-shell is using.
No functional changes.
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
When the surface being moved, resized or rotated was destroyed, the
compositor would crash.
Fix this by using a destroy listener on the referenced surface. To
reduce code duplication, the surface reference and the destroy
listener is added to a new struct shell_grab.
Removing the input devices will trigger events and activity that will cause
a redraw. Do this before we put the compositor to sleep so we can cancel it
properly and avoid immediately waking the compositor again.
We dont want to receive hotplug events while being inactive.
When getting back active we enumerate all devices and would end up
with two sources for one device that may be hotplugged in the mean time.
weston-launch starts weston and provides mechanism
for weston to set/drop drm master, open a tty,
and read input devices without being root.
Execution is allowed for local-active sessions
or users in the group weston-launch.
Use shell_stack_fullscreen() to raise fullscreen surface in activate(),
and before activate() a regular surface, move all the fullscreen
surfaces from fullscreen_layer to toplevel_layer.
Also add a void *private into struct wesont_surface since we already
have a configure() vfunc. That helps to get the associated fullscreen
surface of black surface.