platform/upstream/weston.git
8 years agomain: remove unused argument from backend loaders
Pekka Paalanen [Fri, 3 Jun 2016 12:28:40 +0000 (15:28 +0300)]
main: remove unused argument from backend loaders

There is no need to pass the backend name string to these functions
anymore.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com>
8 years agolibweston: use enum to choose the backend
Pekka Paalanen [Fri, 3 Jun 2016 12:23:46 +0000 (15:23 +0300)]
libweston: use enum to choose the backend

Change weston_compositor_load_backend() to use an enum to choose the
backend.

The caller no longer needs to know what the backend DSO is called in the
file system. Custom backends cannot be laoded anymore, as the loading
path is now always either LIBWESTON_MODULEDIR, or formed from
$WESTON_BUILD_DIR.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com>
8 years agolibweston: remove unused backend_init() arguments
Pekka Paalanen [Fri, 3 Jun 2016 11:56:18 +0000 (14:56 +0300)]
libweston: remove unused backend_init() arguments

Backends do not have access to command line elements nor weston_config
anymore. They use the backend-specific config APIs now.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com>
8 years agocompositor,main: use weston_compositor_load_backend()
Pekka Paalanen [Fri, 3 Jun 2016 11:49:54 +0000 (14:49 +0300)]
compositor,main: use weston_compositor_load_backend()

Move load_backend_new() from main.c to weston_compositor_load_backend()
in compositor.c.

This makes libweston load its own backends without leaking the details
to the user.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com>
8 years agomain: remove load_backend_old()
Pekka Paalanen [Fri, 3 Jun 2016 10:56:17 +0000 (13:56 +0300)]
main: remove load_backend_old()

Not used anymore, all backends are loaded through the new method.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com>
8 years agoCreate a libweston-0.so
Giulio Camuffo [Thu, 2 Jun 2016 18:48:15 +0000 (21:48 +0300)]
Create a libweston-0.so

This commit also adds a libweston-0.pc file. The -0 is the abi version
introduced in the previous patch.

Signed-off-by: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agoSplit the modules and include files between weston and libweston
Giulio Camuffo [Thu, 2 Jun 2016 18:48:14 +0000 (21:48 +0300)]
Split the modules and include files between weston and libweston

The backends are now installed in lib/libweston-0, and the include
files that will be used by libweston in include/libweston-0. The other
modules and weston-specific include files are kept in the old paths.
A new wet_load_module() is added to load plugins in the old path,
which is not part of libweston, but weston only and defined in main.c.
To allow that to be used by out of tree weston plugins, the function
is declared in a new weston.h, installed in include/weston.

The -0 in the paths is the abi version of libweston, and it will also
be used by the libweston .so. If the abi changes the number will need
to be increased.

Signed-off-by: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agoallow compositors to define the logging behavior
Giulio Camuffo [Thu, 2 Jun 2016 18:48:13 +0000 (21:48 +0300)]
allow compositors to define the logging behavior

Signed-off-by: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agolibinput: don't use weston_config when configuring input devices
Giulio Camuffo [Thu, 2 Jun 2016 18:48:12 +0000 (21:48 +0300)]
libinput: don't use weston_config when configuring input devices

Instead add callbacks to the drm and fbdev backends and pass that to
the input backens so that when a new device needs to be configured
that is called and the compositor can configure it.

Signed-off-by: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agocompositor: remove the weston_config field in weston_compositor
Giulio Camuffo [Thu, 2 Jun 2016 18:48:11 +0000 (21:48 +0300)]
compositor: remove the weston_config field in weston_compositor

The config can now be retrieved with a new function defined in weston.h,
wet_get_config(weston_compositor*).

Signed-off-by: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
8 years agoMove the functions launching clients to main.c
Giulio Camuffo [Thu, 2 Jun 2016 18:48:10 +0000 (21:48 +0300)]
Move the functions launching clients to main.c

They belong in the compositor rather than libweston since they
set signals handlers, and a library should not do that behind its
user's back. Besides, they were using functions in main.c already
so they were not usable by other compositors.

Signed-off-by: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agoMove part of screenshooter.c to weston-screenshooter.c
Giulio Camuffo [Thu, 2 Jun 2016 18:48:09 +0000 (21:48 +0300)]
Move part of screenshooter.c to weston-screenshooter.c

This patch splits screensooter.c so that the code implementing
the private screenshooter protocol and launching the client is
moved to a weston specific file, leaving only the code that can
be shared between compositors in screenshooter.c.
Two exported functions are added in screenshooter.c to start and
stop the recorder.

Signed-off-by: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agoRename weston_compositor_xkb_init to weston_compositor_set_xkb_rule_names
Giulio Camuffo [Thu, 2 Jun 2016 18:48:08 +0000 (21:48 +0300)]
Rename weston_compositor_xkb_init to weston_compositor_set_xkb_rule_names

weston_compositor_xkb_destroy() is called automatically so having only
weston_compositor_xkb_init() to be called by the user was a bit weird.
So rename it so that it makes more sense.
Also export it, since libweston compositors need to call it.

Signed-off-by: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agoRemove Raspberry Pi backend and renderer
Pekka Paalanen [Wed, 1 Jun 2016 08:22:51 +0000 (11:22 +0300)]
Remove Raspberry Pi backend and renderer

This patch completely removes the Raspberry Pi backend and the renderer.

