profile/ivi/wayland.git
11 years agodocs: Improve wl_shell/wl_shell_surface docs
Matthias Clasen [Sat, 30 Mar 2013 05:11:38 +0000 (01:11 -0400)]
docs: Improve wl_shell/wl_shell_surface docs

Add missing summaries, expand descriptions.

11 years agodocs: Improve the wl_data_* procol docs
Matthias Clasen [Sat, 30 Mar 2013 05:11:37 +0000 (01:11 -0400)]
docs: Improve the wl_data_* procol docs

Add a few missing summaries and descriptions, spell out file
descriptor, use hyphens in drag-and-drop, don't use hyphens in
'mime type', and reword a few things.

11 years agodocs: Improve wl_shm and wl_shm_pool protocol docs
Matthias Clasen [Sat, 30 Mar 2013 05:11:36 +0000 (01:11 -0400)]
docs: Improve wl_shm and wl_shm_pool protocol docs

Reword some paragraphs, and spell out 'file descriptor'.

11 years agodocs: Improve wl_callback protocol docs
Matthias Clasen [Sat, 30 Mar 2013 05:11:35 +0000 (01:11 -0400)]
docs: Improve wl_callback protocol docs

Add some information about wl_callback and its done event.

11 years agodocs: Improve the wl_registry protocol docs
Matthias Clasen [Sat, 30 Mar 2013 05:11:34 +0000 (01:11 -0400)]
docs: Improve the wl_registry protocol docs

Reword a few things, and add some details.

11 years agodocs: Improve wl_display protocol docs
Matthias Clasen [Sat, 30 Mar 2013 05:11:33 +0000 (01:11 -0400)]
docs: Improve wl_display protocol docs

This adds a bit of information about in-order event delivery,
removes extraneous formatting, and adds a missing period.

11 years agodocs: Consistency fixes
Matthias Clasen [Sat, 30 Mar 2013 05:11:32 +0000 (01:11 -0400)]
docs: Consistency fixes

Say 'object ID' throughout.

11 years agodoc: Improve various sections of the documentation
Matthias Clasen [Sat, 30 Mar 2013 05:11:31 +0000 (01:11 -0400)]
doc: Improve various sections of the documentation

11 years agodocs: Improve the 'Connect time' section
Matthias Clasen [Sat, 30 Mar 2013 05:11:30 +0000 (01:11 -0400)]
docs: Improve the 'Connect time' section

Turn the bullet-point list into complete sentences.

11 years agodocs: Improve the 'Types of Compositors' section
Matthias Clasen [Sat, 30 Mar 2013 05:11:29 +0000 (01:11 -0400)]
docs: Improve the 'Types of Compositors' section

Turn the bullet-point lists into full paragraphs.

11 years agodocs: Slight rewording
Matthias Clasen [Sat, 30 Mar 2013 05:11:28 +0000 (01:11 -0400)]
docs: Slight rewording

The Wayland Protocol -> Wayland Protocol Overview, to align
better with the subsequent Wayland Protocol Specification.

11 years agodocs: Reorder some sections
Matthias Clasen [Sat, 30 Mar 2013 05:11:27 +0000 (01:11 -0400)]
docs: Reorder some sections

Move the 'Types of Compositors' section right after the Overview,
and move the 'Client API' part after the protocol spec.

11 years agowayland-server: Avoid deferencing a NULL pointer in error case
Rob Bradford [Thu, 28 Mar 2013 18:48:09 +0000 (18:48 +0000)]
wayland-server: Avoid deferencing a NULL pointer in error case

Reorder the error handling in the case that closure is NULL due to ENOMEM to
ensure that we can safely call wl_closure_lookup_objects on the second test.
Prior to this reordering the closure would be deferenced in the ENOMEM case
due to the invocation of the second half of the logical OR check.

11 years agodocs: Fix the documentation build
Matthias Clasen [Thu, 28 Mar 2013 13:10:32 +0000 (09:10 -0400)]
docs: Fix the documentation build

The publican man page says that the options are actually called
--formats and --langs, and with this, the doc build succeeds.

11 years agodocs: Add a revision history
Matthias Clasen [Thu, 28 Mar 2013 13:10:31 +0000 (09:10 -0400)]
docs: Add a revision history

Publican complains if it can't find this file.

