profile/ivi/wayland.git
12 years agowayland-cursor: add an option that changes the cursor theme directory
Ander Conselvan de Oliveira [Fri, 8 Jun 2012 08:58:02 +0000 (11:58 +0300)]
wayland-cursor: add an option that changes the cursor theme directory

Some distros (e.g. gentoo) install cursor themes in non-standard
directories. Add option --with-icondir to configure.sh that sets the
directory in which to look for cursors.

12 years agoserver: require XDG_RUNTIME_DIR
Pekka Paalanen [Wed, 6 Jun 2012 11:30:19 +0000 (14:30 +0300)]
server: require XDG_RUNTIME_DIR

An arbitrary fallback to the current directory is only confusing.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agoclient: require XDG_RUNTIME_DIR
Pekka Paalanen [Wed, 6 Jun 2012 11:30:18 +0000 (14:30 +0300)]
client: require XDG_RUNTIME_DIR

An arbitrary fallback to the current directory is only confusing.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agoAdd a focus change signal for wl_pointer and wl_keyboard
Kristian Høgsberg [Tue, 5 Jun 2012 13:56:42 +0000 (09:56 -0400)]
Add a focus change signal for wl_pointer and wl_keyboard

12 years agoTODO: Drop clipboard manager item
Kristian Høgsberg [Mon, 4 Jun 2012 03:11:34 +0000 (23:11 -0400)]
TODO: Drop clipboard manager item

We have a reasonable prototype in weston now and we're going to
conclude that the persistent selection functionality is either
going to be part of the compositor (as for weston) or use a custom
protocol.

12 years agodata-device: Don't implement data source through data offer object
Kristian Høgsberg [Sun, 3 Jun 2012 21:30:12 +0000 (17:30 -0400)]
data-device: Don't implement data source through data offer object

The wl_data_source object used to specify the implementation for data
offers created for it.  This means you need a data offer to retrieve the
data from the source, which makes it awkward to use in-process in a
compositor.  Now we instead have three virtual functions that can be
connected to a protocol object or in-process data-sources such as an
X server proxy or clipboard.

12 years agoAdd wl_keyboard::keymap event
Daniel Stone [Fri, 1 Jun 2012 11:13:37 +0000 (12:13 +0100)]
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>
12 years agodata-device: Handle setting a NULL selection source
Kristian Høgsberg [Fri, 1 Jun 2012 03:29:08 +0000 (23:29 -0400)]
data-device: Handle setting a NULL selection source

12 years agodata-device: Emit selection_signal also when we lose the selection
Kristian Høgsberg [Fri, 1 Jun 2012 03:28:31 +0000 (23:28 -0400)]
data-device: Emit selection_signal also when we lose the selection

12 years agodata-device: Only send out NULL selection if we have a resource
Kristian Høgsberg [Fri, 1 Jun 2012 03:26:50 +0000 (23:26 -0400)]
data-device: Only send out NULL selection if we have a resource

If the current keyboard focus client doesn't have a resource for the
data_device, don't send out the selection event.

12 years agoConvert wl_pointer::axis to fixed
Daniel Stone [Wed, 30 May 2012 15:31:49 +0000 (16:31 +0100)]
Convert wl_pointer::axis to fixed

Which allows for smooth scrolling, among other things.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
12 years agoAdd key_state and button_state enums
Daniel Stone [Wed, 30 May 2012 15:31:48 +0000 (16:31 +0100)]
Add key_state and button_state enums

Rather than hardcoding 0 and 1 everywhere.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
12 years agowl_keyboard: Add modifier event
Daniel Stone [Wed, 30 May 2012 15:31:47 +0000 (16:31 +0100)]
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>
12 years agoAlways reset keyboard and pointer focus
Daniel Stone [Wed, 30 May 2012 15:31:46 +0000 (16:31 +0100)]
Always reset keyboard and pointer focus

