
Currently, there's a giant bug in how xdg-shell state management is done. If a client calls set_fullscreen and then set_maximized, it will get two configure events: => set_fullscreen <= configure(800, 600, [STATE_FULLSCREEN]) => set_maximized <= configure(800, 560, [STATE_FULLSCREEN, STATE_MAXIMIZED]) Since fullscreen takes precedence over maximized, the client will render full-screen at 800x600 first, and then 800x560 next. As a result, the surface gets the wrong size. This is because the code that sends out configure requests is "immediate" -- when an app calls set_maximized, we immediately send out the configure event that would have happened if we transitioned immediately into maximized mode. In wl_shell, this is correct behavior. However, in xdg-shell, this is wrong. State needs to be more carefully managed in xdg-shell, as states aren't exclusive. Pull all the code that sends out configure events out and send them centrally, based on Weston's on surface state management. This should work with both wl_shell and xdg_shell's strategies.
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 building weston and its dependencies. The test suite can be invoked via `make check`; see http://wayland.freedesktop.org/testing.html for additional details.
Description
Languages
C
98.1%
Meson
1.3%
GLSL
0.3%
Shell
0.2%