![Pekka Paalanen](/assets/img/avatar_default.png)
It is quite possible for os_create_anonymous_file() to fail when trying to allocate a new wl_shm buffer. Propagate this failure out from shm_surface_prepare. Most parts of toytoolkit are already avoiding NULL cairo surfaces. If cairo surface allocation fails, do not try to call the widget redraw functions, those are not prepared to deal with NULL. Also do not schedule a frame callback, this allows us to retry drawing the next time. If redraw fails for the main_surface of a window, restore the widget geometry to what the compositor currently is showing. This keeps the window visual appearance in sync with application state, so interacting with the application does not break too badly. If the very first draw of any window fails, then forcefully exit the program. E.g. if weston-desktop-shell fails to allocate buffers for the unlock dialog, w-d-s exits, and weston unlocks the screen automatically. This patch allows e.g. weston-terminal to stop from enlarging while resizing, if new sized buffers can no longer the allocated. Even then, the application stays usable, as it can often repaint in the last successful size. It does not crash, and the user is able to resize it smaller, too. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
…
…
…
…
Weston Weston is the reference implementation of a Wayland compositor, and a useful compositor in its own right. Weston has various backends that lets it run on Linux kernel modesetting and evdev input as well as under X11. Weston ships with a few example clients, from simple clients that demonstrate certain aspects of the protocol to more complete clients and a simplistic toolkit. There is also a quite capable terminal emulator (weston-terminal) and an toy/example desktop shell. Finally, weston also provides integration with the Xorg server and can pull X clients into the Wayland desktop and act as a X window manager. Refer to http://wayland.freedesktop.org/building.html for buiding weston and its dependencies.
Description
Languages
C
98.1%
Meson
1.3%
GLSL
0.3%
Shell
0.2%