If wl_pointer_set_focus or wl_keyboard_set_focus have been called before
a listener has been established for that seat and client combination,
the focus window will be set but the focus resource will be NULL.  This
changes these functions to always attempt to search for the relevant
focus resource, allowing the resource to be set by calling
wl_keyboard_set_focus and wl_pointer_set_focus again when a listener has
been established.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
12 years agocursor: Fix warning with objdir != srcdir build
Daniel Stone [Wed, 30 May 2012 15:31:45 +0000 (16:31 +0100)]
cursor: Fix warning with objdir != srcdir build

Make sure we find the right include paths.

krh: Edited to use $(top_builddir)

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
12 years agoWayland: logging: replace printf by wl_log
Martin Minarik [Tue, 29 May 2012 15:38:51 +0000 (17:38 +0200)]
Wayland: logging: replace printf by wl_log

12 years agoWayland: logging
Martin Minarik [Tue, 29 May 2012 15:37:02 +0000 (17:37 +0200)]
Wayland: logging

The core libwayland libraries should not handle logging, only passing
the error messages to subscribed functions.
An application linked to libwayland-server or libwayland-client
will be able to set own functions (one per library) to handle error
messages.

Change in this series: make the wl_log return int, because
of compatibility with printf. It will return the number of bytes logged.

12 years agotests: update gitignore
Pekka Paalanen [Tue, 29 May 2012 13:53:21 +0000 (16:53 +0300)]
tests: update gitignore

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agobuild: add uninstalled pkg-config files
Pekka Paalanen [Tue, 29 May 2012 13:53:20 +0000 (16:53 +0300)]
build: add uninstalled pkg-config files

Required for building apps against wayland libraries that have not been
installed.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agocursor: Link libwayland-cursor to libwayland-client
Rob Bradford [Tue, 29 May 2012 13:10:30 +0000 (14:10 +0100)]
cursor: Link libwayland-cursor to libwayland-client

LDADD is only used when linking programs not libraries.

Spotted-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agodata-device: implement drags with no data source for self-dnd
Ander Conselvan de Oliveira [Tue, 29 May 2012 07:58:26 +0000 (10:58 +0300)]
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.

12 years agodata-device: fix crash when a client dies during a drag with an icon
Ander Conselvan de Oliveira [Fri, 25 May 2012 07:40:28 +0000 (10:40 +0300)]
data-device: fix crash when a client dies during a drag with an icon

The commit that split wl_input_device into wl_seat and friends changed
erroneously the drag icon destroy listener, causing it to operate into
an invalid pointer to a wl_seat.

12 years agowayland-cursor: load all cursors from a theme on wl_cursor_theme_load
Ander Conselvan de Oliveira [Thu, 24 May 2012 13:17:48 +0000 (16:17 +0300)]
wayland-cursor: load all cursors from a theme on wl_cursor_theme_load

12 years agowayland-cursor: remove enum wl_cursor_type
Ander Conselvan de Oliveira [Thu, 24 May 2012 13:17:47 +0000 (16:17 +0300)]
wayland-cursor: remove enum wl_cursor_type

Defining a list of all cursors a theme, client or toolkit should have
is not the purpose of libwayland-cursor. The cursor type enum existed
for making lookups faster, but this kind of optmization belongs in the
toolkits.

12 years agoshm: use mremap on pool resize
Ander Conselvan de Oliveira [Wed, 23 May 2012 13:09:55 +0000 (16:09 +0300)]
shm: use mremap on pool resize

12 years agoWayland: Add missing extern "C"
Yan Wang [Wed, 23 May 2012 06:14:30 +0000 (14:14 +0800)]
Wayland: Add missing extern "C"

Add extern "C" macro definition for C++.

12 years agofix typo
Diego Viola [Wed, 23 May 2012 06:08:08 +0000 (02:08 -0400)]
fix typo