The backend and the renderer were written to use the proprietary
DispmanX API available only on the Raspberry Pi, to demonstrate what the
tiny computer is capable of graphics wise. They were also used to
demonstrate how Wayland and Weston in particular could leverage hardware
compositing capabilities that are not OpenGL. The backend was first
added in e8de35c922871bc5b15fbf0436efa233a6db8e41, in 2012.

Since then, the major point has been proven. Over time, support for the
rpi-backend diminished, it started to deteriorate and hinder Weston
development. On May 11, I tried to ask if anyone actually cared about
the rpi-backend, but did not get any votes for keeping it:
https://lists.freedesktop.org/archives/wayland-devel/2016-May/028764.html

The rpi-backend is a good example of how using an API that is only
available for specific hardware, even more so as it is only available
with a proprietary driver stack, is not maintainable in the long run.
Most developers working on Weston either just cannot, or cannot bother
to test things also on the RPi. Breakage creeps in without anyone
noticing. If someone actually notices it, fixing it will require a very
specific environment to be able to test. Also the quality of the
proprietary implementation fluctuated. There are reports that RPi
firmware updates randomly broke Weston, and that nowadays it is very
hard to find a RPi firmware version that you could expect to work with
Weston if Weston itself was not broken. We are not even sure what is
broken nowadays.

This removal does not leave Raspberry Pi users cold (for long), though.
There is serious work going on in implementing a FOSS driver stack for
Raspberry Pi, including modern kernel DRM drivers and Mesa drivers. It
might not be fully there yet, but the plan is to be able to use the
standard DRM-backend of Weston on the RPis. See:
http://dri.freedesktop.org/wiki/VC4/

The rpi-backend had its moments. Now, it needs to go. Good riddance!

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Acked-by: Bryce Harrington <bryce@osg.samsung.com>
Acked-by: Jonas Ådahl <jadahl@gmail.com>
Acked-by: Daniel Stone <daniels@collabora.com>
8 years agoweston-launch: Handle invalid command line options
Tom Hochstein [Sat, 7 May 2016 11:57:40 +0000 (08:57 -0300)]
weston-launch: Handle invalid command line options

Exit the program if an unrecognized command line option is found.

Signed-off-by; Tom Hochstein <tom.hochstein@nxp.com>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Tested-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
8 years agoreleasing: Copyedit post-release branching directions
Bryce Harrington [Thu, 2 Jun 2016 00:17:57 +0000 (17:17 -0700)]
releasing: Copyedit post-release branching directions

8 years agoivi-shell: add API for weston_surface -> ivi_layout_surface
Pekka Paalanen [Tue, 12 Apr 2016 13:06:58 +0000 (16:06 +0300)]
ivi-shell: add API for weston_surface -> ivi_layout_surface

Add ivi-layout API for getting an ivi_layout_surface from a
weston_surface if it exists. This can be used by controllers that hook
up to core Weston callbacks and get handed a weston_surface, but need to
use ivi-layout API to manipulate it.

The only ways ivi-layout itself would be able to go from weston_surface
to ivi_layout_surface are either searching through the list of all
ivi_layout_surfaces or adding a dummy destroy listener to the
weston_surface. Therefore the implementation is delegated to
ivi-shell.c.

Ivi-shell.c can easily look up the ivi_shell_surface for a
weston_surface, and that will map 1:1 to an ivi_layout_surface.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Emre Ucan <eucan@de.adit-jv.com>
8 years agoconfigure.ac: bump version to 1.11.90 for open development
Pekka Paalanen [Wed, 1 Jun 2016 08:05:46 +0000 (11:05 +0300)]
configure.ac: bump version to 1.11.90 for open development

As announced in 1.11.0 release notes, master is open again.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agoconfigure.ac: bump to version 1.11.0 for the official release
Bryce Harrington [Wed, 1 Jun 2016 00:10:40 +0000 (17:10 -0700)]
configure.ac: bump to version 1.11.0 for the official release

8 years agoreleasing: Update script name
Bryce Harrington [Tue, 31 May 2016 22:52:33 +0000 (15:52 -0700)]
releasing: Update script name

8 years agoconfigure.ac: bump to version 1.10.93 for the RC1 release
Bryce Harrington [Tue, 24 May 2016 19:35:48 +0000 (12:35 -0700)]
configure.ac: bump to version 1.10.93 for the RC1 release

8 years agoreleasing: Update release docs in regards to the wayland versioned dependency
Bryce Harrington [Tue, 24 May 2016 19:34:44 +0000 (12:34 -0700)]
releasing: Update release docs in regards to the wayland versioned dependency

8 years agobuild: Define wayland prereq version
Bryce Harrington [Wed, 11 May 2016 20:18:59 +0000 (13:18 -0700)]
build: Define wayland prereq version

Establishes a single variable for defining the libwayland version
requirements, where we have versioned checks.  Enforces the same version
dependency between libwayland-client and libwayland-server.  Developers
typically only test the greater version of the two, so if they're
different it masks cases that don't get tested adequately.  So this sets
wayland-client's required version to 1.10, same as for the server.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Tested-by: Quentin Glidic <sardemff7+git@sardemff7.net>
8 years agodesktop-shell: Don’t reconfigure an already fullscreen surface
Emmanuel Gil Peyrot [Tue, 10 May 2016 01:22:43 +0000 (03:22 +0200)]
desktop-shell: Don’t reconfigure an already fullscreen surface

