Commit Graph

153 Commits

Author SHA1 Message Date
Pekka Paalanen
e09ac6450b protocol: elaborate on wl_buffer
Spell out exactly when a client may re-use a wl_buffer or its backing
storage. Mention the optimization for GL-compositor with wl_shm-clients.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2012-10-10 22:01:17 -04:00
Pekka Paalanen
a4fd9e6583 protocol: wl_surface.frame needs wl_surface.commit
Clarify, when frame request takes effect.
Explain when to send/receive the callback.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2012-10-10 22:01:17 -04:00
Pekka Paalanen
b61c0f47d5 protocol: clarify input region on drags and pointers
Drag icon and cursor surfaces must never receive input, so their input
region is always empty.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2012-10-10 22:01:17 -04:00
Pekka Paalanen
39624020fc protocol: double-buffered state for wl_surface
This change breaks the protocol.

The current protocol is racy in that updates to surface content and
surface state (e.g. damage, input and opaque regions) are not guaranteed
to happen at the same time. Due to protocol buffering and handling
practices, the issues are very hard to trigger.

Committing damage to a surface at arbitrary times makes it hard to
track when the wl_buffer is being read by the server, and when it is
safe to overwrite (the case of wl_shm with a single buffer reused
constantly).

This protocol change introduces the concept of double-buffered state.
Such state is accumulated and cached in the server, unused, until the
final commit request. The surface will receive its new content and apply
its new state atomically.

A wl_surface.commit request is added to the protocol. This is thought to
be more clear, than having wl_surface.attach committing implicitly, and
then having another request to commit without attaching, as would be
required for a GL app that wants to change e.g. input region without
redrawing.

When these changes are implemented, clients do not have to worry about
ordering damage vs. input region vs. attach vs. ... anymore. Clients set
the state in any order they want, and kick it all in with a commit.

The interactions between wl_surface.attach, (wl_surface.commit,)
wl_buffer.release, and wl_buffer.destroy have been undocumented. Only
careful inspection of the compositor code has told when a wl_buffer is
free for re-use, especially for wl_shm and wrt. wl_surface.damage.
Try to clarify how it all should work, and what happens if the wl_buffer
gets destroyed.

An additional minor fix: allow NULL argument to
wl_surface.set_opaque_region. The wording in the documentation already
implied that a nil region is allowed.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2012-10-10 22:01:17 -04:00
Kristian Høgsberg
9fe75537ad Split the global registry into its own wl_registry object
The only way to make the global object listener interface thread safe is to
make it its own interface and make different listeners different wl_proxies.
The core of the problem is the callback we do when a global show up or
disappears, which we can't do with a lock held.  On the other hand we can't
iterate the global list or the listener list without a lock held as new
globals or listeners may come and go during the iteration.

Making a copy of the list under the lock and then iterating after dropping
the lock wont work either.  In case of the listener list, once we drop the
lock another thread may unregister a listener and destroy the callbackk
data, which means that when we eventually call that listener we'll pass it
free memory and break everything.

We did already solve the thread-safe callback problem, however.  It's what
we do for all protocol events.  So we can just make the global registry
functionality its own new interface and give each thread its own proxy.
That way, the thread will do its own callbacks (with no locks held) and
destroy the proxy when it's no longer interested in wl_registry events.
2012-10-10 20:59:00 -04:00
Kristian Høgsberg
85a6a47087 scanner: Send interface name and version for types new_id args
This makes the scanner generate the code and meta data to send the
interface name and version when we pass a typeless new_id.  This way, the
generic factory mechanism provided by wl_display.bind can be provided by
any interface.
2012-10-10 20:59:00 -04:00
Tiago Vignatti
b41dc10063 wayland: Fix typos
My vim spell checker is able to find typos of xml files after adding "syn spell
toplevel" to ~/.vim/after/syntax/xml.vim