12 years agocursor: Fix unsigned/signed comparisons
Kristian Høgsberg [Wed, 23 May 2012 02:41:21 +0000 (22:41 -0400)]
cursor: Fix unsigned/signed comparisons

12 years agoshm: Zero busy count for allocated buffers
Rob Bradford [Tue, 22 May 2012 17:48:14 +0000 (18:48 +0100)]
shm: Zero busy count for allocated buffers

This avoids a valgrind error like:

==31496== Conditional jump or move depends on uninitialised value(s)
==31496==    at 0x407620: weston_buffer_post_release (compositor.c:928)
==31496==    by 0x406AEB: weston_surface_attach (compositor.c:725)
==31496==    by 0x409EB8: pointer_attach (compositor.c:2009)
==31496==    by 0x34ECE05D63: ffi_call_unix64 (unix64.S:75)
==31496==    by 0x34ECE05784: ffi_call (ffi64.c:486)
==31496==    by 0x5674C4D: wl_closure_invoke (connection.c:770)
==31496==    by 0x566ECCB: wl_client_connection_data (wayland-server.c:255)
==31496==    by 0x56722F9: wl_event_source_fd_dispatch (event-loop.c:79)
==31496==    by 0x5672C99: wl_event_loop_dispatch (event-loop.c:410)
==31496==    by 0x56705FF: wl_display_run (wayland-server.c:1004)
==31496==    by 0x40C775: main (compositor.c:2937)
==31496==  Uninitialised value was created by a heap allocation
==31496==    at 0x4A074CD: malloc (vg_replace_malloc.c:236)
==31496==    by 0x5670EA7: shm_pool_create_buffer (wayland-shm.c:113)
==31496==    by 0x34ECE05D63: ffi_call_unix64 (unix64.S:75)
==31496==    by 0x34ECE05784: ffi_call (ffi64.c:486)
==31496==    by 0x5674C4D: wl_closure_invoke (connection.c:770)
==31496==    by 0x566ECCB: wl_client_connection_data (wayland-server.c:255)
==31496==    by 0x56722F9: wl_event_source_fd_dispatch (event-loop.c:79)
==31496==    by 0x5672C99: wl_event_loop_dispatch (event-loop.c:410)
==31496==    by 0x56705FF: wl_display_run (wayland-server.c:1004)
==31496==    by 0x40C775: main (compositor.c:2937)

12 years agoserver: Initialise serial number counter for wl_display
Rob Bradford [Tue, 22 May 2012 17:48:13 +0000 (18:48 +0100)]
server: Initialise serial number counter for wl_display

This ends up propagating through and creating a valgrind error like:

==22573== Conditional jump or move depends on uninitialised value(s)
==22573==    at 0x409E57: pointer_attach (compositor.c:1999)
==22573==    by 0x34ECE05D63: ffi_call_unix64 (unix64.S:75)
==22573==    by 0x34ECE05784: ffi_call (ffi64.c:486)
==22573==    by 0x5674C45: wl_closure_invoke (connection.c:770)
==22573==    by 0x566ECCB: wl_client_connection_data (wayland-server.c:255)
==22573==    by 0x56722F1: wl_event_source_fd_dispatch (event-loop.c:79)
==22573==    by 0x5672C91: wl_event_loop_dispatch (event-loop.c:410)
==22573==    by 0x56705F4: wl_display_run (wayland-server.c:1003)
==22573==    by 0x40C775: main (compositor.c:2937)

12 years agoIntroduce libwayland-cursor, a cursor helper library
Ander Conselvan de Oliveira [Tue, 22 May 2012 12:39:41 +0000 (15:39 +0300)]
Introduce libwayland-cursor, a cursor helper library

The purpose of this library is to be the equivalent of libXcursor in
the X world. This library is compatible with X cursor themes and loads
them directly into an shm pool making it easy for the clients to get
buffer for each cursor image.

