Kristian Høgsberg [Mon, 1 Oct 2012 17:21:29 +0000 (13:21 -0400)]
connection: Drop unused static closures
David Herrmann [Wed, 26 Sep 2012 14:41:50 +0000 (16:41 +0200)]
man: fix compilation without xsltproc
We really shouldn't add the man-pages when HAVE_XSLTPROC is not true so
move it into the if-clause.
But declare the automake-variables outside of the if-clause to avoid
automake complaints.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
David Herrmann [Mon, 24 Sep 2012 11:18:38 +0000 (13:18 +0200)]
man: add man-page infrastructure
This adds a man-page infrastructure based on Docbook XML files. This
allows us to integrate the man-pages into the publican books later. An
example page for wl_display_connect() (with an alias
wl_display_connect_to_fd()) is also added.
Feel free to add more man-pages. Function calls are put in man3 and
overview pages into man7. All pages (including aliases) have to be added
to the Makefile.
Docbook does generate aliases automatically from the additional names that
were put in the XML file. However, a small SED script is needed to fixup
the include-paths in the generated troff files. If someone knows how to
avoid that (or even install them gzip'ped), please fix it up.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Tiago Vignatti [Tue, 25 Sep 2012 09:19:57 +0000 (12:19 +0300)]
protocol: Fix typo
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
Diego Viola [Thu, 13 Sep 2012 10:45:06 +0000 (06:45 -0400)]
Fix typo (ratio, not ration)
Signed-off-by: Diego Viola <diego.viola@gmail.com>
David Herrmann [Tue, 11 Sep 2012 14:09:34 +0000 (16:09 +0200)]
event-loop: export wl_event_loop_dispatch_idle()
When integrating the wayland event-loop into another event-loop, we
currently have no chance of checking whether there are pending idle
sources that have to be called. This patch exports the
"dispatch_idle_sources()" call so other event loops can call this before
going to sleep. This is what wl_event_loop_dispatch() currently does so we
simply allow external event-loops to do the same now.
To avoid breaking existing applications, we keep the call to
dispatch_idle_sources() in wl_event_loop_dispatch() for now. However, if
we want we can remove this later and require every application to call
this manually. This needs to be discussed, but the overhead is negligible
so we will probably leave it as it is.
This finally allows to fully integrate the wayland-server API into
existing event-loops without any nasty workarounds.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
David Herrmann [Mon, 10 Sep 2012 09:20:35 +0000 (11:20 +0200)]
wayland-server: return new ID in wl_client_add_resource()
wl_client_add_resource() used to return no error even though the new
resource wasn't added to the client. This currently makes it very easy to
DOS weston by simply posting thousands of "create_surface" requests with
an invalid ID. Weston simply assumes the wl_client_add_resource() request
succeeds but will never destroy the surface again as the "destroy" signal
is never called (because the surface isn't linked into the wl_map).
This change makes wl_client_add_resource() return the new ID of the added
object and 0 on failure. Servers (like weston) can now correctly
immediately destroy the surface when this call fails instead of leaving
the surface around and producing memory-leaks.
Instead of returning -1 on failure and 0 on success, I made it return the
new ID as this seems more appropriate. We can directly use it when calling
it with new_id==0.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
David Herrmann [Sat, 8 Sep 2012 15:47:15 +0000 (17:47 +0200)]
event-loop: remove dead code
There is really no need to increment "n" if we never read the value. The
do-while() loop overwrites the value before it is read the first time.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Philipp Brüschweiler [Thu, 6 Sep 2012 16:54:02 +0000 (18:54 +0200)]
cursor: add cursor.pcf and extraction program
Philipp Brüschweiler [Thu, 6 Sep 2012 16:54:01 +0000 (18:54 +0200)]
cursor: Add a default cursor theme
This theme is loaded when the specified cursor theme can not be found.
These cursors are extracted from the xorg sources and transformed into
raw ARGB data by a small helper program (commited separately).
Kristian Høgsberg [Wed, 29 Aug 2012 18:12:11 +0000 (14:12 -0400)]
tests: Quiet warning
U. Artie Eoff [Fri, 17 Aug 2012 01:12:05 +0000 (18:12 -0700)]
tests: ensure sanity leak check tests pass when leak checks are disabled.
This finalizes Robert Bradfords patch to allow NO_ASSERT_LEAK_CHECK
environment variable to disable leak checks in unit tests.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Rob Bradford [Fri, 17 Aug 2012 01:12:04 +0000 (18:12 -0700)]
tests: Allow disabling leak checking assertions by env
Some code coverage tools trigger these assertions when run against the test
suite since they don't free all their memory.
Kristian Høgsberg [Thu, 16 Aug 2012 03:03:21 +0000 (23:03 -0400)]
Add wl_shm_buffer_create()
Kristian Høgsberg [Tue, 14 Aug 2012 17:16:10 +0000 (13:16 -0400)]
client: Add wl_display_connect_to_fd() function
This lets us connect a display to an already existing socket fd.
Scott Moreau [Thu, 16 Aug 2012 06:04:27 +0000 (00:04 -0600)]
protocol: Fix typo.
Philipp Brüschweiler [Tue, 14 Aug 2012 09:53:08 +0000 (11:53 +0200)]
socket-test: don't try to be clever, fail if no XDG_RUNTIME_DIR is set
Not only setenv(), also putenv() allocates memory on my system
(glibc 2.16.0). Just fail with a clear message if XDG_RUNTIME_DIR is
not set.
https://bugs.freedesktop.org/show_bug.cgi?id=52618
Christopher Michael [Sat, 11 Aug 2012 14:09:02 +0000 (15:09 +0100)]
Add support for X cursor themes.
This patch adds a few more directories to search for xcursor themes.
Along with the weston patch, this adds the ability to configure weston
to use an X11 cursor theme. Previously, wayland cursor would just look
in the icons and pixmaps directories for cursor images to load. This
adds the ability to also search in the x cursors directory.
Christopher Michael [Sat, 11 Aug 2012 14:35:47 +0000 (15:35 +0100)]
Fix grammar in the rendering section.
Upon reading some docs, I found a small grammar mistake in the
rendering section. This patch fixes that.
Kristian Høgsberg [Sat, 4 Aug 2012 02:39:51 +0000 (22:39 -0400)]
connection: zero out string padding
We don't want to send random data to the client and this also keeps
valgrind happy.
Andre Heider [Tue, 31 Jul 2012 16:59:09 +0000 (18:59 +0200)]
protocol: Remove "repeat" from "key_state"
This is unused and apparently was never implemented.
Dima Ryazanov [Thu, 26 Jul 2012 08:39:48 +0000 (01:39 -0700)]
Don't skip the first directory entry when reading cursors.
I end up missing the "bottom_right_corner" cursor.
Kristian Høgsberg [Tue, 24 Jul 2012 19:45:00 +0000 (15:45 -0400)]
Bump version to 0.95.0
Kristian Høgsberg [Tue, 24 Jul 2012 19:10:12 +0000 (15:10 -0400)]
Make distcheck work from builddir configured with --disable-documentation
Daniel Stone [Mon, 23 Jul 2012 18:54:42 +0000 (19:54 +0100)]
More consistent ID printing
Use unsigned rather than signed for IDs, so they match up with what we
see in other prints.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone [Mon, 23 Jul 2012 18:54:41 +0000 (19:54 +0100)]
Make NEW_IDs nullable
The connection-handling code already allows this, so make it legal in
the protocol definition too.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone [Mon, 23 Jul 2012 18:54:40 +0000 (19:54 +0100)]
Unstatic arg_count_for_signature and get_next_argument
Expose these to other files using wayland-private.h, so wayland-client.c
can walk NULLables properly.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Kristian Høgsberg [Tue, 24 Jul 2012 00:14:33 +0000 (20:14 -0400)]
tests: Wrap calloc by just returning NULL if we're called too early
Since glibc dlsym() calls calloc, we get a call to our calloc wrapper as
we try to look up the real calloc implementation. dlsym() will fall back
to a static buffer in case calloc returns NULL, so that's what we'll do.
This is all highly glibc dependent, of course, but the entire malloc
weak symbol wrapper mechanism is, so there's no loss of generality here.
Daniel Stone [Mon, 23 Jul 2012 18:54:39 +0000 (19:54 +0100)]
test-runner: Wrap realloc() too
So all our tests don't start failing just because we had the temerity to
use realloc() rather than malloc().
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone [Mon, 23 Jul 2012 18:54:38 +0000 (19:54 +0100)]
.gitignore: Add ctags and cscope files
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Kristian Høgsberg [Sun, 22 Jul 2012 19:46:16 +0000 (15:46 -0400)]
protocol: Add transform argument to wl_output.geometry event
Mathias Fiedler [Wed, 18 Jul 2012 13:53:23 +0000 (15:53 +0200)]
connection: reserve id on incoming new object
If a new object id arrives ensure that there is an empty array entry
created, otherwise we might get out of sync for new ids if object isn't
created by interface implementation.
Mathias Fiedler [Wed, 18 Jul 2012 13:52:51 +0000 (15:52 +0200)]
wayland-util: add method for reserving new object id
wl_map_reserve_new() ensures that new id is valid and will point to an
empty array entry.
Mathias Fiedler [Wed, 18 Jul 2012 13:51:45 +0000 (15:51 +0200)]
wayland-server: send error on invalid new object id
Creation of new client resources was silently ignored when
wl_client_add_resource() was used on server side and new object id was out
of range.
An error is now send out to the client in such case.
Also changed error message in wl_client_add_object, since
wl_map_insert_at() returns -1 only at invalid new id.
Kristian Høgsberg [Fri, 20 Jul 2012 16:30:07 +0000 (12:30 -0400)]
wayland-shm: Commit the width/height getters that actually compile
Kristian Høgsberg [Fri, 20 Jul 2012 16:20:15 +0000 (12:20 -0400)]
README: Update
The wayland README had outdated build instructions for weston. Let's just
trim it down to build instructions for wayland and a link to the web site.
Kristian Høgsberg [Fri, 20 Jul 2012 16:04:42 +0000 (12:04 -0400)]
shm: Add shm_buffer getters for width and height
Robert Ancell [Tue, 10 Jul 2012 03:52:12 +0000 (15:52 +1200)]
wayland-client: Add missing newline from an error message
Dmitry Guryanov [Tue, 17 Jul 2012 14:56:03 +0000 (18:56 +0400)]
remove listener from wl_data_source destroy_signal listener list
I've found a bug during wayland exploration - if you make two
drag'n'drops in weston client example, dnd - weston crashes with
segfault. I've tried to investigate it and found a problem.
In function drag_grab_button we first call data_device_end_drag_grab,
which sets seat->drag_data_source to NULL. Then we remove
listener from list only if drag_data_source is not NULL.
So if client will not free wl_data_source and start another drag'n'drop,
after the first one. Then two wl_data_source structures will be
free'd on client exit (let's name them s1 and s2).
next and prev pointer of
wl_data_source.resource.destroy_signal.listener_list in both
wl_data_source structures will be seat->drag_data_source_listener,
but next and prev in seat->drag_data_source_listener.link point
to listener_list in s2.
So if you try to iterate over listener_list in s1
then you get drag_data_source_listener as first item and
(struct wl_listener *)(&s2.resource.destroy_signal.listener_list)
Iteration over that list occurs in
wl_resource_destroy->destroy_resource->wl_signal_emit->wl_signal_emit
and try to call function at address of wl_resource->client, so
weston segfaults there.
Pekka Paalanen [Tue, 10 Jul 2012 10:05:03 +0000 (13:05 +0300)]
cursor: fix fd leak and a segfault
- don't leak fd in shm_pool_destroy()
- return NULL from wl_cursor_theme_load() if pool fails
Tha last one fixes a segfault, when shm_pool_create() has failed.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
Pekka Paalanen [Tue, 10 Jul 2012 10:05:02 +0000 (13:05 +0300)]
cursor: use os_create_anonymous_file()
Copy the implementation of os_create_anonymous_file() here from weston,
so we can use it instead of hardcoding a path to /tmp.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
Pekka Paalanen [Tue, 10 Jul 2012 10:05:01 +0000 (13:05 +0300)]
server: fix wl_seat_set_keyboard
This makes wl_seat_set_keyboard similar to wl_seat_set_pointer in that
it's a no-op, if you try to set keyboard to NULL when it already is
NULL, instead of refusing to set it to NULL ever.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
Pekka Paalanen [Tue, 10 Jul 2012 10:05:00 +0000 (13:05 +0300)]
server: add lose_touch_focus()
Just like wl_keyboard and wl_pointer, add a signal handler for losing
touch focus.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
Robert Ancell [Thu, 5 Jul 2012 04:31:29 +0000 (16:31 +1200)]
scanner: Include weston-client.h as the inline functions require it
Kristian Høgsberg [Tue, 10 Jul 2012 01:50:39 +0000 (21:50 -0400)]
wayland-shm: Add return before we hit the error clean-up path
Regression in
c94c0946db694ec29b5aebb94a8be0501bacfbc7
Martin Olsson [Mon, 9 Jul 2012 16:22:05 +0000 (18:22 +0200)]
Fixup source comment in wayland-util.h and fix typo in TODO
Martin Olsson [Mon, 9 Jul 2012 13:50:39 +0000 (15:50 +0200)]
doc: fix some typos in documentation
Ander Conselvan de Oliveira [Mon, 9 Jul 2012 10:15:20 +0000 (13:15 +0300)]
protocol: Add missing allow-null to data_device.enter data_offer field
Fixes bug 51889.
Martin Olsson [Mon, 9 Jul 2012 09:35:57 +0000 (11:35 +0200)]
shm: Plug leak in shm_create_pool()
Martin Olsson [Mon, 9 Jul 2012 09:35:56 +0000 (11:35 +0200)]
server: Don't crash for wl_seat_set_touch(seat, NULL)
Martin Olsson [Mon, 9 Jul 2012 09:35:55 +0000 (11:35 +0200)]
scanner: Plug memory leak in end_element()
Martin Olsson [Mon, 9 Jul 2012 09:35:54 +0000 (11:35 +0200)]
wayland-cursor: Add error handling for shm_pool_create()
Kristian Høgsberg [Mon, 2 Jul 2012 18:34:48 +0000 (14:34 -0400)]
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.
Christopher James Halse Rogers [Mon, 2 Jul 2012 10:03:31 +0000 (20:03 +1000)]
protocol: Explicitly mark requests which allow null arguments
Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Christopher James Halse Rogers [Mon, 2 Jul 2012 10:03:30 +0000 (20:03 +1000)]
protocol: Add explicit nullable types
Most of the time it does not make sense to pass a NULL object, string, or array
to a protocol request. This commit adds an explicit “allow-null” attribute
to mark the request arguments where NULL makes sense.
Passing a NULL object, string, or array to a protocol request which is not
marked as allow-null is now an error. An implementation will never receive
a NULL value for these arguments from a client.
Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Dylan Noblesmith [Fri, 15 Jun 2012 22:56:37 +0000 (22:56 +0000)]
tests: test that path names longer than 108 bytes are rejected
These would either overflow the struct sockaddr_un, or
be truncated and leave a non-null-terminated string.
Dylan Noblesmith [Fri, 15 Jun 2012 22:44:28 +0000 (22:44 +0000)]
tests: fix make check for out-of-tree builds
It was failing with missing include files.
While here, destroy the ugly "../src/..." include
paths used in the tests that was just hacking around
this problem in the Makefile:
sed -i s/..\\/src\\/// tests/*.c
Dylan Noblesmith [Fri, 15 Jun 2012 22:06:58 +0000 (22:06 +0000)]
tests: sort list of tests
Dylan Noblesmith [Fri, 15 Jun 2012 21:39:50 +0000 (21:39 +0000)]
wayland-client: reject socket paths longer than 108 bytes
Attempting to write anything longer into the embedded char
array would create a non-null-terminated string, and all
later reads would run off the end into invalid memory.
This is a hard limitation of AF_LOCAL/AF_UNIX sockets.
Dylan Noblesmith [Fri, 15 Jun 2012 21:32:19 +0000 (21:32 +0000)]
wayland-server: reject socket paths longer than 108 bytes
Attempting to write anything longer into the embedded char
array would create a non-null-terminated string, and all
later reads would run off the end into invalid memory.
This is a hard limitation of AF_LOCAL/AF_UNIX sockets.
Dylan Noblesmith [Sat, 16 Jun 2012 22:51:35 +0000 (22:51 +0000)]
wayland-server: add more logging of errors
Dylan Noblesmith [Sat, 30 Jun 2012 19:50:09 +0000 (19:50 +0000)]
wayland-server: fix socket ownership race condition
Always unlink() the lock file before closing the file
descriptor for it. Otherwise, there is a race like this:
Process A closes fd, releasing the lock
Process B opens the same file, taking the lock
Process A unlinks the lock file
Process C opens the same file, which now no longer exists,
and takes the lock on the newly created lock file
Process B and C both 'own' the same display socket.
unlink()ing while holding the lock is effectively a better
way to release the lock atomically.
Dylan Noblesmith [Sat, 16 Jun 2012 22:47:42 +0000 (22:47 +0000)]
wayland-server: fix fd leak on error path
And restructure get_socket_lock() so it's clearer that it's
allocating a new file descriptor.
Uncovered by an upcoming test.
Dylan Noblesmith [Fri, 15 Jun 2012 22:01:06 +0000 (22:01 +0000)]
drop use of strerror()
It isn't thread-safe. Use the %m conversion specifier instead,
like the rest of the code already does.
Dylan Noblesmith [Fri, 15 Jun 2012 21:09:00 +0000 (21:09 +0000)]
wayland-server: reduce use of magic numbers
Make it clear what the significance of '5' and '113' actually is.
Also drop an unneeded function argument.
Kristian Høgsberg [Fri, 29 Jun 2012 02:01:58 +0000 (22:01 -0400)]
Allocate client proxy automatically for new objects
When the server send a new object ID, the client used to have to allocate
the proxy manually and without type-safety. We now allocate the proxy
in a client-side post-processing step on the incoming closure.
Ander Conselvan de Oliveira [Thu, 28 Jun 2012 15:08:03 +0000 (18:08 +0300)]
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.
Kristian Høgsberg [Wed, 27 Jun 2012 14:30:08 +0000 (10:30 -0400)]
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.
Kristian Høgsberg [Mon, 25 Jun 2012 22:09:00 +0000 (18:09 -0400)]
configure.ac: Bump version to 0.94.90
Kristian Høgsberg [Fri, 22 Jun 2012 18:38:12 +0000 (14:38 -0400)]
Send modifier event to pointer focus when it changes too
Kristian Høgsberg [Fri, 22 Jun 2012 16:20:00 +0000 (12:20 -0400)]
Send keyboard modifier event using the keyboard resource
Daniel Stone [Fri, 22 Jun 2012 12:21:26 +0000 (13:21 +0100)]
Maintain keyboard modifier state in wayland-server
Provide a slot for keyboard modifier state inside wl_keyboard for
implementations to update, and use this to send wl_keyboard:;modifier
events whenever the keyboard or pointer focus changes.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Ander Conselvan de Oliveira [Tue, 19 Jun 2012 10:45:39 +0000 (13:45 +0300)]
wayland-cursor: Plug leak of filename on load_all_cursors_from_dir()
Daniel Stone [Mon, 18 Jun 2012 19:01:05 +0000 (20:01 +0100)]
Xcursor: Don't ignore unknown file types
XFS doesn't return the file type with opendir(), and instead only
returns it when you stat() the file itself.
c66f2602 introduced a check
to ensure that only files and symlinks were loaded, while not checking
for DT_UNKNOWN. Properly handle DT_UNKNOWN by just proceeding anyway.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Kristian Høgsberg [Mon, 18 Jun 2012 16:09:47 +0000 (12:09 -0400)]
data-device: Fix list corruption when the source goes away
If the data source is destroyed, the corresponding offers may stay around for
a little longer (until the owning client destroys it). When the offer is
finally destroyed, we have to be careful to only remove the source
destroy listener if the source hasn't yet been destroyed.
Thanks to Martin Minarik for tracking down where the corruption happened.
Kristian Høgsberg [Fri, 15 Jun 2012 20:09:39 +0000 (16:09 -0400)]
tests: Update test cases to new closure allocate convention
Kristian Høgsberg [Fri, 15 Jun 2012 15:09:36 +0000 (11:09 -0400)]
TODO: Remove cursor-as-regular-surface item
Ander Conselvan de Oliveira [Fri, 15 Jun 2012 14:27:33 +0000 (17:27 +0300)]
cursor: Add function for calculating current frame in cursor animation
Given a pointer to struct wl_cursor and an elapsed time in ms.,
wl_cursor_frame() will return the index of the cursor image the should
be displayed.
Ander Conselvan de Oliveira [Fri, 15 Jun 2012 14:27:32 +0000 (17:27 +0300)]
protocol: replace pointer.attach with pointer.set_cursor
Kristian Høgsberg [Wed, 13 Jun 2012 17:33:01 +0000 (13:33 -0400)]
TODO: Update to account for changes from Daniel
Kristian Høgsberg [Tue, 12 Jun 2012 21:48:19 +0000 (17:48 -0400)]
connection: Set closure->start in demarshal too
Kristian Høgsberg [Tue, 12 Jun 2012 21:45:25 +0000 (17:45 -0400)]
connection: Always malloc closure
This lets us allocate the closure just big enough and is a first step towards
a message queue.
Jonas Ådahl [Tue, 12 Jun 2012 21:57:33 +0000 (23:57 +0200)]
wayland-server: Add destroy signal to wl_seat
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Jonas Ådahl [Tue, 12 Jun 2012 21:57:32 +0000 (23:57 +0200)]
wayland-util: wl_list_insert_list() should accept empty lists
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
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.
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>
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>
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
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.
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.
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>
Kristian Høgsberg [Fri, 1 Jun 2012 03:29:08 +0000 (23:29 -0400)]
data-device: Handle setting a NULL selection source
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
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.
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>
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>
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>
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>
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>
Martin Minarik [Tue, 29 May 2012 15:38:51 +0000 (17:38 +0200)]
Wayland: logging: replace printf by wl_log