aah, and Wayland is capital letter :)

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2012-10-09 22:45:48 -04:00
Tiago Vignatti
35d8da8ef6 protocol: Fix typo
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2012-09-25 10:15:17 -04:00
Diego Viola
4b681a7fd4 Fix typo (ratio, not ration)
Signed-off-by: Diego Viola <diego.viola@gmail.com>
2012-09-13 11:31:44 -04:00
Scott Moreau
599a455fb4 protocol: Fix typo. 2012-08-16 10:49:48 -04:00
Andre Heider
7f3d22776b protocol: Remove "repeat" from "key_state"
This is unused and apparently was never implemented.
2012-07-31 22:35:45 -04:00
Kristian Høgsberg
eadb68ec32 protocol: Add transform argument to wl_output.geometry event 2012-07-22 15:50:37 -04:00
Martin Olsson
fc0c2e04c5 doc: fix some typos in documentation 2012-07-09 18:03:56 -04:00
Ander Conselvan de Oliveira
84bac043e1 protocol: Add missing allow-null to data_device.enter data_offer field
Fixes bug 51889.
2012-07-09 18:00:31 -04:00
Kristian Høgsberg
8a023688c0 protocol: Add a couple of missing allow-null annotations
wl_data_device.set_selection() allows NULL to withdraw the previously set
selection and wl_surface.attach() allows a NULL buffer to hide the surface.
2012-07-02 14:34:48 -04:00
Christopher James Halse Rogers
11db60fe72 protocol: Explicitly mark requests which allow null arguments
Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
2012-07-02 13:53:06 -04:00
Ander Conselvan de Oliveira
c30ad0d9da protocol: Change wording of pointer.set_cursor()
Change the description of pointer.set_cursor() so that a client without
pointer focus but that currently owns the pointer surface can update the
hotspot using it.
2012-06-28 14:13:41 -04:00
Kristian Høgsberg
ae6f3001a5 wl_shell: Don't require that parent surfaces are wl_shell_surfaces
The set_transient and set_popup requests take a wl_shell_surface as
the parent surface argument.  We don't need the parent surface to be
a shell surface and this restricts the types of surfaces we can use
the transient and popup surface types on.
2012-06-27 10:30:08 -04:00
Ander Conselvan de Oliveira
b6aa49455e protocol: replace pointer.attach with pointer.set_cursor 2012-06-15 10:52:50 -04:00
Daniel Stone
dff84e5638 Add wl_keyboard::keymap event
With this event, the compositor generates one canonical keymap for all
clients, and then sends an mmap()able fd over the wire, rather than all
the clients generating possibly disparate keymaps.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-06-01 10:35:48 -04:00
Daniel Stone
cfd56ed4bc Convert wl_pointer::axis to fixed
Which allows for smooth scrolling, among other things.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-05-31 14:02:28 -04:00
Daniel Stone
872d074a43 Add key_state and button_state enums
Rather than hardcoding 0 and 1 everywhere.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-05-31 14:02:20 -04:00
Daniel Stone
9a1705c5f5 wl_keyboard: Add modifier event
This event sends the current keyboard modifier/group state from the
compositor to the client, allowing all clients to have a consistent view
of the keyboard state (e.g. current layout, Caps Lock, et al).  It
should be sent after a keyboard enter event, and also immediately after
any key event which changes the modifier state.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-05-31 14:01:56 -04:00
Ander Conselvan de Oliveira
75a5f7476a data-device: implement drags with no data source for self-dnd
Properly handle a drag with no data source, i.e., don't crash and send
events only to the client that initiated the drag. This way a client can
do self drag and drop without offering anything to other clients.
2012-05-29 09:58:13 -04:00
Ander Conselvan de Oliveira
ff0d745674 shm: Add request for resizing pools 2012-05-22 15:20:12 -04:00
Tiago Vignatti
35a92ef83b protocol: use transient flags for activate or not surfaces
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2012-05-21 12:55:36 -04:00
Daniel Stone
aa0fb0f49c Convert wl_input_device to wl_seat (and friends)
wl_input_device has been both renamed and split.  wl_seat is now a
virtual object representing a group of logically related input devices
with related focus.

It now only generates one event: to let clients know that it has new
capabilities.  It takes requests which hand back objects for the
wl_pointer, wl_keyboard and wl_touch interfaces it exposes which all
provide the old input interface, just under different names.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-05-16 14:19:22 -04:00
Kristian Høgsberg
bd5617772c protocol: Specify that the fullscreen framerate parameter is also mHz 2012-05-10 14:13:05 -04:00
Kristian Høgsberg
e8aa047259 protocol: Back out accidentally committed wl_seat changes 2012-05-10 12:09:56 -04:00
Kristian Høgsberg
0155c28e8c protocol: Add documentation for wl_output 2012-05-10 12:02:01 -04:00
Kristian Høgsberg
68e0eaa2b5 TODO: More updates 2012-05-09 11:26:30 -04:00
Daniel Stone
0c20496e1a Input: Convert pointer co-ordinates to signed_24_8
This offers more precision when using devices like tablets, and also for
transformed surfaces.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-05-08 14:40:46 -04:00
Kristian Høgsberg
3de517a092 Use class_ instead of class in protocol
This way we can include the generated code from C++.
2012-05-03 15:41:50 -04:00
Kristian Høgsberg
2753904eda Add shell_surface set_title and set_class requests 2012-05-02 09:39:17 -04:00
Kristian Høgsberg
5177e76984 protocol: Move ping event down to other events 2012-05-01 13:50:23 -04:00
Casey Dahlin
a5df3de101 Add wl_surface.enter and wl_surface.leave events
These events let us track when a surface enters or leaves the scanout region of
an output. This way if a surface moves to another output and that output is on
a different card, we can suggest the toolkit reallocate its buffers
appropriately.