The code for handling the X cursor theme was taken from libXcursor. The
files cursor/xcursor.[ch] are a stripped down version of that library
containing only the interfaces necessary for implementing the wayland
counterpart.

12 years agoshm: Add request for resizing pools
Ander Conselvan de Oliveira [Tue, 22 May 2012 12:39:40 +0000 (15:39 +0300)]
shm: Add request for resizing pools

12 years agoprotocol: use transient flags for activate or not surfaces
Tiago Vignatti [Mon, 21 May 2012 13:47:44 +0000 (16:47 +0300)]
protocol: use transient flags for activate or not surfaces

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
12 years agodoc: Update docs to refer to wl_seat instead of wl_input_device
Kristian Høgsberg [Wed, 16 May 2012 18:25:45 +0000 (14:25 -0400)]
doc: Update docs to refer to wl_seat instead of wl_input_device

12 years agoConvert wl_input_device to wl_seat (and friends)
Daniel Stone [Wed, 16 May 2012 17:44:40 +0000 (18:44 +0100)]
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>
12 years agoAdd missing alt attributes in publican docs.
Darxus [Mon, 14 May 2012 20:41:10 +0000 (16:41 -0400)]
Add missing alt attributes in publican docs.

Haven't figured out how to regenerate the html, so it's not tested.
Looks like remaining html errors will be fixed in the next publican
release:  https://bugzilla.redhat.com/show_bug.cgi?id=788576

12 years agotests: add noop to fixed-benchmark
Pekka Paalanen [Tue, 15 May 2012 07:29:12 +0000 (10:29 +0300)]
tests: add noop to fixed-benchmark

I was just curious of how much the looping takes time without
conversion, so I added this.

My results on Intel(R) Core(TM) i5-2410M CPU @ 2.30GHz:

benchmarked noop: 1.876349827s
benchmarked magic: 2.245844470s
benchmarked div: 12.709085309s
benchmarked mul: 7.504838141s

Mul seems to take 15x the time magic does, cool!

Btw. the simple default cast of int32_t to double is slower than magic
for me, hence the use of union.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agoOptimize wl_fixed_t to/from double conversion functions
Kristian Høgsberg [Sat, 12 May 2012 03:36:20 +0000 (23:36 -0400)]
Optimize wl_fixed_t to/from double conversion functions

12 years agoTODO: Strike the last xkbcommon issues
Kristian Høgsberg [Fri, 11 May 2012 15:27:22 +0000 (11:27 -0400)]
TODO: Strike the last xkbcommon issues

12 years agoprotocol: Specify that the fullscreen framerate parameter is also mHz
Kristian Høgsberg [Thu, 10 May 2012 18:13:05 +0000 (14:13 -0400)]
protocol: Specify that the fullscreen framerate parameter is also mHz

12 years agoprotocol: Back out accidentally committed wl_seat changes
Kristian Høgsberg [Thu, 10 May 2012 16:09:56 +0000 (12:09 -0400)]
protocol: Back out accidentally committed wl_seat changes

12 years agoprotocol: Add documentation for wl_output
Kristian Høgsberg [Thu, 10 May 2012 15:56:39 +0000 (11:56 -0400)]
protocol: Add documentation for wl_output

12 years agoTODO: More updates
Kristian Høgsberg [Wed, 9 May 2012 15:26:30 +0000 (11:26 -0400)]
TODO: More updates

12 years agoUpdate TODO
Kristian Høgsberg [Tue, 8 May 2012 18:49:44 +0000 (14:49 -0400)]
Update TODO

Daniel did fixed point coordinates.

12 years agoInput: Convert pointer co-ordinates to signed_24_8
Daniel Stone [Tue, 8 May 2012 16:17:26 +0000 (17:17 +0100)]
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>
12 years agoAdd support for signed 24.8 decimal numbers
Daniel Stone [Tue, 8 May 2012 16:17:25 +0000 (17:17 +0100)]
Add support for signed 24.8 decimal numbers