11 years agoprotocol: remove implicit attach semantics
Pekka Paalanen [Thu, 7 Mar 2013 11:10:01 +0000 (13:10 +0200)]
protocol: remove implicit attach semantics

To match the Weston commit e7144fd175d1d68b91aa0cec7ab63381b79385a9:
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Mon Mar 4 12:11:41 2013 -0500

    compositor: Only send release event in response to wl_surface.attach

Remove the implicit attach semantics from wl_surface.commit and .attach.

Before, if you did this on a wl_surface: attach, commit, commit, you
would receive wl_buffer.release for both commits. After this change, you
will only receive wl_buffer.release for the first commit. To get a
second release, the same buffer must be attached again.

There is no need for the implicit attach on the second commit. If the
compositor needs the wl_buffer for repainting, it will not release it to
begin with. If the compositor does not need to keep the wl_buffer around
for repainting, it will not need it for a new commit either.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
11 years agoAdd wl_resource_init and use it in libwayland implementations of data sharing and SHM
Jason Ekstrand [Sat, 9 Mar 2013 04:26:13 +0000 (22:26 -0600)]
Add wl_resource_init and use it in libwayland implementations of data sharing and SHM

This commit adds a wl_resource_init function for initializing wl_resource
structures similar to wl_client_add_object.

From this commit forward, wl_resource structures should not be initialized
manually, but should use wl_resource_init.  In the event of a change to the
wl_resource structure, this allows us to protect against regressions by filling
in added fields with reasonable defaults.  In this way, while changing
wl_object or wl_resource still constitutes an ABI break, compositors following
this rule will only need to be recompiled in order to properly link against the
new version.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
11 years agoChange wl_closure_invoke to take an opcode instead of an actual function pointer
Jason Ekstrand [Sat, 9 Mar 2013 04:26:12 +0000 (22:26 -0600)]
Change wl_closure_invoke to take an opcode instead of an actual function pointer

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
11 years agoclient: Invoke new_id closure arguments as pointers instead of integers
Jonas Ådahl [Fri, 8 Mar 2013 17:44:16 +0000 (18:44 +0100)]
client: Invoke new_id closure arguments as pointers instead of integers

This commit adds a flags parameter to wl_closure_invoke(). The so far
added flags are ment to specify if the invokation is client side or
server side. When on the server side, closure arguments of type 'new_id'
should be invoked as a integer id while on the client side they should
be invoked as a pointer to a proxy object.

This fixes a bug happening when the address of a client side 'new_id'
proxy object did not fit in a 32 bit integer.

krh: Squashed test suite compile fix from Jason Ekstrand.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
11 years agoclient: Check reference count only for destroyed proxies
Jonas Ådahl [Thu, 7 Mar 2013 22:32:39 +0000 (23:32 +0100)]
client: Check reference count only for destroyed proxies

The llvm static analyzer tool reported "Use of memory after it is freed"
in dispatch_event() because the proxy is used after being freed if the
reference count reaches zero without the destroyed flag being set. This
would never happen in practice because the owner of the proxy object
always holds a reference until calling wl_proxy_destroy() which would
also set the destroyed flag.

Since this is the case, it is safe to do the reference count check only
if the destroyed flag is set, as it can never reach zero if not.

This commit doesn't change the behavior of the function, but makes the
static analyzer more happy.

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=61385

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
11 years agoconfigure.ac: Use wayland_version macro in bug url
Kristian Høgsberg [Sun, 17 Mar 2013 17:53:29 +0000 (13:53 -0400)]
configure.ac: Use wayland_version macro in bug url

11 years agoStylistic nitpicking
Kristian Høgsberg [Tue, 26 Feb 2013 18:40:34 +0000 (13:40 -0500)]
Stylistic nitpicking

No space between '!' and its argument,  prefer i++ over ++i.

11 years agoClean up and refactor wl_closure and associated functions
Jason Ekstrand [Tue, 26 Feb 2013 16:30:51 +0000 (11:30 -0500)]
Clean up and refactor wl_closure and associated functions