Signed-off-by: Casey Dahlin <cdahlin@redhat.com>
2012-04-20 10:45:38 -04:00
Scott Moreau
2896b6a220 protocol: Add ping event and corresponding pong request 2012-04-19 12:48:55 -04:00
Kristian Høgsberg
5535f155d8 Switch protocol to using serial numbers for ordering events and requests
The wayland protocol, as X, uses timestamps to match up certain
requests with input events.  The problem is that sometimes we need to
send out an event that doesn't have a corresponding timestamped input
event.  For example, the pointer focus surface goes away and new
surface needs to receive a pointer enter event.  These events are
normally timestamped with the evdev event timestamp, but in this case,
we don't have a evdev timestamp.  So we have to go to gettimeofday (or
clock_gettime()) and then we don't know if it's coming from the same
time source etc.

However for all these cases we don't need a real time timestamp, we
just need a serial number that encodes the order of events inside the
server.  So we introduce a serial number mechanism that we can use to
order events.  We still need real-time timestamps for actual input
device events (motion, buttons, keys, touch), to be able to reason
about double-click speed and movement speed so events that correspond to user input carry both a serial number and a timestamp.

The serial number also give us a mechanism to key together events that
are "logically the same" such as a unicode event and a keycode event,
or a motion event and a relative event from a raw device.
2012-04-11 22:27:26 -04:00
Kristian Høgsberg
aa777e5b10 shm: Allocate shm buffers through new wl_shm_pool interface
There's a big cost to setting up and tearing down a mmap and faulting in
the pages to back it.  For cases where we're continuously reallocating
shm wl_buffers (resizing a surface, typically) it is a big performance
improvement to be able to reuse a mmap area.  This change makes the shm
buffer allocation a two step process: first allocate a wl_shm_pool, then
allocate a buffer from the pool.  The wl_shm_pool encapsulate the shared
memory pool, and lets clients allocate wl_buffers backed by chunks of that
memory.  Buffers are allocated at an offset into the pool, so it's possible
to create multiple buffers from one pool, for example for icons or cursor
images.
2012-04-03 12:34:22 -04:00
Kristian Høgsberg
485dd7b6e2 shm: Fix stride signedness in protocol
Make stride argument of wl_shm.create_buffer a signed integer.
2012-03-30 10:24:29 -04:00
Kristian Høgsberg
83685c506e Remove wl_buffer.damage and simplify shm implementation 2012-03-26 16:33:24 -04:00
Scott Moreau
75480a1eeb Add protocol for axis events 2012-03-22 12:34:17 -04:00
Gaetan Nadon
bbddbc4829 Fix distcheck where protocol.xsl was missing in the tarball
To reproduce, invoke distcheck from an out-of-source tree.

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2012-03-04 15:01:45 -05:00
Rob Bradford
089c977a3b protocol: Clarify the documentation for the fullscreen protocol 2012-02-29 12:18:44 -05:00
Peter Hutterer
bcafc467c5 protocol: fix make distcheck
Distribute all source files that we need for buildling.
Plus, remove the html file on make clean.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2012-02-29 12:29:08 +10:00
Kristian Høgsberg
d0711b27ee protocol.xsl: Rename stylesheet to wayland-protocol.css
Otherwise it clashes with the website stylesheet.
2012-02-23 16:41:46 -05:00
Peter Hutterer
015c42e1b1 protocol: add xslt stylesheet to prettify the protocol
Includes rudimentary styling only.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2012-02-23 16:03:58 -05:00
Peter Hutterer
50e87a006f protocol: fix missing hyphenation for "client-created"
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2012-02-23 15:45:16 -05:00
Kristian Høgsberg
1ba69d26e0 Add wl_region and surface requests to set opaque and input regions 2012-02-23 15:35:30 -05:00
Kristian Høgsberg
3c6f42112d Split pointer_focus and keyboard_focus into enter and leave events 2012-02-23 09:35:24 -05:00
Pekka Paalanen
5536031bfb protocol: remove absolute coordinates from pointer
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-16 16:33:01 -05:00
Ander Conselvan de Oliveira
7243062f93 data_device: get rid of attach request
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-16 16:11:44 -05:00
Juan Zhao
b3981136a1 Add fullscreen protocol
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-16 15:49:29 -05:00
Juan Zhao
2eddfce14b Add maximized protocol
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-16 15:49:03 -05:00
Tiago Vignatti
899652201f protocol: fix typo
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2012-02-09 09:42:18 -05:00
Jesse Barnes
f66aa1d08f scanner: allow summary attributes in args and <description> in <protocol>
Add support for arg summaries for use by detailed structure element
descriptions.
2012-01-19 17:16:39 -05:00
Kristian Høgsberg
032b957698 protocol: Convert comments to new documentation tags 2012-01-18 19:17:23 -05:00
Jesse Barnes
5cd0471311 scanner: Support documentation elements
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-18 18:22:25 -05:00
Kristian Høgsberg
151ca457b4 shm: Drop non-premul format, use less ambiguous ARGB8888 naming convention
This also matches the new wl_drm format names.
2012-01-11 14:19:54 -05:00
Kristian Høgsberg
b2e619c740 Add new wl_shell popup surface type 2012-01-06 11:40:02 -05:00
Tiago Vignatti
1f58d155da protocol: update touch_down with focus surface
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2011-12-21 13:57:27 -05:00
Kristian Høgsberg
e68529b52f protocol: Add a bit of documentation 2011-12-19 13:15:06 -05:00
Pekka Paalanen
42eed3235a protocol: introduce wl_shell_surface
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-29 14:46:49 +02:00
Kristian Høgsberg
eae3bcb4cc New drag and drop / selection protocol
This commit brings a big change to the DND and copy/paste interfaces.
Most importantly the functionality is now independent of wl_shell.
The wl_shell interface is intended for desktop style UI interaction and
an optional and experimental interface.