'fixed' is a signed decimal type which offers a sign bit, 23 bits of
integer precision, and 8 bits of decimal precision.  This is exposed as
an opaque struct with conversion helpers to and from double and int on
the C API side.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
12 years agoevent-loop: Delete fd from epoll when removing event source
Kristian Høgsberg [Tue, 8 May 2012 14:42:42 +0000 (10:42 -0400)]
event-loop: Delete fd from epoll when removing event source

Closing an fd will remove it from the epoll set only if it hasn't been
dup'ed.  In other words, the fd is only removed from epoll when all file
descriptors referring to the open file has been close.  We now dup
fd for fd sources, so we need to use EPOLL_CTL_DEL directly now.

12 years agotests: prefix event loop tests with event_loop_
Kristian Høgsberg [Tue, 8 May 2012 13:58:01 +0000 (09:58 -0400)]
tests: prefix event loop tests with event_loop_

12 years agotests: assert that mask is zero is post_dispatch callback
Kristian Høgsberg [Tue, 8 May 2012 13:57:17 +0000 (09:57 -0400)]
tests: assert that mask is zero is post_dispatch callback

12 years agotests: Add timerfd test
Kristian Høgsberg [Tue, 8 May 2012 13:55:55 +0000 (09:55 -0400)]
tests: Add timerfd test

12 years agotests: Add signal test case
Kristian Høgsberg [Tue, 8 May 2012 13:37:34 +0000 (09:37 -0400)]
tests: Add signal test case

Doesn't necessarily catch the signalfd bug just fixed, since that only
triggers when an uninitialized int is negative.

12 years agoevent-loop: Consolidate code for setting up new sources
Kristian Høgsberg [Tue, 8 May 2012 13:30:49 +0000 (09:30 -0400)]
event-loop: Consolidate code for setting up new sources

12 years agoevent-loop: fix conditional checking
Tiago Vignatti [Tue, 8 May 2012 11:58:02 +0000 (14:58 +0300)]
event-loop: fix conditional checking

Introduced in:
    commit 80f4f0d5127ebc8d5e35969a29691cf61a79997d
    Author: Jonas Ådahl <jadahl@gmail.com>
    Date:   Wed Mar 21 10:31:24 2012 +0100

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
12 years agoTODO: drop scanner namespace item
Kristian Høgsberg [Tue, 8 May 2012 03:45:20 +0000 (23:45 -0400)]
TODO: drop scanner namespace item

Not worh the trouble.

12 years agoscanner: Generalize desc_dump() to handle hanging indents
Kristian Høgsberg [Tue, 8 May 2012 03:41:48 +0000 (23:41 -0400)]
scanner: Generalize desc_dump() to handle hanging indents

12 years agoscanner: Fix desc_dump() to not extend beyond column 72
Kristian Høgsberg [Tue, 8 May 2012 02:43:56 +0000 (22:43 -0400)]
scanner: Fix desc_dump() to not extend beyond column 72

12 years agoscanner: Use indent() function in desc_dump()
Kristian Høgsberg [Tue, 8 May 2012 02:23:05 +0000 (22:23 -0400)]
scanner: Use indent() function in desc_dump()

12 years agoUse unsigned for key/button up/down state in grabs
Daniel Stone [Fri, 4 May 2012 10:21:20 +0000 (11:21 +0100)]
Use unsigned for key/button up/down state in grabs

Since we just use it as a simple boolean flag, might as well convert it
to unsigned.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
12 years agoUse class_ instead of class in protocol
Kristian Høgsberg [Thu, 3 May 2012 19:41:50 +0000 (15:41 -0400)]
Use class_ instead of class in protocol

This way we can include the generated code from C++.

12 years agotests: Fix out-of-tree builds
Daniel Stone [Tue, 1 May 2012 19:30:12 +0000 (20:30 +0100)]
tests: Fix out-of-tree builds