The primary purpose of this patch is to clean up wl_closure and separate
closure storage, libffi, and the wire format.  To that end, a number of changes
have been made:

 - The maximum number of closure arguments has been changed from a magic number
   to a #define WL_CLOSURE_MAX_ARGS

 - A wl_argument union has been added for storing a generalized closure
   argument and wl_closure has been converted to use wl_argument instead of the
   combination of libffi, the wire format, and a dummy extra buffer.  As of
   now, the "extra" field in wl_closure should be treated as bulk storage and
   never direclty referenced outside of wl_connection_demarshal.

 - Everything having to do with libffi has been moved into wl_closure_invoke
   and the convert_arguments_to_ffi helper function.

 - Everything having to do with the wire format has been restricted to
   wl_connection_demarshal and the new static serialize_closure function.  The
   wl_closure_send and wl_closure_queue functions are now light wrappers around
   serialize_closure.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
11 years agoclient: add wl_proxy_get_class()
Pekka Paalanen [Tue, 26 Feb 2013 13:19:44 +0000 (15:19 +0200)]
client: add wl_proxy_get_class()

This is a useful shorthand for client application debugging macros,
since you can ask the object class from the object itself.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
11 years agoscanner: Fix 'destroy)' typo in check for destroy request presence
Kristian Høgsberg [Mon, 25 Feb 2013 21:01:38 +0000 (16:01 -0500)]
scanner: Fix 'destroy)' typo in check for destroy request presence

This is there to enforce that we don't have interfaces with a destroy
request that isn't a destructor.  The check never worked because of the
typo, but we also don't have any interfaces like that.

11 years agoscanner: remove list_length in favor of wl_list_length
Ran Benita [Mon, 25 Feb 2013 15:12:51 +0000 (17:12 +0200)]
scanner: remove list_length in favor of wl_list_length

11 years agoconfigure.ac: Update bug URL
Kristian Høgsberg [Thu, 14 Feb 2013 22:00:46 +0000 (17:00 -0500)]
configure.ac: Update bug URL

11 years agoMake sure that man page xml files are always disted
Armin K [Thu, 14 Feb 2013 19:44:08 +0000 (14:44 -0500)]
Make sure that man page xml files are always disted

11 years agoREADME: Fix typos
Siddharth Heroor [Thu, 14 Feb 2013 05:29:15 +0000 (10:59 +0530)]
README: Fix typos

Signed-off-by: Siddharth Heroor <heroor@gmail.com>
11 years agotests: Add a help message for the test runner
Kristian Høgsberg [Mon, 11 Feb 2013 18:58:39 +0000 (13:58 -0500)]
tests: Add a help message for the test runner

In case we forget the name of the test case or typo it, the test runner
will now list the test cases in the test binary.

11 years agoqueue-test: WEXITSTATUS() is undefined if WIFEXITED() is false
Kristian Høgsberg [Fri, 8 Feb 2013 16:38:59 +0000 (11:38 -0500)]
queue-test: WEXITSTATUS() is undefined if WIFEXITED() is false

If a child process dies from a signal, WIFEXITED() returns false and
WEXITSTATUS() isn't well-defined.  In this case, if the client segfaults,
the status is 134 and WEXITSTATUS(134) is EXIT_SUCCESS, so we mask the error.

11 years agoconnection.c: Align pointer extra storage correctly
Kristian Høgsberg [Mon, 4 Feb 2013 12:07:17 +0000 (07:07 -0500)]
connection.c: Align pointer extra storage correctly

Most extra data are just pointers, but in case of fds we store an int in
the extra space.  That can cause un-aligned access to pointers on 64 bit
architectures.  Make sure we always align pointer storage correctly.

11 years agoconfigure.ac: Lower git master version to 1.0.90
Kristian Høgsberg [Sat, 2 Feb 2013 15:44:32 +0000 (10:44 -0500)]
configure.ac: Lower git master version to 1.0.90

The idea was to use 1.1.0 for the git master version, so that git master
would always be newer than any release or 1.1.x version.  This means
we have to skip 1.1 as a release, which turns out to be confusing.

We can just use version 1.0.90 instead, which lets us call the next
release 1.1.0.

11 years agoMatch libtool version info in 1.0 branch
Kristian Høgsberg [Mon, 28 Jan 2013 20:27:27 +0000 (15:27 -0500)]
Match libtool version info in 1.0 branch

Master should always as old or older than the stable branch.  I didn't
copy over the libtool version bump when we bumped it in the 1.0 branch.

