Kristian Høgsberg [Wed, 16 Nov 2011 03:20:28 +0000 (22:20 -0500)]
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.
Kristian Høgsberg [Tue, 15 Nov 2011 18:48:41 +0000 (13:48 -0500)]
util: Add wl_list_insert_list()
Andrea Canciani [Mon, 14 Nov 2011 09:24:47 +0000 (10:24 +0100)]
hash: Improve double hashing
Instead of artificially introducing collisions in the step value by
replacing 0 with 1 (which causes the value 1 to have twice the
frequency of any other value), the step value can simply be computed
as an uniformly distributed value in the range [1, rehash], extremes
included.
This is safe because any step value smaller than the hash modulus is
co-prime with it, hence induces an orbit which includes every integer
in [0, size - 1].
Kristian Høgsberg [Mon, 31 Oct 2011 15:21:38 +0000 (11:21 -0400)]
scanner: Check name == NULL for enum entries
From a clang static analysis warning.
Benjamin Franzke [Mon, 31 Oct 2011 10:06:35 +0000 (11:06 +0100)]
connection: Check object types in message parameters
Kristian Høgsberg [Sat, 29 Oct 2011 18:27:33 +0000 (14:27 -0400)]
event-loop: Fix idle handler dispatch corner case
When the last idle handler queues another idle handler, we fail to
dispatch that last handler. The wl_list_for_each_safe loop looks up
the next pointer before running the handler, and at that point it points
to the head of the list and the loop terminates.
Instead, just loop until the list is empty.
Kristian Høgsberg [Mon, 24 Oct 2011 21:05:39 +0000 (17:05 -0400)]
scanner: Fix typo in error message
Kristian Høgsberg [Mon, 24 Oct 2011 20:05:04 +0000 (16:05 -0400)]
protocol: Change global_remove arg to be 'name' insteadl of 'id'
Consistent with global args.
Kristian Høgsberg [Mon, 24 Oct 2011 20:04:09 +0000 (16:04 -0400)]
scanner: Catch more invalid attribute combinations for arg
Spotted by Jakob Bornecrantz.
Kristian Høgsberg [Thu, 20 Oct 2011 19:05:11 +0000 (15:05 -0400)]
debug: Print debug message when client wakes up
This helps spot and remove extraneous round trips and context switches.
Kristian Høgsberg [Wed, 12 Oct 2011 20:30:08 +0000 (16:30 -0400)]
Silence a valgrind warning
Kristian Høgsberg [Wed, 12 Oct 2011 02:19:34 +0000 (22:19 -0400)]
wayland-server: Track input_device resource for focused surface
We no long track the focused surface, but expect the compositor to set
focus when the focus changes. We do track the resource for the input
device that corresponds to the current surface, in case that goes away.
Kristian Høgsberg [Tue, 11 Oct 2011 18:36:49 +0000 (14:36 -0400)]
wayland-server: Always use the display_resource for posting wl_display errors
Mathias Fiedler [Tue, 11 Oct 2011 18:23:45 +0000 (14:23 -0400)]
wayland-server: fix resource destroy
Object ID was read from freed memory.
Mathias Fiedler [Tue, 11 Oct 2011 17:58:18 +0000 (13:58 -0400)]
wayland-server: fix crash on invalid resource
Using display_resource to post error about invalid resource.
Reviewed-by: Tiago Vignatti <tiago.vignatti@intel.com>
Benjamin Franzke [Tue, 9 Aug 2011 12:31:36 +0000 (14:31 +0200)]
scanner: Fix indent for *_add_listener
Kristian Høgsberg [Tue, 6 Sep 2011 22:12:43 +0000 (18:12 -0400)]
Rename motion_grab to implicit_grab
Let's just use the same terms as X.
Kristian Høgsberg [Sun, 4 Sep 2011 13:51:24 +0000 (09:51 -0400)]
Add back get/set user data wrappers for wl_display
Kristian Høgsberg [Thu, 1 Sep 2011 13:53:33 +0000 (09:53 -0400)]
server: Make error posting functions take a resource instead of a client
Kristian Høgsberg [Wed, 31 Aug 2011 01:26:19 +0000 (21:26 -0400)]
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.
Kristian Høgsberg [Mon, 29 Aug 2011 20:50:02 +0000 (16:50 -0400)]
Update TODO
Kristian Høgsberg [Mon, 29 Aug 2011 19:01:41 +0000 (15:01 -0400)]
server: Disconnect client on error
Kristian Høgsberg [Mon, 29 Aug 2011 19:01:26 +0000 (15:01 -0400)]
shm: Compare resource interface when validating visual
Kristian Høgsberg [Sat, 27 Aug 2011 16:05:09 +0000 (12:05 -0400)]
server: Pass struct wl_resource for object references
Kristian Høgsberg [Sat, 27 Aug 2011 01:39:33 +0000 (21:39 -0400)]
Don't special case object ID 1 lookup
Kristian Høgsberg [Sat, 20 Aug 2011 19:48:11 +0000 (15:48 -0400)]
server: wl_display and wl_input_device are no longer resources
Kristian Høgsberg [Sat, 20 Aug 2011 02:52:49 +0000 (22:52 -0400)]
Update TODO
Kristian Høgsberg [Sat, 20 Aug 2011 02:50:53 +0000 (22:50 -0400)]
Store objects in wl_map data structure
The wl_map data structure is just an array with a free-list that lets the
client recycle unused client IDs and keep range of client IDs under control.
Kristian Høgsberg [Fri, 19 Aug 2011 21:26:57 +0000 (17:26 -0400)]
Remove range protocol
Kristian Høgsberg [Fri, 19 Aug 2011 21:07:14 +0000 (17:07 -0400)]
Destroy client resource by walking client hash table
All resources are now in the client hash table and we can clean up
just by walking the hash.
Kristian Høgsberg [Fri, 19 Aug 2011 20:57:48 +0000 (16:57 -0400)]
Always allocate a new wl_resource when binding an object
Previously we would bind some resources into multiple client hash tables.
Kristian Høgsberg [Fri, 19 Aug 2011 18:48:16 +0000 (14:48 -0400)]
Add wl_hash_table_for_each()
Kristian Høgsberg [Fri, 19 Aug 2011 17:44:01 +0000 (13:44 -0400)]
Bind globals to client provided object IDs
Kristian Høgsberg [Fri, 19 Aug 2011 17:40:28 +0000 (13:40 -0400)]
server: Hand code all wl_display client stubs
Kristian Høgsberg [Fri, 19 Aug 2011 15:08:09 +0000 (11:08 -0400)]
server: Assign global id as part of wl_display_add_global()
Kristian Høgsberg [Fri, 19 Aug 2011 15:06:37 +0000 (11:06 -0400)]
server: Make object hash table per-client
Kristian Høgsberg [Fri, 19 Aug 2011 15:05:01 +0000 (11:05 -0400)]
Rename global 'func' to 'bind'
Kristian Høgsberg [Thu, 18 Aug 2011 21:53:50 +0000 (17:53 -0400)]
server: Make everything in the object hash a wl_resource
Kristian Høgsberg [Sat, 30 Jul 2011 02:51:22 +0000 (19:51 -0700)]
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.
Paulo Zanoni [Fri, 26 Aug 2011 22:41:05 +0000 (19:41 -0300)]
connection: fix libffi usage, our functions return void
All clients were segfaulting on my machine.
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Kristian Høgsberg [Fri, 12 Aug 2011 20:32:13 +0000 (16:32 -0400)]
connection: Object ID 0 is not a valid new object ID
Kristian Høgsberg [Fri, 12 Aug 2011 20:23:07 +0000 (16:23 -0400)]
event-loop: Quiet a few warnings
There's no good error recovery possible in these cases though.
Jørgen Lind [Thu, 4 Aug 2011 05:56:04 +0000 (07:56 +0200)]
Make expat a dependency to the scanner
Kristian Høgsberg [Fri, 12 Aug 2011 19:09:00 +0000 (15:09 -0400)]
Rename source subdir from wayland to src
Kristian Høgsberg [Thu, 11 Aug 2011 18:51:31 +0000 (14:51 -0400)]
Change scanner.c license to MIT
Kristian Høgsberg [Wed, 27 Jul 2011 19:05:34 +0000 (12:05 -0700)]
scanner: Silence warning
Kristian Høgsberg [Wed, 27 Jul 2011 12:50:41 +0000 (05:50 -0700)]
scanner: Initialize protocol.copyright to NULL
Tiago Vignatti [Tue, 26 Jul 2011 08:43:19 +0000 (11:43 +0300)]
protocol: Delete screenshooter.xml
The protocol interface is on compositor's side now.
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
Kristian Høgsberg [Tue, 26 Jul 2011 01:14:20 +0000 (18:14 -0700)]
scanner: Take copyright notice from xml file
Kristian Høgsberg [Tue, 19 Jul 2011 17:01:46 +0000 (10:01 -0700)]
connection: Use static strings instead of sprintf and buffer overflow
Spotted by Samuel Rødal <samuel.rodal@nokia.com>
Kristian Høgsberg [Mon, 18 Jul 2011 17:35:18 +0000 (13:35 -0400)]
Link to -lrt for clock_gettime()
Casey Dahlin [Mon, 18 Jul 2011 06:00:25 +0000 (02:00 -0400)]
Pass object ID not pointer when sending a global announce event
When the type for the first argument of the global event changed from new_id to
uint, wl_connection_vmarshal started expecting an integer argument rather than
an object argument. As a result we were sending the client a chunk of pointer
rather than a useful global identifier.
Kristian Høgsberg [Mon, 18 Jul 2011 17:10:49 +0000 (13:10 -0400)]
conection: Handle demarshal errors a little less dramatically
Casey Dahlin [Mon, 18 Jul 2011 06:00:24 +0000 (02:00 -0400)]
Fix segfault in client when demarshalling fails
Tiago Vignatti [Thu, 14 Jul 2011 15:56:51 +0000 (18:56 +0300)]
protocol: fix key event and related comments
Tiago Vignatti [Thu, 14 Jul 2011 15:56:40 +0000 (18:56 +0300)]
debug: add timestamps when logging
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
Kristian Høgsberg [Tue, 12 Jul 2011 17:22:59 +0000 (13:22 -0400)]
protocol: Fix type of visual arg in token_visual event
Kristian Høgsberg [Tue, 12 Jul 2011 17:22:25 +0000 (13:22 -0400)]
scanner: Output type info for new_id arguments
Kristian Høgsberg [Mon, 11 Jul 2011 15:15:00 +0000 (11:15 -0400)]
protocol: Make id arg of display.global event be just a uint
Global names are different from object IDs.
Kristian Høgsberg [Thu, 7 Jul 2011 17:39:08 +0000 (13:39 -0400)]
scanner: map 'int' to int32_t.
Laszlo Agocs [Wed, 29 Jun 2011 14:54:11 +0000 (17:54 +0300)]
Add touch events to protocol.
Kristian Høgsberg [Wed, 29 Jun 2011 15:43:11 +0000 (11:43 -0400)]
server: Add wl_client_flush()
Flush output queue up for the specified client.
Kristian Høgsberg [Thu, 23 Jun 2011 10:43:47 +0000 (06:43 -0400)]
event-loop: Make idle handlers work again
Kristian Høgsberg [Tue, 21 Jun 2011 20:25:28 +0000 (16:25 -0400)]
Update TODO
Kristian Høgsberg [Tue, 21 Jun 2011 16:15:31 +0000 (12:15 -0400)]
Merge remote-tracking branch 'bnf/buffer.release'
Benjamin Franzke [Tue, 21 Jun 2011 15:37:18 +0000 (17:37 +0200)]
Drop wl_compoositor parameter in wl_buffer
Benjamin Franzke [Tue, 10 May 2011 10:01:00 +0000 (12:01 +0200)]
Add busy_count and client parameter to wl_buffer
Can be used to implement release event.
Benjamin Franzke [Mon, 9 May 2011 15:35:58 +0000 (17:35 +0200)]
Add buffer.release event
Kristian Høgsberg [Tue, 21 Jun 2011 00:34:55 +0000 (20:34 -0400)]
Add more protocol for communicating screen geometry
Laszlo Agocs [Tue, 14 Jun 2011 08:35:46 +0000 (10:35 +0200)]
Add wl_display_remove_global.
Change
4453ba084aae5a00318b9dfdeda95e8eaa17494c 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.
Laszlo Agocs [Tue, 14 Jun 2011 09:41:54 +0000 (11:41 +0200)]
Do not leak globals and listeners.
From
3fa2ad7dec42f85795449f33b2a4c9461aa4924d Mon Sep 17 00:00:00 2001
From: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Date: Tue, 14 Jun 2011 11:35:28 +0200
Subject: [PATCH] Do not leak globals and listeners.
Kristian Høgsberg [Sat, 18 Jun 2011 12:17:40 +0000 (08:17 -0400)]
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.
Corentin Chary [Fri, 10 Jun 2011 08:27:16 +0000 (10:27 +0200)]
Call a new global listener for each existing global
Signed-off-by: Corentin Chary <corentin.chary@gmail.com>
Corentin Chary [Fri, 10 Jun 2011 08:24:23 +0000 (10:24 +0200)]
Flush the protocol output buffer when it fills up
Original patch from bnf.
Signed-off-by: Corentin Chary <corentin.chary@gmail.com>
Kristian Høgsberg [Tue, 7 Jun 2011 17:19:28 +0000 (13:19 -0400)]
Remove left-over visual prototypes
Kristian Høgsberg [Tue, 7 Jun 2011 14:53:27 +0000 (10:53 -0400)]
connection: Fix pointer arithmetic error
Pointed out by Nicolas Pouillon in irc.
Samuel Rødal [Mon, 30 May 2011 15:23:40 +0000 (17:23 +0200)]
Fall back to accept() on systems where accept4() is not implemented.
Benjamin Franzke [Tue, 31 May 2011 09:18:06 +0000 (11:18 +0200)]
wayland-shm: Check visual for being NULL
Kristian Høgsberg [Thu, 19 May 2011 15:53:39 +0000 (11:53 -0400)]
TODO: Update
Kristian Høgsberg [Fri, 13 May 2011 01:29:22 +0000 (21:29 -0400)]
Add event to associate visuals with a pixel format token
Kristian Høgsberg [Fri, 13 May 2011 01:27:57 +0000 (21:27 -0400)]
server: Send error if client tries to bind to non-existant object
Kristian Høgsberg [Wed, 11 May 2011 15:00:40 +0000 (11:00 -0400)]
Define shm specific errors
We stop abusing the wl_display error codes for shm purposes.
Kristian Høgsberg [Wed, 11 May 2011 14:57:06 +0000 (10:57 -0400)]
Unify error events
Consolidate the different error events into one. This event will also be
usable for other interaces.
Kristian Høgsberg [Wed, 11 May 2011 02:56:01 +0000 (22:56 -0400)]
TODO: Consolidate and update
Kristian Høgsberg [Wed, 11 May 2011 01:49:22 +0000 (21:49 -0400)]
connection.c: Use sizeof int for allocating fd extra storage
Robert Bragg [Tue, 10 May 2011 16:51:52 +0000 (17:51 +0100)]
display: Adds wl_display_flush to send buffered commands
Previously for wayland clients to flush buffered connection data to the
compositor they needed to first register an event-mask-update-callback
via wl_display_get_fd() to determine if there is anything writeable
pending. (NB: It's considered an error to iterate connection data with
an invalid mask)
Since it's only possible to register a single update callback currently
it's a bit awkward if you want to allow multiple orthogonal components
to flush the connection data, such as Cogl and Clutter which both want
to interact with wayland and may want to flush commands at different
times.
This adds a mechanism, wl_display_flush(), which makes it possible to
flush writeable connection data without first checking the event mask.
Benjamin Franzke [Tue, 10 May 2011 10:56:22 +0000 (12:56 +0200)]
wayland-util: Drop unused struct wl_argument
jani.uusi-rantala@nokia.com [Fri, 6 May 2011 06:13:36 +0000 (06:13 +0000)]
Add configure option to disable scanner compilation
When cross-compiling Wayland, wayland-scanner should be picked up from
the host system instead of compiling and trying to run e.g. ARM
wayland-scanner on X86.
This patch adds --disable-scanner option for disabling the scanner
from the build and using existing wayland-scanner instead (from PATH)
which should help in most cross-compilation systems.
By default everything works as before.
Signed-off-by: Jani Uusi-Rantala <jani.uusi-rantala@nokia.com>
Benjamin Franzke [Fri, 6 May 2011 15:09:51 +0000 (17:09 +0200)]
Add a destroy_listener to wl_resource
Drop the one in wl_surface.
Benjamin Franzke [Wed, 4 May 2011 19:21:52 +0000 (21:21 +0200)]
connection: Define _GNU_SOURCE for F_DUPFD_CLOEXEC
Kristian Høgsberg [Wed, 4 May 2011 19:51:47 +0000 (15:51 -0400)]
scanner: Fail if there's a 'destroy' request not marked as a destructor
Kristian Høgsberg [Wed, 4 May 2011 19:29:55 +0000 (15:29 -0400)]
scanner: Initialize wl_message structs completely
Kristian Høgsberg [Wed, 4 May 2011 16:35:16 +0000 (12:35 -0400)]
connection: Handle fd passing in an CLOEXEC safe way
Kristian Høgsberg [Mon, 2 May 2011 18:48:48 +0000 (14:48 -0400)]
mmap shm buffers read/write
Casey Dahlin [Fri, 29 Apr 2011 06:37:47 +0000 (02:37 -0400)]
Add some things related to wayland-scanner to .gitignore
Kristian Høgsberg [Fri, 29 Apr 2011 13:20:29 +0000 (09:20 -0400)]
event-loop: Drop unused idle_list
Idle sources are now just a special case of a checked source.
Kristian Høgsberg [Fri, 22 Apr 2011 21:54:18 +0000 (17:54 -0400)]
Don't define wl_shell in wayland-server.h
Kristian Høgsberg [Fri, 22 Apr 2011 16:15:21 +0000 (12:15 -0400)]
event-loop: Idle callback are a special case of a checked source
Kristian Høgsberg [Fri, 22 Apr 2011 16:06:34 +0000 (12:06 -0400)]
event-loop: Dont use a check callback just dispatch again
We pass the poll mask so the dispatch callback can know if there is
data on the fd or not. The dispatch function must return true if
it dispatched something, in which case we need to do another round of
post-dispatch callbacks."
Benjamin Franzke [Tue, 8 Mar 2011 10:32:24 +0000 (11:32 +0100)]
Add common shm-server code