Make sure we include any generated headers from src/ as well, like
wayland-version.h.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
12 years agoAdd shell_surface set_title and set_class requests
Kristian Høgsberg [Wed, 2 May 2012 13:39:17 +0000 (09:39 -0400)]
Add shell_surface set_title and set_class requests

12 years agoserver: Post new globals to current clients
Nicolas Pouillon [Wed, 2 May 2012 06:46:47 +0000 (08:46 +0200)]
server: Post new globals to current clients

Globals are bursted to client on conntect.  Now when new global
objects are added to the server state, existing clients also get
notified.

12 years agoprotocol: Move ping event down to other events
Kristian Høgsberg [Tue, 1 May 2012 17:50:23 +0000 (13:50 -0400)]
protocol: Move ping event down to other events

12 years agoAdd wl_proxy_get_id()
Kristian Høgsberg [Fri, 27 Apr 2012 15:31:07 +0000 (11:31 -0400)]
Add wl_proxy_get_id()

12 years agoAdd wl_client_get_object()
Kristian Høgsberg [Fri, 27 Apr 2012 15:28:06 +0000 (11:28 -0400)]
Add wl_client_get_object()

12 years agoDrop stale prototype
Kristian Høgsberg [Fri, 27 Apr 2012 15:26:57 +0000 (11:26 -0400)]
Drop stale prototype

12 years agotests: Just list tests under the TESTS variable
Kristian Høgsberg [Thu, 26 Apr 2012 12:06:43 +0000 (08:06 -0400)]
tests: Just list tests under the TESTS variable

12 years agoMerge remote-tracking branch 'pq/for-krh'
Kristian Høgsberg [Wed, 25 Apr 2012 14:45:48 +0000 (10:45 -0400)]
Merge remote-tracking branch 'pq/for-krh'

12 years agoAdd COPYING
Kristian Høgsberg [Wed, 25 Apr 2012 14:12:21 +0000 (10:12 -0400)]
Add COPYING

12 years agoserver: do not create wl_client if accept() failed
Pekka Paalanen [Thu, 22 Mar 2012 12:24:18 +0000 (14:24 +0200)]
server: do not create wl_client if accept() failed

Spotted during wl_os_accept_cloexec() work.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agoos: wrap accept4(SOCK_CLOEXEC)
Pekka Paalanen [Thu, 22 Mar 2012 12:16:10 +0000 (14:16 +0200)]
os: wrap accept4(SOCK_CLOEXEC)

Some system C libraries do not have SOCK_CLOEXEC, and completely miss
accept4(), too. Provide a fallback for this case.

This changes the behaviour: no error messages are printed now for
failing to set CLOEXEC but the file descriptor is closed.

The unit test for this wrapper is NOT included.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agoos: wrap epoll_create
Pekka Paalanen [Thu, 22 Mar 2012 13:02:05 +0000 (15:02 +0200)]
os: wrap epoll_create

Some system C libraries do not have epoll_create1() nor EPOLL_CLOEXEC,
provide a fallback.

Add tests for the wrapper.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agoos: wrap recvmsg(MSG_CMSG_CLOEXEC)
Pekka Paalanen [Wed, 21 Mar 2012 14:00:23 +0000 (16:00 +0200)]
os: wrap recvmsg(MSG_CMSG_CLOEXEC)

Some system C libraries do not have MSG_CMSG_CLOEXEC. This flag would
automatically set O_CLOEXEC flag on any received file descriptors.

Provide a fallback that does it manually. If setting CLOEXEC fails, the
file descriptor is closed immediately, which will lead to failures but
avoid leaks. However, setting CLOEXEC is not really expected to fail
occasionally.

Add tests for the wrapper. The setup is copied from connection-test.c.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agotests: silence warnings from pipe()
Pekka Paalanen [Mon, 23 Apr 2012 11:36:32 +0000 (14:36 +0300)]
tests: silence warnings from pipe()