When we receive an wl_shell_surface::set_fullscreen request for a
surface that was already fullscreen, don’t do anything if the
parameters are the same as the initial request.

This prevents bogus or malicious clients from being able to always stay
on front by flooding the compositor with set_fullscreen requests after
the user has put them in the background with a mod+tab.

Signed-off-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
8 years agoivi: Fix spellings in comments
Bryce Harrington [Fri, 20 May 2016 00:35:02 +0000 (17:35 -0700)]
ivi: Fix spellings in comments

8 years agozunitc: use platform-independent macros for integer formatting
Emmanuel Gil Peyrot [Wed, 18 May 2016 16:18:18 +0000 (17:18 +0100)]
zunitc: use platform-independent macros for integer formatting

Fixes warnings and potential issues on 32-bit platforms, tested only on
ARM but I’d expect the same issue on i686.

Signed-off-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
8 years agocompositor: use generated constant instead of hardcoded value
FORT David [Tue, 26 Apr 2016 21:34:06 +0000 (23:34 +0200)]
compositor: use generated constant instead of hardcoded value

Use SINCE macros instead of the hardcoded version value.

Signed-off-by: David Fort <contact@hardening-consulting.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
8 years agordp: Fix the ContextNew callback with recent FreeRDP versions
FORT David [Tue, 26 Apr 2016 21:34:05 +0000 (23:34 +0200)]
rdp: Fix the ContextNew callback with recent FreeRDP versions

Since a quite long time FreeRDP expect the ContextNew callback to return TRUE
when it succeeds. Without this we have some arbitrary failures (most probably
when eax is 0 at the end of the function).

Signed-off-by: David Fort <contact@hardening-consulting.com>
8 years agordp: allow to compile against FreeRDP 2.0
FORT David [Sun, 1 May 2016 21:32:07 +0000 (23:32 +0200)]
rdp: allow to compile against FreeRDP 2.0

FreeRDP 2.0 is about to be released, this allows to compile against this version.
The detection is adjusted to prefer FreeRDP 2 against version 1.x.

Signed-off-by: David Fort <contact@hardening-consulting.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
8 years agoconfigure.ac: bump to version 1.10.92 for the beta release
Bryce Harrington [Wed, 18 May 2016 05:10:30 +0000 (22:10 -0700)]
configure.ac: bump to version 1.10.92 for the beta release

8 years agocompositor-drm: Prevent a crash in the pixman renderer
Emmanuel Gil Peyrot [Mon, 2 May 2016 21:40:13 +0000 (22:40 +0100)]
compositor-drm: Prevent a crash in the pixman renderer

When pixman is used and no connector could be found (or any other
error), drm_backend_create() tried to destroy a gbm_device that would
only be created in init_egl(), resulting in a segfault.

Signed-off-by: Emmanuel Gil Peyrot <emmanuel.peyrot@collabora.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agocompositor-drm: Write a name in the mode generated from a modeline
Emmanuel Gil Peyrot [Mon, 2 May 2016 21:40:11 +0000 (22:40 +0100)]
compositor-drm: Write a name in the mode generated from a modeline

The current behaviour leaves the name empty, making it somewhat harder
to determine the characteristics of this mode from a debugger.

Signed-off-by: Emmanuel Gil Peyrot <emmanuel.peyrot@collabora.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
[Pekka: wrap long line (ybakos)]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agocompositor-drm: Remove unused output reference in drm_fb
Emmanuel Gil Peyrot [Mon, 2 May 2016 21:40:10 +0000 (22:40 +0100)]
compositor-drm: Remove unused output reference in drm_fb

Signed-off-by: Emmanuel Gil Peyrot <emmanuel.peyrot@collabora.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agocompositor: surface and view output comment fixes
Pekka Paalanen [Wed, 30 Mar 2016 11:33:33 +0000 (14:33 +0300)]
compositor: surface and view output comment fixes

weston_surface::output and weston_view::output as used for different
purposes. Only the surface output is used for frame callbacks.

The uses of the view output are much more vague and hard to describe.

Also fix a comment mistake in weston_surface_assign_output().

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Armin Krezović <krezovic.armin@gmail.com>
[Pekka: more verbose on the compositor.h comments]

8 years agocompositor: fix comments about weston_compositor::surface_list
Pekka Paalanen [Wed, 30 Mar 2016 11:08:24 +0000 (14:08 +0300)]
compositor: fix comments about weston_compositor::surface_list

a7af70436b7dccfacd736626d6719b3e751fd985 converted the surface list into
a view list. There is no weston_compositor::surface_list anymore.

It looks like weston_surface::output's comment about surface list does
not apply to view list. Still, many places assume weston_surface::output
is not NULL when processing "visible" surfaces, e.g. those reachable via
the view list.

The comment on weston_view::output is updated. It seems there is no
longer any requirement for it to be NULL if the view is not in
view_list.

weston_view::link is documented to be in weston_compositor::view_list,
and weston_compositor::view_list is documented to contain weston_views.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Armin Krezović <krezovic.armin@gmail.com>
[Pekka: removed also the other "Must be NULL" comment.]

8 years agoeventdemo: use %u for uint32_t printing
Pekka Paalanen [Fri, 13 May 2016 11:07:20 +0000 (14:07 +0300)]
eventdemo: use %u for uint32_t printing

