summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-02-23protocol: add xslt convertion to prettify the protocolHEADmasterPeter Hutterer5-2/+258
Includes rudimentary styling only. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2012-02-23protocol: fix missing hyphenation for "client-created"Peter Hutterer1-1/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2012-02-23scanner: Remove unused variable 'len'Peter Hutterer1-1/+1
scanner.c: In function ‘desc_dump’: scanner.c:142:42: warning: unused variable ‘len’ [-Wunused-variable] Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2012-02-23spec: padding bytes are undefined, state soPeter Hutterer1-1/+2
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2012-02-23spec: typo and wording fixesPeter Hutterer1-3/+3
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2012-02-18server: Implement wl_keyboard_grab_interface.Scott Moreau2-0/+59
2012-02-18server: Rename wl_grab_interface.Scott Moreau3-38/+39
In order to separate pointer and keyboard grabs, we need to introduce a keyboard grab interface but first we must rename some generic types to denote which device is holding the grab. Type renames: wl_grab_interface -> wl_pointer_grab_interface wl_grab -> wl_pointer_grab wl_input_device_start_grab -> wl_input_device_start_pointer_grab wl_input_device_end_grab -> wl_input_device_end_pointer_grab
2012-02-18Add wl_client_get_credentials() to get unix credentials for clientKristian Høgsberg2-0/+24
2012-02-16protocol: remove absolute coordinates from pointerPekka Paalanen3-16/+6
Remove the absolute coordinate fields from the pointer motion and pointer_focus events. Clients are not supposed to see any global coordinates. Fix wayland-server code accordingly. wayland-client code is unaffected. Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2012-02-16data_device: get rid of attach requestAnder Conselvan de Oliveira3-19/+35
In the effort to make everything a regular surface, remove data_device.attach request. To maintan the functionality, add an icon surface parameter to data_device.start_drag. Signed-off-by: Kristian Høgsberg <krh@bitplanet.net> Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
2012-02-16Add fullscreen protocolJuan Zhao1-8/+32
Map the surface as a fullscreen surface. On the output the surface is assigned to. The client can use different fulllscreen method to fix the size mismatch issue: default, scale, driver and fill. Hints to indicate compositor how to deal with this fullscreen surface. "default" means the client has no preference on fullscreen behavior, policies are determined by compositor. "scale" means the client prefers scaling by the compositor. Scaling would always preserve surface's aspect ratio. And the surface is centered. "driver" means the client wants to switch video mode to the smallest mode that can fit the client buffer. If the sizes do not match, black borders are added. And the framerate parameter is used for "driver" method, to indicate the preferred framerate. framerate=0 means that the app does not care about framerate "fill" means the client wants to add blackborders to the surface. This would be preferring 1:1 pixel mapping in the monitor native video mode. The surface is centered.
2012-02-16Add maximized protocolJuan Zhao1-0/+13
A request from the client to ask the compositor to maximize the surface. The compositor will reply with a configure event telling the expected new surface size. The operation is completed on the next buffer attach to this surface. A maximized client will fill the fullscreen of the output it is bound to, except the panel area. This is the main difference between a maximized shell surface and a fullscreen shell surface.
2012-02-09Use dist-xz for tarballsKristian Høgsberg1-1/+1
2012-02-09Set version to 'master' on git master branchKristian Høgsberg1-1/+1
2012-02-09scanner: don't print new line when no descriptions are providedTiago Vignatti1-1/+2
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2012-02-09protocol: fix typoTiago Vignatti1-5/+5
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2012-02-09spec: fix typoTiago Vignatti1-1/+1
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2012-02-09Drop warning when we receive an event for zombie objectsKristian Høgsberg1-1/+0
Business as usual, but the message is confusing.
2012-02-09wayland-util.h: Avoid un-namespaced _container_ofKristian Høgsberg1-9/+9
Yes, there are worse offenders in that file, but this one isn't used in the code and it makes Xorg angry.
2012-01-19spec: list core interfaces with short descriptionsJesse Barnes1-3/+30
Plus fix up misc. grammar.
2012-01-19spec: update high level description, add diagramsJesse Barnes3-28/+86
Add diagrams from the Wayland architecture page and add some more high level text describing X limitations and Wayland architecture.
2012-01-19scanner: allow summary attributes in args and <description> in <protocol>Jesse Barnes2-32/+48
Add support for arg summaries for use by detailed structure element descriptions.
2012-01-18protocol: Convert comments to new documentation tagsKristian Høgsberg1-175/+287
2012-01-18scanner: Support documentation elementsJesse Barnes2-4/+146
On Wed, 18 Jan 2012 12:29:37 -0800 "Kristensen, Kristian H" <kristian.h.kristensen@intel.com> wrote: > Yeah, that looks good. I was thinking of a separate <description> tag > to avoid stuffing too much into an attribute. How does this look? It adds a summary attribute to atomic elements, and a <description> tag with a summary for others. Spits out enum documentation like this: /** * wl_display_error - global error values * @WL_DISPLAY_ERROR_INVALID_OBJECT: server couldn't find object * @WL_DISPLAY_ERROR_INVALID_METHOD: method doesn't exist on the specified interface * @WL_DISPLAY_ERROR_NO_MEMORY: server is out of memory * * These errors are global and can be emitted in response to any server request. */ enum wl_display_error { WL_DISPLAY_ERROR_INVALID_OBJECT = 0, WL_DISPLAY_ERROR_INVALID_METHOD = 1, WL_DISPLAY_ERROR_NO_MEMORY = 2, }; and structure documentation like this: /** * wl_display - core global object * @bind: bind an object to the display * @sync: (none) * * The core global object. This is a special singleton object. It is used for * internal wayland protocol features. */ struct wl_display_interface { void (*bind)(struct wl_client *client, struct wl_resource *resource, uint32_t name, const char *interface, uint32_t version, uint32_t id); void (*sync)(struct wl_client *client, struct wl_resource *resource, uint32_t callback); };
2012-01-13Fix 'make dist' as connection.h no longer existsRichard Hughes1-1/+0
2012-01-12server: In default grab, update focus resource after sending releaseNeil Roberts1-5/+5
The default grab implementation in wayland-server was updating the focus resource before sending the button event. This would cause the button release to be dropped from the implicit grab if the pointer is moved away from the focus surface. This patch just swaps the order around.
2012-01-11shm: Drop non-premul format, use less ambiguous ARGB8888 naming conventionKristian Høgsberg2-9/+7
This also matches the new wl_drm format names.
2012-01-06Add new wl_shell popup surface typeKristian Høgsberg1-0/+26
2012-01-06Move data device implementation into wayland-serverKristian Høgsberg4-0/+511
2012-01-06Move default grab implementation to wayland-serverKristian Høgsberg1-0/+56
2012-01-06New grab APIKristian Høgsberg2-54/+24
This commit changes the way struct wl_grab works in a couple of ways: - The grab itself now decides when it ends instead of hardcoding button up as the terminating event. We remove the end vfunc since a grab now always know when it ends and can just clean up at that point. - We add a new focus vfunc that is invoked every time the pointer enters a new surface, regardless of any grabs. The callback receives the surface and the surface-relative pointer coordinates. The callback lets a grab send enter/leave events and change the grab focus. - The grab has a focus surface, wich determines the coordinate space for the motion callback coordinates. - The input device always tracks the current surface, ie the surface that currently contains the pointer, and coordinates relative to that surface. With these changes, we will be able to pull the core input event delivery and the drag and drop grab into the core wayland-server library.
2012-01-04server: Allocate server ID for when resource->object.id is 0Kristian Høgsberg1-1/+8
2012-01-03server: remove wl_display::callback_list as unusedPekka Paalanen1-2/+0
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2012-01-03server: add wl_input_device_release()Pekka Paalanen2-0/+18
Add a clean-up function for destroying all objects created in wl_input_device_init(). Can be used to fix memory leaks reported by Valgrind in the demos. The init function was also missing an explicit initialisation of the 'keys' array. Add the explicit array init, although it is redundant with the zeroing of the whole struct. Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com> krh: Edited to rename function to *_release()
2011-12-28Fix WL_EVENT_WRITEABLE typoKristian Høgsberg3-6/+6
2011-12-27Drop unused hash tableKristian Høgsberg4-319/+3
We now just use a table for looking up object IDs so we should drop the hash table.
2011-12-22Rename all instances of typeofKristian Høgsberg1-1/+1
2011-12-22Use __typeof__ instead of typeofKristian Høgsberg1-2/+2
Thiago Macieira compiles with -std=c++11.
2011-12-22server: destroy the socket event source on display destroyPekka Paalanen1-4/+7
On wl_display_add_socket(), the listening socket fd is added to the event loop. However, wl_event_source object is not stored and hence cannot be freed, resulting in a minor leak. Store wl_event_source pointer in struct wl_socket so we can track it, and destroy it on wl_display_destroy(). The event loop itself must be destroyed after destroying the event sources linked to it. Fixes a Valgrind reported memory leak. Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2011-12-21protocol: update touch_down with focus surfaceTiago Vignatti1-0/+1
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2011-12-19protocol: Add a bit of documentationKristian Høgsberg1-0/+16
2011-12-17connection: Fix printf format warningsKristian Høgsberg1-2/+2
2011-12-17Increase closure buffer size and fail gracefully for too big closures.Laszlo Agocs3-6/+38
Buffer size changed from 256 to 1024 bytes. Marshalling will now stop if the buffer is not big enough.
2011-12-14Removed superfluous call to wl_copy_connectionAndy Nichols1-2/+0
The only purpose those code seems to serve is to introduce a buffer overflow when events contain more than 128 bytes of data.
2011-12-14Make wl_list_for_each* work for c++Jørgen Lind1-1/+7
2011-12-13client: fix a strdup memory leakPekka Paalanen1-3/+10
Memory leak found by valgrinding simple-shm client. struct wl_global::interface is a strdup()'d string that was never freed. Make a function for freeing a wl_global, and use it. krh: Edit to name wl_global destructor wl_global_destroy. Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2011-12-05client: unset WAYLAND_SOCKET env variablePekka Paalanen1-0/+1
WAYLAND_SOCKET contains a file descriptor that is an open connection to a Wayland server. It is private to us, and makes no sense to relay the same value (or any value) to our child processes. Unset the environment variable to prevent it from being accidentally relayed to other processes. Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2011-11-29server: do not send delete_id to a dead clientPekka Paalanen1-3/+5
During client tear-down, all objects are destroyed in id order. Therefore the display object is destroyed first. If the destroy listeners of any object destroy another object by calling wl_resoruce_destroy(), we try to send a delete_id event to the client. This leads to a segmentation fault without a display object. Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2011-11-29protocol: introduce wl_shell_surfacePekka Paalanen1-11/+15
Requests like 'move' and 'set_toplevel' are really methods of a surface, not methods of a global shell object. Move all these methods to a new interface, wl_shell_surface. The global object wl_shell will contain only 'get_shell_surface' request, which creates and associates a wl_shell_surface object to a given wl_surface object. This will also give the shell plugin (if you look at the demo compositor) means to store per-surface private data in a natural way. Due to a limitation in delete_id event handling on client side, the client must destroy its wl_shell_surface object before destroying the wl_surface object. Otherwise it may just leak an id. Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2011-11-29server: document wl_resource_post_event() argumentsPekka Paalanen1-0/+17
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>