warning: ignoring return value of ‘pipe’, declared with attribute
warn_unused_result

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agoos: wrap F_DUPFD_CLOEXEC
Pekka Paalanen [Mon, 23 Apr 2012 10:55:55 +0000 (13:55 +0300)]
os: wrap F_DUPFD_CLOEXEC

Some system C libraries do not have F_DUPFD_CLOEXEC. Provide a fallback.

Add tests for the new wl_os_dupfd_cloexec() wrapper.

Add per-wrapper call counters in os_wrappers-test.c. Makes it easier to
determine the minimum required number of wrapped calls.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agoos: define SOCK_CLOEXEC on Linux
Pekka Paalanen [Mon, 23 Apr 2012 09:10:45 +0000 (12:10 +0300)]
os: define SOCK_CLOEXEC on Linux

If it's not already defined, and we are on Linux, #define it. This gets
rid of a load of #ifdefs. This should also allow to use it when the
kernel supports it, but the libc does not define it.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agoos: remove unneeded errno assignment
Pekka Paalanen [Mon, 23 Apr 2012 08:37:40 +0000 (11:37 +0300)]
os: remove unneeded errno assignment

If socket() fails, it will return failure code. No need to reset errno
beforehand.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agotests: Test invoking closures built with wl_closure_vmarshal()
Kristian Høgsberg [Sun, 22 Apr 2012 18:17:02 +0000 (14:17 -0400)]
tests: Test invoking closures built with wl_closure_vmarshal()

12 years agoconnection: Make sure we can invoke closures built with wl_closure_vmarshal()
Kristian Høgsberg [Sun, 22 Apr 2012 18:16:08 +0000 (14:16 -0400)]
connection: Make sure we can invoke closures built with wl_closure_vmarshal()

12 years agoconnection: Move closure object out of wl_connection
Kristian Høgsberg [Sun, 22 Apr 2012 17:49:35 +0000 (13:49 -0400)]
connection: Move closure object out of wl_connection

12 years agoconnection: Dont put fds in the connection until we send the closure
Kristian Høgsberg [Sun, 22 Apr 2012 03:50:09 +0000 (23:50 -0400)]
connection: Dont put fds in the connection until we send the closure

12 years agoUpdate TODO
Kristian Høgsberg [Fri, 20 Apr 2012 17:43:08 +0000 (13:43 -0400)]
Update TODO

Casey did surface.enter/leave.

12 years agoAdd wl_surface.enter and wl_surface.leave events
Casey Dahlin [Tue, 17 Apr 2012 21:22:45 +0000 (17:22 -0400)]
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>
12 years agotests: add .gitignore
Pekka Paalanen [Fri, 20 Apr 2012 11:33:49 +0000 (14:33 +0300)]
tests: add .gitignore

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agoos: wrap socket(SOCK_CLOEXEC) calls
Pekka Paalanen [Wed, 21 Mar 2012 09:11:26 +0000 (11:11 +0200)]
os: wrap socket(SOCK_CLOEXEC) calls

Some system C libraries do not offer SOCK_CLOEXEC flag.

Add a new header for OS compatibility wrappers. Wrap socket() calls into
wl_os_socket_cloexec() which makes sure the O_CLOEXEC flag gets set on
the file descriptor.

On systems having SOCK_CLOEXEC this uses the old socket() call, and
falls back if it fails due to the flag (kernel not supporting it).

wayland-os.h is private and not exported.

Add close-on-exec tests for both normal and forced fallback paths.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agotests: support testing fd inheritance over exec
Pekka Paalanen [Fri, 20 Apr 2012 11:22:51 +0000 (14:22 +0300)]
tests: support testing fd inheritance over exec