I was confused why timestamp was printed negative. This fixes it, and
others while at it.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Benoit Gschwind <gschwind@gnu-log.net>
8 years agoeventdemo: do not print axis events if not requested
Pekka Paalanen [Tue, 12 Apr 2016 10:53:55 +0000 (13:53 +0300)]
eventdemo: do not print axis events if not requested

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Tested-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Benoit Gschwind <gschwind@gnu-log.net>
Tested-by: Benoit Gschwind <gschwind@gnu-log.net>
8 years agoeventdemo: use zalloc
Pekka Paalanen [Tue, 12 Apr 2016 10:49:53 +0000 (13:49 +0300)]
eventdemo: use zalloc

Zero-initialize the struct, just in case.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Tested-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Benoit Gschwind <gschwind@gnu-log.net>
Tested-by: Benoit Gschwind <gschwind@gnu-log.net>
8 years agoeventdemo: do not print pointer frames alone
Pekka Paalanen [Tue, 12 Apr 2016 10:33:09 +0000 (13:33 +0300)]
eventdemo: do not print pointer frames alone

Print pointer frames only if any pointer related events are printed
first.

This avoids flooding the output with "pointer frame" just because of
motion. You can test this with e.g.
  $ ./weston-eventdemo --log-button

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Tested-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Benoit Gschwind <gschwind@gnu-log.net>
Tested-by: Benoit Gschwind <gschwind@gnu-log.net>
8 years agodata: Some client icons
Bryce Harrington [Fri, 25 Mar 2016 00:57:39 +0000 (17:57 -0700)]
data: Some client icons

This adds an alternate weston terminal icon and icons for the flower and
editor clients.  The original Inkscape SVG file is included.

Example screenshot:
  http://www.bryceharrington.org/Files/weston-icons.png

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
8 years agoivi-layout: clarify get_layers_under_surface doc
Pekka Paalanen [Tue, 12 Apr 2016 14:16:26 +0000 (17:16 +0300)]
ivi-layout: clarify get_layers_under_surface doc

This is derived from the implementation. I was not sure whether "under"
referred to object relationships or region intersections.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Emre Ucan <eucan@de.adit-jv.com>
8 years agoivi-shell-user-interface: ignore all but first seat
Pekka Paalanen [Mon, 9 May 2016 14:13:50 +0000 (17:13 +0300)]
ivi-shell-user-interface: ignore all but first seat

This client should support binding to multiple seats, but as it does
not, make a quick and dirty fix to ignore all seats beyond the first
one.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Emre Ucan <eucan@de.adit-jv.com>
8 years agomain: let load_wayland_backend() clean up on error
Benoit Gschwind [Tue, 10 May 2016 20:47:57 +0000 (22:47 +0200)]
main: let load_wayland_backend() clean up on error

weston_wayland_backend_config_release() does not bother reinitializing
the structure, it simply frees what is there. This leads to a structure
containing garbage, which might be a surprise.

Require, that if load_wayland_backend_config() fails, the caller must
call weston_wayland_backend_config_release() regardless.

Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
[Pekka: rewrote commit message]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agomain: rename new_config arg of weston_wayland_backend_config_add_new_output
Benoit Gschwind [Tue, 10 May 2016 20:47:56 +0000 (22:47 +0200)]
main: rename new_config arg of weston_wayland_backend_config_add_new_output

Rename new_config to config to follow legacy naming scheme.

Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agomain: rename new_config arg of weston_wayland_backend_config_release
Benoit Gschwind [Tue, 10 May 2016 20:47:55 +0000 (22:47 +0200)]
main: rename new_config arg of weston_wayland_backend_config_release

Rename new_config to config to follow legacy naming scheme.

Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agomain: rename wayland_backend_config_release function
Benoit Gschwind [Tue, 10 May 2016 20:47:53 +0000 (22:47 +0200)]
main: rename wayland_backend_config_release function

Rename the wayland_backend_config_release function to
weston_wayland_backend_config_release to follow legacy naming scheme.

Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
[Pekka: rebased]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agomain: rename wayland_backend_config_add_new_output function
Benoit Gschwind [Tue, 10 May 2016 20:47:52 +0000 (22:47 +0200)]
main: rename wayland_backend_config_add_new_output function

Rename wayland_backend_config_add_new_output to
weston_wayland_backend_config_add_new_output to follow the legacy naming
scheme.

Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
[Pekka: rebased]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agomain: replace and remove new_config in load_wayland_backend_config
Benoit Gschwind [Tue, 10 May 2016 20:47:51 +0000 (22:47 +0200)]
main: replace and remove new_config in load_wayland_backend_config

Remove the unseless intermediate variable new_config in the function
load_wayland_backend_config, replacing it by the renamed parameter
'config'.

Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
[Pekka: Squashed in "compositor-wayland: rename out_config arg of load_wayland_backend_config".]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agomain: rename load_wayland_backend_config arg "config" to wc
Benoit Gschwind [Tue, 10 May 2016 20:47:50 +0000 (22:47 +0200)]
main: rename load_wayland_backend_config arg "config" to wc

Rename the load_wayland_backend_config arg "config" to use this name for
another variable in the following patch. It also follow the legacy
naming scheme.

Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agocompositor-wayland: move configuration parsing to weston main.c
Benoit Gschwind [Tue, 10 May 2016 20:47:49 +0000 (22:47 +0200)]
compositor-wayland: move configuration parsing to weston main.c

Move function load_wayland_backend_config,
wayland_backend_config_add_new_output, wayland_backend_config_release,
weston_wayland_output_config_init from compositor-wayland.c to main.c.
Not a single character is changed in those functions.