11 years agogitignore: add test-suite files
David Herrmann [Wed, 23 Jan 2013 13:20:41 +0000 (14:20 +0100)]
gitignore: add test-suite files

The *.log and *.trs files should be ignored by git as well as the GNU
autotools ./test-driver helper script.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
11 years agoevent-loop: fix returning the destroy-signal listener
David Herrmann [Wed, 23 Jan 2013 13:11:19 +0000 (14:11 +0100)]
event-loop: fix returning the destroy-signal listener

We need to actually return the destroy-listener, otherwise the return
value is undefined.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
11 years agoAdd a destroy signal to the wl_event_loop object
Jason Ekstrand [Sat, 12 Jan 2013 03:01:47 +0000 (21:01 -0600)]
Add a destroy signal to the wl_event_loop object

11 years agoAdded a destroy signal to the wl_display object.
Jason Ekstrand [Fri, 11 Jan 2013 20:29:32 +0000 (14:29 -0600)]
Added a destroy signal to the wl_display object.

Added a destroy signal to the wl_display object.

11 years agotest/event-loop: Check readable state on a pipe
Quentin Glidic [Sun, 6 Jan 2013 14:46:00 +0000 (15:46 +0100)]
test/event-loop: Check readable state on a pipe

When redirecting stdout to a non-readable file makes the test fail as a
false negative

11 years agoclient: remove two unused function pointer typedefs
Pekka Paalanen [Wed, 12 Dec 2012 12:19:23 +0000 (14:19 +0200)]
client: remove two unused function pointer typedefs

The need for wl_display_update_func_t was removed in

commit 53d24713a31d59d9534c1c1a84a7ad46f44ee95f
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Thu Oct 4 16:54:22 2012 -0400

    Change filedescriptor API to be thread safe

and wl_callback_func_t does not seem to have ever been used in the first place.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
11 years agotests: rename temporary files
Pekka Paalanen [Mon, 3 Dec 2012 14:58:25 +0000 (16:58 +0200)]
tests: rename temporary files

This is libwayland, not weston, so call the temporary files
wayland-tests-*, not weston-tests-*.

This is a candidate for the stable branch.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
11 years agotests: Don't leave temporary files behind
Sven Joachim [Sun, 2 Dec 2012 21:42:11 +0000 (22:42 +0100)]
tests: Don't leave temporary files behind

Signed-off-by: Sven Joachim <svenjoac@gmx.de>
11 years agoman, configure.ac: Only generate man pages if we can do it offline
Jonas Ådahl [Sat, 1 Dec 2012 16:33:23 +0000 (17:33 +0100)]
man, configure.ac: Only generate man pages if we can do it offline

Instead of relying on downloading the stylesheet from the Internet for
generating man pages, only generate them if the stylesheet is available
locally.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
11 years agodoc: Only generate Wayland documentation if xsltproc was found
Jonas Ådahl [Sat, 1 Dec 2012 16:33:22 +0000 (17:33 +0100)]
doc: Only generate Wayland documentation if xsltproc was found

Instead of failing to generate documentation because xsltproc doesn't
exist, don't try to generate at all.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
11 years agoconfigure.ac: Update version to 1.1.0 during development on git master
Kristian Høgsberg [Fri, 30 Nov 2012 22:19:43 +0000 (17:19 -0500)]
configure.ac: Update version to 1.1.0 during development on git master

This lets dependent components, such as mesa or toolkits use git master
instead of any 1.0.x release.

11 years agoclient: Add \since tag for wl_display_dispatch_queue_pending() documentation
Kristian Høgsberg [Fri, 30 Nov 2012 19:05:32 +0000 (14:05 -0500)]
client: Add \since tag for wl_display_dispatch_queue_pending() documentation

11 years agopkgconfig: Use configure provided directories
Quentin Glidic [Tue, 27 Nov 2012 21:35:18 +0000 (22:35 +0100)]
pkgconfig: Use configure provided directories

https://bugs.freedesktop.org/show_bug.cgi?id=57630

11 years agoprotocol: Add a wl_surface request for setting buffer transformation
Ander Conselvan de Oliveira [Tue, 27 Nov 2012 15:03:41 +0000 (17:03 +0200)]
protocol: Add a wl_surface request for setting buffer transformation