The new interface also allows receiving the DND data multiple times or
multiple times during the drag, and the mechanism for offering and receiving
data is now shared between DND and selections.
2011-11-23 16:05:58 -05:00
Kristian Høgsberg
3a1e6df39a Add display event to acknowledge ID deletion
We need to make sure the client doesn't reuse an object ID until the
server has seen the destroy request.  When a client destroys an ID
the server will now respond with the display.delete_id event, which lets
the client block reuse until it receives the event.
2011-11-17 17:37:52 -05:00
Kristian Høgsberg
bfe54cbe37 protocol: Change global_remove arg to be 'name' insteadl of 'id'
Consistent with global args.
2011-10-24 16:05:04 -04:00
Kristian Høgsberg
d63884b0c7 scanner: Catch more invalid attribute combinations for arg
Spotted by Jakob Bornecrantz.
2011-10-24 16:04:09 -04:00
Kristian Høgsberg
c640571c00 Remove the wl_visual interface
The visual interface was meant to be a generic mechanism for
specifying the content of a buffer.  It goes back to before we had the
buffer factory interfaces (like wl_drm and wl_shm) and we wanted to
keep it open-ended enough that yuv, png or even svg buffer or so would
be possible.

Now that we have the buffer abstraction, we can add different buffer
types by introducing new interfaces that create buffers.  It only
makes sense to leave it to those interfaces to specify the contents of
the buffers.