Create a glue function load_wayland_backend to use moved functions and
following the new load_*_backend style.

Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
Acked-by: Quentin Glidic <sardemff7+git@sardemff7.net>
[Pekka: removed left-over entry from load_backend().]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agocompositor-wayland: add versionning to config structure
Benoit Gschwind [Tue, 10 May 2016 20:47:48 +0000 (22:47 +0200)]
compositor-wayland: add versionning to config structure

The patch use temporary code that prepare the patch:
"compositor-wayland: move configuration parsing to weston main.c"

Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
8 years agocompositor-wayland: rename misleading output arg of weston_wayland_output_config_init
Benoit Gschwind [Tue, 10 May 2016 20:47:47 +0000 (22:47 +0200)]
compositor-wayland: rename misleading output arg of weston_wayland_output_config_init

Rename the misleading output argument to output_config in the
weston_wayland_output_config_init function.

Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
8 years agocompositor-wayland: rename wayland_output_init_from_config
Benoit Gschwind [Tue, 10 May 2016 20:47:46 +0000 (22:47 +0200)]
compositor-wayland: rename wayland_output_init_from_config

Rename wayland_output_init_from_config to weston_wayland_output_config_init
to prepare the following patch :
"compositor-wayland: move configuration parsing to weston"

Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
[Pekka: drop a useless comment]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agocompositor-wayland: fix spacing and lines wraping
Benoit Gschwind [Tue, 10 May 2016 20:47:44 +0000 (22:47 +0200)]
compositor-wayland: fix spacing and lines wraping

Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
[Pekka: squashed with "compositor-wayland: fix too long lines".]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
8 years agodrm: port the drm backend to the new init api
Giulio Camuffo [Fri, 29 Apr 2016 22:40:34 +0000 (15:40 -0700)]
drm: port the drm backend to the new init api

Preparing for libweston and for the separation of the code base into
libweston vs. weston the compositor, we must remove all uses
weston_config structures from the backends. We have decided that all
option and config input happens in the compositor (main.c), and
configuration is passed in for the backends as structs.

Most other backends have already converted, and this patch converts the
DRM-backend to the libweston-style init API.

The libweston-style init API includes a header for each backend (here
compositor-drm.h) defining the configuration interface. The compositor
(main.c) prepares a configuration struct to be passed through libweston
core to the backend during initialization.

A complication with the DRM-backend is that outputs can be hotplugged,
and their configuration needs to be fetched from the compositor
(main.c). For this, the config struct contains a callback member. The
output configuration API is subject to change later, this is just a
temporary API to get libweston forward.

As weston_compositor's user_data was not previously used for anything,
and the output configuration callback needs data, the user_data is set
to the 'config' pointer. This pointer is only used in
drm_configure_output() in main.c.

