Find a file
Jasper St. Pierre 6458ec3410 shell: Centralize management of sending configure requests
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.
2014-05-12 23:34:05 -07:00
clients xdg-shell: Turn "activated" into a state 2014-05-12 23:34:05 -07:00
data build: Move data/Makefile.am into Makefile.am 2014-01-31 23:49:39 -08:00
desktop-shell shell: Centralize management of sending configure requests 2014-05-12 23:34:05 -07:00
fullscreen-shell Add a wl_fullscreen_shell implementation 2014-04-02 21:25:56 -07:00
man compositor: add --no-config command line option 2014-05-09 15:00:01 -07:00
protocol xdg-shell: Turn "activated" into a state 2014-05-12 23:34:05 -07:00
shared cairo-util: Don't show a resize cursor on edges when we're maximized 2014-04-30 21:02:37 -07:00
src compositor: add --no-config command line option 2014-05-09 15:00:01 -07:00
tests tests: load the right shell plugin 2014-05-09 15:00:32 -07:00
wcap wcap: Check for mmap and malloc return value in wcap decode module 2014-05-06 15:21:27 -07:00
xwayland compositor: Remove the edges parameter from send_configure 2014-04-30 20:53:15 -07:00
.gitignore gitignore log files, now in root directory 2014-05-12 10:06:50 -07:00
autogen.sh Update autotools configuration 2010-11-06 21:04:03 -04:00
configure.ac configure.ac: Bump version 1.4.93 2014-05-12 12:51:52 -07:00
COPYING Add COPYING 2012-04-25 10:17:42 -04:00
Makefile.am build: let 'make clean' remove logs/ again 2014-05-12 10:07:03 -07:00
notes.txt Add informal notes file 2012-10-25 15:00:42 -04:00
README README: Fix typo; add link to testing docs 2014-02-05 17:20:24 -08:00
weston.ini.in weston.ini.in: Update path to weston-flower 2014-02-18 20:39:51 -08:00

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.