For wl_shm, this means that we now just specify the pixel format using
an enum.  For EGL buffers, the exact pixel formats are controlled by
the implementation (part of wl_drm and similar), and from the client
point of view, everything is controlled using EGLConfigs.
2011-08-31 18:34:21 -04:00
Kristian Høgsberg
4a39081c1d Remove range protocol 2011-08-27 12:06:11 -04:00
Kristian Høgsberg
cc6fd94d6a Always allocate a new wl_resource when binding an object
Previously we would bind some resources into multiple client hash tables.
2011-08-27 12:06:11 -04:00
Kristian Høgsberg
e908893080 Bind globals to client provided object IDs 2011-08-27 12:06:11 -04:00
Kristian Høgsberg
0af17ed98c Use a callback object instead of ad-hoc lists for sync and frame events
So obvious in retrospect.  The object system can do all the work for us
and keep track of pending calls as regular objects and we don't need to
abuse the resource system to get them cleaned up on client exit.  We
don't need the custom key management or (broken) lookup, we just sue
object IDs.  And last but not least, anybody can receive the callback,
not just display listeners.
2011-08-27 12:06:10 -04:00
Tiago Vignatti
7a291117e7 protocol: Delete screenshooter.xml
The protocol interface is on compositor's side now.

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2011-07-26 08:21:49 -07:00
Kristian Høgsberg
986703ac73 scanner: Take copyright notice from xml file 2011-07-25 18:14:20 -07:00
Tiago Vignatti
068ba750ca protocol: fix key event and related comments 2011-07-15 15:04:50 -04:00
Kristian Høgsberg
98da0a7b98 protocol: Fix type of visual arg in token_visual event 2011-07-15 15:04:50 -04:00
Kristian Høgsberg
671a62cb96 protocol: Make id arg of display.global event be just a uint
Global names are different from object IDs.
2011-07-11 11:15:00 -04:00
Laszlo Agocs
aa7bbb210b Add touch events to protocol. 2011-06-29 12:51:39 -04:00
Kristian Høgsberg
7dc36984af Merge remote-tracking branch 'bnf/buffer.release' 2011-06-21 12:15:31 -04:00
Benjamin Franzke
2fcebfed95 Add buffer.release event 2011-06-21 17:42:55 +02:00
Kristian Høgsberg
bfea3d6bef Add more protocol for communicating screen geometry 2011-06-21 11:24:27 -04:00
Laszlo Agocs
aae9f214e5 Add wl_display_remove_global.
Change 4453ba084a disallows using
post_global with objects not on the global list. Therefore selection
and drag offers have to be added to the global list from now on.
However these may often get replaced by a newer object and thus need a
way to remove a global from the global list.
2011-06-20 11:56:22 -04:00
Kristian Høgsberg
a2db57517b Move map functionality into shell
Initial surface.attach makes the surface visible and clients
can set the surface type using shell.set_transient etc or
other interfaces prior to that.
2011-06-18 08:17:40 -04:00
Kristian Høgsberg
4bde293ff8 Add event to associate visuals with a pixel format token 2011-05-12 21:29:22 -04:00
Kristian Høgsberg
8834a0f22f Define shm specific errors
We stop abusing the wl_display error codes for shm purposes.
2011-05-11 13:06:51 -04:00
Kristian Høgsberg
1db0525572 Unify error events
Consolidate the different error events into one.  This event will also be
usable for other interaces.
2011-05-11 11:02:34 -04:00
Benjamin Franzke
0bf5285b44 Add buffer.damage request to the protocol
Thus remove the server-side used vfunc buffer::damage.
2011-04-22 10:11:12 -04:00
Kristian Høgsberg
c5ec478d46 scanner: Don't hardcode the wl_ prefix in the code generator 2011-04-20 17:19:52 -04:00
Kristian Høgsberg
320a5634cf Introduce display.bind to request events from a global 2011-04-18 10:24:45 -04:00
Benjamin Franzke
94fcdde0e2 Extent frame event to be surface dependent 2011-03-16 23:01:39 +01:00
Benjamin Franzke
b038d93abf protocol/wayland: Drop drm interface (move into mesa) 2011-02-28 11:20:56 +01:00
Kristian Høgsberg
0ce245761c Add initial basic support for fullscreen surfaces 2011-01-28 15:18:33 -05:00
Kristian Høgsberg
027931bd33 Define the shell resize enumeration in the xml spec 2011-01-21 21:57:55 -05:00
Kristian Høgsberg
8dc378ff76 Add new surface.map_transient() request to map a surface relative to another 2011-01-21 18:02:24 -05:00
Kristian Høgsberg
ae6c8a6d73 First attempt at selection support 2011-01-19 14:25:12 -05:00
Kristian Høgsberg
82da52b15b Update surface.attach and change surface.map to surface.map_toplevel
The new map_toplevel() request no longer specifies a position and takes
the size from the attached buffer.  The attach request now takes a
position relative to the top-left corner of the old buffer to let
clients specify the relative position of the new buffer.
2010-12-17 09:53:12 -05:00
Kristian Høgsberg
67f367f329 Document the shell.configure event a bit 2010-12-09 11:06:46 -05:00
Kristian Høgsberg
f8fc08f771 Add origin information to output.geometry event 2010-12-01 20:10:10 -05:00
Kristian Høgsberg
d44bc8b8ee Add reject round trip to dnd protocol
This lets a drag target reject a drop.
2010-11-30 15:10:26 -05:00
Kristian Høgsberg
c1ad1f9c9b Consolidate 'sync' and 'frame' events into just one 'key' event 2010-11-29 17:04:21 -05:00