[Bryce: lots of stuff and rebasing]
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Tested-by: Benoit Gschwind <gschwind@gnu-log.net>
[Pekka: write commit message]
[Pekka: squash in "drm: Don't hang onto the backend config object
post-backend_init" from Bryce Harrington]
[Pekka: drop the compositor.h hunk]
[Pekka: do not #include inside extern "C"]
[Pekka: remove incorrect comment about weston_drm_backend_config
ownership.]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agocompositor: refactor into convert_size_by_transform_scale()
Pekka Paalanen [Tue, 26 Apr 2016 12:50:59 +0000 (15:50 +0300)]
compositor: refactor into convert_size_by_transform_scale()

There were two copies of code applying transform and scale to size.
Refactor the code to use just one copy in a new function.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
8 years agocompositor: constify weston_surface_build_buffer_matrix()
Pekka Paalanen [Tue, 26 Apr 2016 12:50:58 +0000 (15:50 +0300)]
compositor: constify weston_surface_build_buffer_matrix()

Makes it easier to see that it does not change weston_surface state
implicitly.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
8 years agoreleasing: Correct documentation for script name
Bryce Harrington [Wed, 4 May 2016 21:58:24 +0000 (14:58 -0700)]
releasing: Correct documentation for script name

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
8 years agocompositor-wayland: put configuration structure in separate header
Benoit Gschwind [Thu, 28 Apr 2016 18:33:15 +0000 (20:33 +0200)]
compositor-wayland: put configuration structure in separate header

Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
[Pekka: moved #include out of extern "C".]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agocompositor-wayland: split backend_init
Benoit Gschwind [Thu, 28 Apr 2016 18:33:14 +0000 (20:33 +0200)]
compositor-wayland: split backend_init

Extract configuration parsing from init_backend function. The new
init_backend start by generating the configuration structure from
configuration file with separated function and then use this structure
to load the backend.

Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
[Pekka: rebased]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agocompositor-wayland: split wayland_output_create_for_config
Benoit Gschwind [Thu, 28 Apr 2016 18:33:12 +0000 (20:33 +0200)]
compositor-wayland: split wayland_output_create_for_config

The splitting intend to separate configuration parsing from output
setup.

Introduces struct weston_wayland_backend_output_config.

Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
[Pekka: squashed "wayland-backend: define output configuration
structure" into this.]
[Pekka: fix fullscreen output scale back to 1.]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agocompositor-wayland: move config parsing in create_cursor
Benoit Gschwind [Thu, 28 Apr 2016 18:33:11 +0000 (20:33 +0200)]
compositor-wayland: move config parsing in create_cursor

Move configuration parsing from create_cursor to backend_init. Use newer
configuration structure to initialize the cursor in create_cursor.

Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agocompositor-wayland: use new config struture to create backend
Benoit Gschwind [Thu, 28 Apr 2016 18:33:10 +0000 (20:33 +0200)]
compositor-wayland: use new config struture to create backend

Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agocompositor-wayland: fix memory leak of display_name
Benoit Gschwind [Thu, 28 Apr 2016 18:33:09 +0000 (20:33 +0200)]
compositor-wayland: fix memory leak of display_name

Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agocompositor-wayland: create a basic config structure to use in new init API
Benoit Gschwind [Thu, 28 Apr 2016 18:33:08 +0000 (20:33 +0200)]
compositor-wayland: create a basic config structure to use in new init API

Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agolibinput: Remove unused static values
Daniel Stone [Wed, 4 May 2016 09:04:33 +0000 (10:04 +0100)]
libinput: Remove unused static values

default_seat and default_seat_name are not used anywhere in this file.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
8 years agoweston.pc: Properly specify Requires.private
Quentin Glidic [Tue, 5 Apr 2016 08:11:32 +0000 (10:11 +0200)]
weston.pc: Properly specify Requires.private

We include wayland-server.h, pixman.h and xkbcommon.h in compositor.h,
but they are not required for linking if the plugin doesn’t use them.

Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Signed-off-by: Daniel Stone <daniels@collabora.com>
8 years agoconfigure.ac: bump to version 1.10.91 for the alpha release
Bryce Harrington [Wed, 4 May 2016 01:35:32 +0000 (18:35 -0700)]
configure.ac: bump to version 1.10.91 for the alpha release

8 years agocompositor.h: Add shell_interface.get_output_work_area
Quentin Glidic [Wed, 23 Mar 2016 12:50:49 +0000 (13:50 +0100)]
compositor.h: Add shell_interface.get_output_work_area

This will allow plugins to be aware of e.g. panels, to avoid covering
them with other surfaces.

Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agox11: Fix incorrect output counting logic
Bryce Harrington [Tue, 3 May 2016 08:34:23 +0000 (01:34 -0700)]
x11: Fix incorrect output counting logic

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
8 years agox11: port the x11 backend to the new init api
Benoit Gschwind [Sat, 16 Apr 2016 03:28:31 +0000 (20:28 -0700)]
x11: port the x11 backend to the new init api

Use a "well" defined structure to configure x11-backend and move configuration
file parsing inside the weston compositor code.

Enforce destruction of all backend config objects after initialization.
Since the backend config struct versioning implies that there we expect
potential future descrepancy between main's definition of the config
object and the backend's, don't allow the backend to hang onto the
config object outside the initialization scope.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Benoit Gschwind <gschwind@gnu-log.net>
Tested-by: Benoit Gschwind <gschwind@gnu-log.net>
8 years agoheadless-backend: fix leak of transform configuration
Benoit Gschwind [Fri, 29 Apr 2016 13:21:54 +0000 (15:21 +0200)]
headless-backend: fix leak of transform configuration

Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
[Pekka: fixed the mispelling in subject]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agocompositor: Hyphenate compound adjective surface-local
Yong Bakos [Thu, 28 Apr 2016 16:59:10 +0000 (11:59 -0500)]
compositor: Hyphenate compound adjective surface-local

See https://lists.freedesktop.org/archives/wayland-devel/2016-April/028249.html.

Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
8 years agoivi-application: Hyphenate compound adjective surface-local
Yong Bakos [Thu, 28 Apr 2016 16:59:09 +0000 (11:59 -0500)]
ivi-application: Hyphenate compound adjective surface-local

See https://lists.freedesktop.org/archives/wayland-devel/2016-April/028249.html.

Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
8 years agoivi-layout: Correct coordinate adjective grammar, misspellings
Yong Bakos [Thu, 28 Apr 2016 16:59:08 +0000 (11:59 -0500)]
ivi-layout: Correct coordinate adjective grammar, misspellings

Hyphenate 'multi screen' coordinates, and correct misspellings and
grammar within changed lines.

See https://lists.freedesktop.org/archives/wayland-devel/2016-April/028249.html.

Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
8 years agofullscreen-shell: Use 'surface-local' to correct grammar
Yong Bakos [Thu, 28 Apr 2016 16:59:07 +0000 (11:59 -0500)]
fullscreen-shell: Use 'surface-local' to correct grammar

Correct the pluralization by simplifying with 'surface-local'.

See https://lists.freedesktop.org/archives/wayland-devel/2016-April/028249.html.

Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
8 years agodesktop-shell: Use 'surface-local' to correct grammar
Yong Bakos [Thu, 28 Apr 2016 16:59:06 +0000 (11:59 -0500)]
desktop-shell: Use 'surface-local' to correct grammar

Correct the pluralization by simplifying with 'surface-local'.

See https://lists.freedesktop.org/archives/wayland-devel/2016-April/028249.html.

Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
8 years agofbdev-backend: refactor configuration API
Benoit Gschwind [Wed, 27 Apr 2016 21:56:42 +0000 (23:56 +0200)]
fbdev-backend: refactor configuration API

Implement a "well" defined API to configure the fbdev backend.
Following and according to discussion about libweston API

The output transform configuration is moved into weston and added to the
fbdev configuration structure.

Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
[Pekka: squashed two patches and rebased.]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agocompositor-fbdev: make copy of the device string
Pekka Paalanen [Thu, 28 Apr 2016 12:12:25 +0000 (15:12 +0300)]
compositor-fbdev: make copy of the device string

Ensuring that the pointer to the device path stays valid gets harder and
harder with migrating to the libweston-style config handling. Therefore,
make a copy of the string, private to struct fbdev_output.

Now the pointer passed in to fbdev_output_create() could be freed right
after the call returns.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Benoit Gschwind <gschwind@gnu-log.net>
8 years agolinux-dmabuf: Keep checking planes even if the first doesn't support lseek
Derek Foreman [Mon, 25 Apr 2016 14:23:24 +0000 (09:23 -0500)]
linux-dmabuf: Keep checking planes even if the first doesn't support lseek

If we break; when lseek fails we can fail to do some legitimate tests
on remaining planes in a multi-plane buffer.

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
8 years agoman: Clarify weston.ini scale option
Yong Bakos [Mon, 25 Apr 2016 12:04:32 +0000 (07:04 -0500)]
man: Clarify weston.ini scale option

Add explanations of scaling that are a bit more approachable for users.

Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=94824
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agocompositor-rdp: refactor configuration API
Benoit Gschwind [Fri, 22 Apr 2016 15:05:26 +0000 (17:05 +0200)]
compositor-rdp: refactor configuration API

Implement a "well" defined API to configure the rdp backend.
Following according to discution about libweston API.

Signed-off-by: Benoit Gschwind <gschwind@gnu-log.net>
Reviewed-by: David FORT <rdp.effort@gmail.com>
[Pekka: added missing headers to Makefile.am]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agoclients/nested: fix undefined reference to xzalloc
U. Artie Eoff [Fri, 22 Apr 2016 20:11:12 +0000 (13:11 -0700)]
clients/nested: fix undefined reference to xzalloc

Include shared/xalloc.h in clients/nested.c to fix
compilation error: undefined reference to `xzalloc'

Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agobuild: Add (and use) an AC_SEARCH_LIBS wrapper
Quentin Glidic [Sat, 23 Apr 2016 10:02:58 +0000 (12:02 +0200)]
build: Add (and use) an AC_SEARCH_LIBS wrapper

AC_SEARCH_LIBS is the recommended macro for these checks, unfortunately,
we use AC_CHECK_LIB instead, and even AC_CHECK_FUNC, when only one
AC_SEARCH_LIBS would be enough.

This wrapper macro is used much like PKG_CHECK_MODULES, as it defines
(and AC_SUBST) the PREFIX_LIBS variable itself.

It also avoids adding unnecessary stuff to LIBS.

Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Tested-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agobuild: actually use CLOCK_GETTIME_LIBS for libzunitc
Gustavo Zacarias [Fri, 22 Apr 2016 13:54:35 +0000 (10:54 -0300)]
build: actually use CLOCK_GETTIME_LIBS for libzunitc

The fix/check in 34d59859 is incomplete.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agobuild: add check for clock_gettime() in librt
Gustavo Zacarias [Thu, 21 Apr 2016 14:18:48 +0000 (11:18 -0300)]
build: add check for clock_gettime() in librt

zuctest is another clock_gettime() user that fails to link against librt when
necessary.

Instead of adding another -lrt LDADD entry i've opted for the saner way and
converted the check to a configure test that will set CLOCK_GETTIME_LIBS
appropiately and replaced all instances of -lrt with it.
Built-tested against old and new glibc.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agotests: check for NULL surface in keyboard and pointer handlers
Pekka Paalanen [Thu, 21 Apr 2016 13:47:20 +0000 (16:47 +0300)]
tests: check for NULL surface in keyboard and pointer handlers

When a test destroys a wl_surface, it is still possible to get events
referring to the destroyed surface. The surface in such cases will be
NULL.

Handle NULL surface gracefully in keyboard and pointer enter/leave
handlers. Touch-down handler is already NULL-safe.

This fixes a SEGV in a test I am writing for wp_viewport.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
8 years agoweston-info: look for the right wp_presentation
Pekka Paalanen [Tue, 19 Apr 2016 13:16:29 +0000 (16:16 +0300)]
weston-info: look for the right wp_presentation

Patch b00c79b587a4903df576008a64a49f851fed234c forgot to update the
global interface name to look for. Fix it.

This makes weston-info report the presentation clock again.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
8 years agoinput: Don't try to send axis_source when there are no resources
Jonas Ådahl [Thu, 21 Apr 2016 02:21:48 +0000 (10:21 +0800)]
input: Don't try to send axis_source when there are no resources

The focus_client pointer may be NULL here if the focused client has no
pointer resources. To avoid a crash, NULL check focus client before
proceeding to send the events.

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

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Mike Blumenkrantz <zmike@osg.samsung.com>
8 years agodata-device: Update current action even if source version is old
Jonas Ådahl [Tue, 15 Mar 2016 07:23:50 +0000 (15:23 +0800)]
data-device: Update current action even if source version is old

If the version of the source object is old enough to not have
wl_data_source.set_actions() the current action would never be updated
since source->set_actions would never be set.

To fix this, instead of checking whether source->set_actions before
proceeding with updating the current action, just always update the
action when we know all parts are valid dnd data device objects.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
8 years agodesktop-shell: Get rid of some unused fields
Jonas Ådahl [Tue, 15 Mar 2016 06:06:26 +0000 (14:06 +0800)]
desktop-shell: Get rid of some unused fields

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Mike Blumenkrantz <zmike@osg.samsung.com>
8 years agodesktop-shell: Unset the shell surface owner when it goes away
Jonas Ådahl [Fri, 26 Feb 2016 06:02:06 +0000 (14:02 +0800)]
desktop-shell: Unset the shell surface owner when it goes away

On client destruction, the shell object may be destroyed before the
shell surface objects. If this happens to two surfaces of the same
client, and one surface being destroyed results in the focus being
switched to the other, this would trigger a ping event.

The ping event sending function relies on having a valid owner, and if
the shell would be destoryed prior to the shell surface, we'd crash in
this function.

Solve this by unsetting the owner pointer when the shell client goes
away and early out in the ping event sending function if the owner is
gone.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Mike Blumenkrantz <zmike@osg.samsung.com>
8 years agoheadless: port the headless backend to the new init api
Benoit Gschwind [Sat, 16 Apr 2016 03:28:32 +0000 (20:28 -0700)]
headless: port the headless backend to the new init api

refactor configuration API of headless-backend

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
v6:
  - Define version number in the header
  - Don't use leading underscores in header guards
  - Add stub config_init_to_defaults()
  - Allocate config on stack
  - Drop unused display_name parameter
  - Add error message when config is invalid
  - Install compositor-headless.h and list it in headless-backend sources
v5:
  - Update to current trunk
  - Fixed typo 'struct weston_wayland_backend_config'
  - Dropped unused variables
  - Dropped weston_headless_backend_config_create() in favor of
    directly zalloc'ing the object
  - Dropped weston_headless_backend_load() in favor of the more
    generalized load_backend_new().
  - Dropped typedef from header
  - Restored use of 'backend_init' entry point
  - Backend_init() takes a base weston_backend_config object
  - Renamed 'param' to 'config' in a few places for consistency
  - Renamed 'headless_options' variable to 'options for consistency
  - Version the base struct
  - Free config on error
  - Don't free config during backend_init normal operations
  - Adjust header ordering
  - Make header guard naming consistent with other headers
  - Light reformatting for code style and consistency with other
    backend config patches

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com>
[Pekka: rebased to apply before drm and x11 backends]
[Pekka: squashed in the headless part of "Enforce destruction of all
backend config objects after initialization"]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agomain: document load_backend_new()
Bryce Harrington [Sat, 16 Apr 2016 03:28:36 +0000 (20:28 -0700)]
main: document load_backend_new()

Split from the patch "Enforce destruction of all backend config objects
after initialization".

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agoRevert 'main: Remove unused function load_backend_new()'
Bryce Harrington [Sat, 16 Apr 2016 03:28:27 +0000 (20:28 -0700)]
Revert 'main: Remove unused function load_backend_new()'

This reverts commit 5ffbfffaf7758c33791978516d0a1100773b85e2.

Restore load_backend_new() for use with libweston backend configuration.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agocompositor: Version the backend configuration structures
Bryce Harrington [Sat, 16 Apr 2016 03:28:29 +0000 (20:28 -0700)]
compositor: Version the backend configuration structures

With this struct versioning, it is possible to add new options without
breaking the ABI, as long as all additions are made to the end of a
struct and nothing existing is modified or removed.  When things are
added, the structure's size will increase, and we'll use this size as
our minor version number.  If existing things need to be changed, then
the major version, struct_version, is incremented to indicate the ABI
break.

From our call sites in main these major and minor version will be
recorded as struct_version and struct_size.  Each backend will then
verify these against its own assumptions.  So long as the backend's
struct is equal or larger than what was passed in and the major versions
are equal, we're good; but if it is larger, then this is a fatal error.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
v6:
 - Document refs for alternatives/assumptions for backend configs
v5:
 - Move the header changes to a pre-requisite patch from the drm backend

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
[Pekka: bring back the archive links Bryce looked up.]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agocompositor: Drop unneeded create_output callback
Bryce Harrington [Sat, 16 Apr 2016 03:28:28 +0000 (20:28 -0700)]
compositor: Drop unneeded create_output callback

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agodrm: Spelling fix in comment
Bryce Harrington [Sat, 16 Apr 2016 03:28:26 +0000 (20:28 -0700)]
drm: Spelling fix in comment

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com>
8 years agoMakefile: fix systemd-notify plugin CFLAGS
Pekka Paalanen [Tue, 5 Apr 2016 11:08:11 +0000 (14:08 +0300)]
Makefile: fix systemd-notify plugin CFLAGS

SYSTEMD_DAEMON_LIBS does not belong in CFLAGS, but SYSTEMD_DAEMON_CFLAGS
does. Fix that.

Add the missing COMPOSITOR_CFLAGS. Otherwise compiling the plugin will
use the system wayland-server.h when it should be using the one pointed
to by pkg-config.

The latter fixes the build for me, as my system libwayland-server is
older than what Weston and this plugin require, and the correct version
is only found in my install $prefix.

Cc: Egor Starkov <egor.starkov@ge.com>
Cc: Eugen Friedrich <efriedrich@de.adit-jv.com>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
8 years agoivi-layout: clear on_layer when layer_destroy
Wataru Natsume [Mon, 11 Apr 2016 12:34:52 +0000 (21:34 +0900)]
ivi-layout: clear on_layer when layer_destroy

On_layer of ivi_layout_surface should be NULL in the layer_destroy.
Previous code might access to removed ivilayer and cause SEGV.

Signed-off-by: Wataru Natsume <wataru_natsume@xddp.denso.co.jp>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>