Add facility for testing how (many) file descriptors survive an exec.
This allows implementing O_CLOEXEC tests.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agotests: plug fd leaks in free_source_with_data
Pekka Paalanen [Fri, 20 Apr 2012 08:21:34 +0000 (11:21 +0300)]
tests: plug fd leaks in free_source_with_data

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agotests: detect fd leaks
Pekka Paalanen [Thu, 19 Apr 2012 13:52:32 +0000 (16:52 +0300)]
tests: detect fd leaks

Detect file descriptor leaks in tests.

Add a sanity test to verify that we catch the leaks.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agoprotocol: Add ping event and corresponding pong request
Scott Moreau [Mon, 16 Apr 2012 17:25:39 +0000 (11:25 -0600)]
protocol: Add ping event and corresponding pong request

12 years agotests: Add more sanity test to make sure we catch different failure modes
Kristian Høgsberg [Thu, 19 Apr 2012 16:37:40 +0000 (12:37 -0400)]
tests: Add more sanity test to make sure we catch different failure modes

12 years agotests: Make sure unused malloc() doesn't get optimized away
Kristian Høgsberg [Thu, 19 Apr 2012 16:07:20 +0000 (12:07 -0400)]
tests: Make sure unused malloc() doesn't get optimized away

12 years agotests: add sanity-test
Pekka Paalanen [Thu, 19 Apr 2012 11:46:52 +0000 (14:46 +0300)]
tests: add sanity-test

Test the testing framework itself, so that it catches the errors we
expect it to.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agotests: add support for tests expected to fail
Pekka Paalanen [Thu, 19 Apr 2012 11:26:51 +0000 (14:26 +0300)]
tests: add support for tests expected to fail

Add a new macro FAIL_TEST that can be used to define tests that are
supposed to fail. To distinguish the supposed outcome of a test, add a
field to 'struct test'.

However, simply adding a field to 'struct test' will make all tests past
the first one in an executable to be garbage. Apparently, the variables
of type 'struct test' have different alignment when put into a special
section than otherwise, and the compiler will get the skip from one
'struct test' to the next wrong.

Explicitly specify the alingment of 'struct test' to be 16 bytes, which
is what it seems to be in the special section on x86_64.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agotests: stylish test-runner.c
Pekka Paalanen [Thu, 19 Apr 2012 11:06:08 +0000 (14:06 +0300)]
tests: stylish test-runner.c

Fix a typo, add a comment, change the print format, and add a variable
that will ease implementing tests that are expected to fail.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agotests: fail build if NDEBUG is defined
Pekka Paalanen [Thu, 19 Apr 2012 09:14:19 +0000 (12:14 +0300)]
tests: fail build if NDEBUG is defined

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agotests: put common test source files in a variable
Pekka Paalanen [Thu, 19 Apr 2012 09:12:13 +0000 (12:12 +0300)]
tests: put common test source files in a variable

Makes all test targets have the same common make dependencies.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agoFix printf format warnings
Pekka Paalanen [Tue, 17 Apr 2012 12:16:38 +0000 (15:16 +0300)]
Fix printf format warnings

connection.c:530: warning: format '%lu' expects type 'long unsigned
int', but argument 2 has type 'unsigned int'

/connection.c:560: warning: format '%lu' expects type 'long unsigned
int', but argument 2 has type 'unsigned int'

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years agodata-device: Take away pointer focus when we start a dnd drag
Kristian Høgsberg [Fri, 13 Apr 2012 16:51:40 +0000 (12:51 -0400)]
data-device: Take away pointer focus when we start a dnd drag

12 years agodata-device: Record the serial number for the current selection
Kristian Høgsberg [Fri, 13 Apr 2012 16:48:38 +0000 (12:48 -0400)]
data-device: Record the serial number for the current selection

And reject setting a selection that's older than our current selection.

12 years agodata-device: Clear drag focus when we end the drag-and-drop
Kristian Høgsberg [Fri, 13 Apr 2012 14:39:24 +0000 (10:39 -0400)]
data-device: Clear drag focus when we end the drag-and-drop

Otherwise we'll see a spurious leave event when we start the next dnd.