This request allows a client to render its contents according to the
output transform, enabling the compositor to use optimizations such as
overlays, hardware cursors, scan out of a client buffer for
fullscreen surface, etc, even if the output is rotated.

11 years agoscanner: Fix wrong restriction on since field
Ander Conselvan de Oliveira [Tue, 27 Nov 2012 15:03:40 +0000 (17:03 +0200)]
scanner: Fix wrong restriction on since field

The scanner would not allow two consecutive requests on an interface to
have the same since number, so if a new version of an interface added
two new request the version number would have to be increased by two.

11 years agoclient: Don't cancel a roundtrip when any event is received
Jonas Ådahl [Mon, 26 Nov 2012 22:25:53 +0000 (23:25 +0100)]
client: Don't cancel a roundtrip when any event is received

Since wl_display_dispatch() returns the number of processed events or -1
on error, only cancel the roundtrip if an -1 is returned.

This also fixes a potential memory corruption bug happening when
wl_display_roundtrip() does an early return and the callback later
writes to the then out of scope stack allocated `done' parameter.

Introduced by 33b7637b4500a682018b503837b8aca9afae36f2.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
11 years agodoc: Fix typos
Tiago Vignatti [Thu, 22 Nov 2012 20:09:32 +0000 (18:09 -0200)]
doc: Fix typos

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
11 years agoclient: Add an entry point for dispatching a queue without blocking
Ander Conselvan de Oliveira [Thu, 22 Nov 2012 13:34:48 +0000 (15:34 +0200)]
client: Add an entry point for dispatching a queue without blocking

On the client side EGL, all the wl_buffer.release events need to be
processed before buffer allocation, otherwise a third buffer might
be allocated unnecessarily. However, the buffer allocation should
not block in the case no event was received. In order to do that, a
non-blocking queue dispatch function is needed.

11 years agodebug: Allow WAYLAND_DEBUG=server/client for server/client side only debug
Kristian Høgsberg [Wed, 21 Nov 2012 22:14:55 +0000 (17:14 -0500)]
debug: Allow WAYLAND_DEBUG=server/client for server/client side only debug

By default the server will dump protocol for both the server and its
clients when run with WAYLAND_DEBUG=1.  That's still the case, but it now
also understands WAYLAND_DEBUG=client or WAYLAND_DEBUG=server, which
will only enable debug dumping on either client or server side.

11 years agoconfigure.ac: Bump version to 1.0.1
Kristian Høgsberg [Mon, 19 Nov 2012 22:27:04 +0000 (17:27 -0500)]
configure.ac: Bump version to 1.0.1

11 years agodoc: Fix out-of-source build so distcheck works again
Kristian Høgsberg [Mon, 19 Nov 2012 22:14:05 +0000 (17:14 -0500)]
doc: Fix out-of-source build so distcheck works again

The amount of generated files and hacks over hacks in the doc/ directory
is getting out of hand and we need a better solution.  For now, just get
distcheck back to working.

11 years agoFix distcheck by adding back protocol/Makefile.am
Kristian Høgsberg [Mon, 19 Nov 2012 22:11:58 +0000 (17:11 -0500)]
Fix distcheck by adding back protocol/Makefile.am

5909dddc78573774bd3a93c280831a7d18d82994 removed protocol/Makefile.am
which meant protocol/wayland.xml no longer got included in the tarball.
Add back protocol/Makefile.am and configure.ac bits and add protocol to
subdirs in Makefile.am to fix this.

11 years agoprotocol: Fix copy and paste summary
Kristian Høgsberg [Mon, 19 Nov 2012 20:44:14 +0000 (15:44 -0500)]
protocol: Fix copy and paste summary

11 years agoprotocol: Add summary description for wl_data_device_manager
Kristian Høgsberg [Mon, 19 Nov 2012 20:02:45 +0000 (15:02 -0500)]
protocol: Add summary description for wl_data_device_manager

11 years agoclient: Fix source comment typos
Martin Olsson [Wed, 14 Nov 2012 18:58:31 +0000 (13:58 -0500)]
client: Fix source comment typos

11 years agodoc: Fix incorrectly formatted section header
Tiago Vignatti [Tue, 6 Nov 2012 19:17:01 +0000 (17:17 -0200)]
doc: Fix incorrectly formatted section header

https://bugs.freedesktop.org/show_bug.cgi?id=56719

Reported-by: Petr Gladkikh <PetrGlad@gmail.com>
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
11 years agodoc: Update .gitignore
Tiago Vignatti [Fri, 9 Nov 2012 22:28:51 +0000 (20:28 -0200)]
doc: Update .gitignore

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
11 years agodoc: Set publican to quiet mode
Tiago Vignatti [Fri, 9 Nov 2012 22:48:22 +0000 (20:48 -0200)]
doc: Set publican to quiet mode

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
11 years agodoc: Remove unused css and xslt for the protocol
Tiago Vignatti [Fri, 9 Nov 2012 22:33:10 +0000 (20:33 -0200)]
doc: Remove unused css and xslt for the protocol

This was added previously (commit 015c42e1) when we didn't have docbook
formatted documentation. Now it became quite useless.

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
11 years agodoc: Auto-generate API methods and classes documentation
Tiago Vignatti [Fri, 9 Nov 2012 22:14:31 +0000 (20:14 -0200)]
doc: Auto-generate API methods and classes documentation

There's work to do still for giving a prettier style on the documentation, for
instance splitting paragraphs correctly and printing the detailed description
of the methods as well.

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
11 years agodoc: doxygen: Interpret the first line comment as the brief
Tiago Vignatti [Mon, 12 Nov 2012 18:07:16 +0000 (16:07 -0200)]
doc: doxygen: Interpret the first line comment as the brief

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
11 years agotests: Add out of order delete_id queue tests
Jonas Ådahl [Tue, 6 Nov 2012 07:15:04 +0000 (08:15 +0100)]
tests: Add out of order delete_id queue tests

Verify that when receiving the first of two synchronization callback
events, destroying the second one doesn't cause any errors even if the
delete_id event is handled out of order.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
11 years agotests: Use a pipe for synchronization to avoid potential deadlock
Jonas Ådahl [Tue, 6 Nov 2012 07:15:03 +0000 (08:15 +0100)]
tests: Use a pipe for synchronization to avoid potential deadlock

Using signals in the previous way could potentially lead to dead locks
if the SIGCONT was signalled before a listener was registered.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
12 years agotests: Add queue test case
Jonas Ådahl [Sat, 3 Nov 2012 21:26:11 +0000 (22:26 +0100)]
tests: Add queue test case

Check that after a callback removes a proxy that most likely will have
several events queued up with the same target proxy, no more callbacks
are invoked.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
12 years agoclient: Keep track of proxy validity and number of reference holders
Jonas Ådahl [Sat, 3 Nov 2012 21:26:10 +0000 (22:26 +0100)]
client: Keep track of proxy validity and number of reference holders

When events are queued, the associated proxy objects (target proxy and
potentially closure argument proxies) are verified being valid. However,
as any event may destroy some proxy object, validity needs to be
verified again before dispatching. Before this change this was done by
again looking up the object via the display object map, but that did not
work because a delete_id event could be dispatched out-of-order if it
was queued in another queue, causing the object map to either have a new
proxy object with the same id or none at all, had it been destroyed in
an earlier event in the queue.

Instead, make wl_proxy reference counted and increase the reference
counter of every object associated with an event when it is queued. In
wl_proxy_destroy() set a flag saying the proxy has been destroyed by the
application and only free the proxy if the reference counter reaches
zero after decreasing it.

Before dispatching, verify that a proxy object still is valid by
checking that the flag set in wl_proxy_destroy() has not been set. When
dequeuing the event, all associated proxy objects are dereferenced and
free:ed if the reference counter reaches zero. As proxy reference counter
is initiated to 1, when dispatching an event it can never reach zero
without having the destroyed flag set.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
12 years agodoc: Remove obsolete doxygen tags
Kristian Høgsberg [Mon, 29 Oct 2012 17:12:40 +0000 (13:12 -0400)]
doc: Remove obsolete doxygen tags

https://bugs.freedesktop.org/show_bug.cgi?id=56377

12 years agoconfigure.ac: Bump version to 1.0.0
Kristian Høgsberg [Mon, 22 Oct 2012 18:55:06 +0000 (14:55 -0400)]
configure.ac: Bump version to 1.0.0

12 years agoscanner: Preserve paragraph breaks in input XML
Kristian Høgsberg [Mon, 22 Oct 2012 02:24:33 +0000 (22:24 -0400)]
scanner: Preserve paragraph breaks in input XML

If we have a blank line in the incoming XML documentation, keep that in
the emitted doxygen comments.

12 years agodoc: Fix typo in generated section header
Kristian Høgsberg [Mon, 22 Oct 2012 02:10:56 +0000 (22:10 -0400)]
doc: Fix typo in generated section header

We were generating headers such as 'Events provided by wl_display events',
drop the last 'events'.

12 years agowayland: Add protocol documentation for various interfaces
Kristian Høgsberg [Mon, 22 Oct 2012 02:08:08 +0000 (22:08 -0400)]
wayland: Add protocol documentation for various interfaces

12 years agoUpdate TODO
Kristian Høgsberg [Mon, 22 Oct 2012 00:53:37 +0000 (20:53 -0400)]
Update TODO

We've knocked a few items of the list.

12 years agotests: Include wayland-private.h for container_of
Kristian Høgsberg [Sun, 21 Oct 2012 14:04:17 +0000 (10:04 -0400)]
tests: Include wayland-private.h for container_of

12 years agoscanner: Fix valgrind errors
Kristian Høgsberg [Sat, 20 Oct 2012 15:38:57 +0000 (11:38 -0400)]
scanner: Fix valgrind errors

12 years agoRename __wl_container_of macro to just wl_container_of
Kristian Høgsberg [Sat, 20 Oct 2012 03:26:38 +0000 (23:26 -0400)]
Rename __wl_container_of macro to just wl_container_of

The _* namespace and identifiers with double underscore are reserved
by the C standard.  That makes __wl_container_of is double plus bad,
so lets just call it wl_container_of.

12 years agoMove un-namespaced container_of into private header
Kristian Høgsberg [Sat, 20 Oct 2012 03:06:53 +0000 (23:06 -0400)]
Move un-namespaced container_of into private header

12 years agoMove ARRAY_LENGTH out of public headers
Kristian Høgsberg [Fri, 19 Oct 2012 21:08:38 +0000 (17:08 -0400)]
Move ARRAY_LENGTH out of public headers

Exporting unprefixed symbols is a pretty bad idea so don't do that.
Instea of redefining it WL_ARRAY_LENGTH, we just move the define to
our private header.  The scanner generates code that uses ARRAY_LENGTH,
but we can just make it count the number elements and emit an integer
constant instead.

12 years agoconfigure: Depend on a more strict version of publican
Tiago Vignatti [Fri, 19 Oct 2012 15:29:54 +0000 (18:29 +0300)]
configure: Depend on a more strict version of publican

Fix https://bugs.freedesktop.org/show_bug.cgi?id=56101

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
12 years agodoc: Update doxygen documentation when source files are changed
Ander Conselvan de Oliveira [Fri, 19 Oct 2012 12:30:26 +0000 (15:30 +0300)]
doc: Update doxygen documentation when source files are changed

12 years agodoc: Clarify documentation about dispatching event queues
Ander Conselvan de Oliveira [Fri, 19 Oct 2012 12:30:25 +0000 (15:30 +0300)]
doc: Clarify documentation about dispatching event queues

Clarify on what cases each of the dispatching functions may block, what
is the main thread and add some real world examples.

12 years agodoc: Update wl_display_get_error() documentation
Ander Conselvan de Oliveira [Wed, 17 Oct 2012 18:26:09 +0000 (21:26 +0300)]
doc: Update wl_display_get_error() documentation

12 years agowayland-server: Fix up error handling with client creation.
John Kåre Alsaker [Tue, 16 Oct 2012 18:32:19 +0000 (20:32 +0200)]
wayland-server: Fix up error handling with client creation.

12 years agowayland-egl: Drop ill-defined pixmap support
Kristian Høgsberg [Tue, 16 Oct 2012 19:30:56 +0000 (15:30 -0400)]
wayland-egl: Drop ill-defined pixmap support

We don't have a use case for this and the actual semantics and
synchronization behavior of wl_egl_pixmap were never really well-defined.
It also doesn't provide the cross-process buffer sharing that make
window systems pixmaps useful in other window systems.

12 years agoconnection: Dereference id completely for comparasion.
John Kåre Alsaker [Fri, 12 Oct 2012 09:28:28 +0000 (11:28 +0200)]
connection: Dereference id completely for comparasion.

12 years agoconnection: Removed crashing code.
John Kåre Alsaker [Fri, 12 Oct 2012 09:28:26 +0000 (11:28 +0200)]
connection: Removed crashing code.

12 years agoscanner: Make sure arguments have names.
John Kåre Alsaker [Fri, 12 Oct 2012 09:28:25 +0000 (11:28 +0200)]
scanner: Make sure arguments have names.

12 years agoconnection: Don't call memcpy with null pointer.
John Kåre Alsaker [Fri, 12 Oct 2012 09:28:24 +0000 (11:28 +0200)]
connection: Don't call memcpy with null pointer.

12 years agoprotocol: try to clarify wl_buffer doc
Pekka Paalanen [Fri, 12 Oct 2012 11:29:01 +0000 (14:29 +0300)]
protocol: try to clarify wl_buffer doc

Fix few typos in wl_buffer description.

Mention backing storage in wl_buffer.destroy.

Try to clarify the wl_buffer.release semantics by not explaining what
*might* happen. It is important to not suggest, that if release does not
come before frame callback, it will not come before attaching a new
buffer to the surface. We want to allow the following scenario:

The compositor is able to texture from wl_buffers directly, but it also
keeps a copy of the surface contents. The copy is updated when the
compositor is idle, to avoid the performance hit on
wl_surface.attach/commit. When the copy completes some time later, the
server sends the release event. If the client has not yet allocated a
second buffer (e.g. it updates rarely), it can reuse the old buffer.

Reported-by: John Kåre Alsaker <john.kare.alsaker@gmail.com>
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agoprotocol: say update instead of repaint
Pekka Paalanen [Fri, 12 Oct 2012 11:29:00 +0000 (14:29 +0300)]
protocol: say update instead of repaint

wl_surface.commit itself does not force any repainting unless there is
damage, so change the wording to not imply repainting.

Reported-by: John Kåre Alsaker <john.kare.alsaker@gmail.com>
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agodoc: Add doxygen documentation to wl_display_get_error()
Ander Conselvan de Oliveira [Tue, 16 Oct 2012 14:29:09 +0000 (17:29 +0300)]
doc: Add doxygen documentation to wl_display_get_error()

12 years agodoc: Document change of return value of dispatch functions
Ander Conselvan de Oliveira [Tue, 16 Oct 2012 14:29:08 +0000 (17:29 +0300)]
doc: Document change of return value of dispatch functions

12 years agodoc: Document the restriction of destroying queues before the display
Ander Conselvan de Oliveira [Tue, 16 Oct 2012 14:29:07 +0000 (17:29 +0300)]
doc: Document the restriction of destroying queues before the display

12 years agodoc: Put wl_display_flush() documentation in the right place
Ander Conselvan de Oliveira [Tue, 16 Oct 2012 14:29:06 +0000 (17:29 +0300)]
doc: Put wl_display_flush() documentation in the right place

It seems a rebase error caused it to end up in the wrong place.

12 years agoprotocol: Clarify pointer axis event
Jonas Ådahl [Wed, 3 Oct 2012 20:50:55 +0000 (22:50 +0200)]
protocol: Clarify pointer axis event

Pointer axis events are in the same coordinate space as motion events.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
12 years agoconfigure.ac: Bump version to 0.99.0
Kristian Høgsberg [Tue, 16 Oct 2012 00:49:41 +0000 (20:49 -0400)]
configure.ac: Bump version to 0.99.0

12 years agodocs: Make distcheck happy
Kristian Høgsberg [Tue, 16 Oct 2012 00:48:12 +0000 (20:48 -0400)]
docs: Make distcheck happy

publican doesn't seem to be a very well-behaved tool and needs a bit
of hacking to work well for both in-tree and out-of-tree builds.

12 years agowayland-server: Add touch grab support
Matt Roper [Wed, 10 Oct 2012 23:56:52 +0000 (16:56 -0700)]
wayland-server: Add touch grab support

Touch grabs allow the compositor to be placed into a mode where touch events
temporarily bypass their default behavior and perform other operations.
Wayland already supports keyboard and pointer grabs, but was lacking
corresponding touch support.  The default touch grab handlers here contain the
client event delivery code that was previously called directly in weston.

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>