Commit Graph

5118 Commits

Author SHA1 Message Date
Mateusz Polrola
dada6e3b79 ivi-shell: Remove all surface transitions when it is being removed.
If surface transitions are not removed when surface is being removed, it
can lead to crash later when transition will finish, as it will try to
reference already freed memory.
This change exposes function that can remove all existing transitions
for given surface and it is being called during surface cleanup.

Signed-off-by: Mateusz Polrola <mateuszx.potrola@intel.com>
Reviewed-by: Emre Ucan <eucan@de.adit-jv.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2016-03-15 14:12:06 +02:00
Armin Krezović
c6a55dbf04 desktop-shell: make panel clock configurable
This patch enhances the panel clock by adding a config file
option which can be used to either disable the clock or make
it also show seconds in the current clock format.

v2: Implement suggestions from Pekka:
    - Include Signed-off-by
    - Coding style fixes
    - Implement clock widget allocation by using
      width from cairo_text_extents
    - Highlight config option values in man page
v3: Implement suggestions from Pekka and Bryce:
    - Use CLOCK_FORMAT_* instead of FORMAT_* in the enum
    - Switch to using fixed clock widget size instead
      of one returned from cairo_text_extents
    - Fixes to config option highlighting in the man page
v4: Implement more suggestions from Pekka and Bryce:
    - Improve patch changelog
    - Move the check for CLOCK_FORMAT_NONE into the
      caller function
    - Fix a memory leak in panel_create introduced by
      previous revision of this patch

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=57583
Signed-off-by: Armin Krezović <armin.krezovic@fet.ba>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2016-03-10 14:58:16 -08:00
Bryce Harrington
0d1a622375 clients: Use zalloc
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
2016-03-09 22:54:54 -08:00
Matthias Treydte
cd9424ef2a platform: explicitly cast the return value of weston_platform_get_egl_proc_address
This allows the header to be consumed by C++ compilers, because C++ does
away with C's implicit cast from (void*).
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-03-08 23:23:26 -08:00
Bryce Harrington
38298ec0b4 option-parser: Handle short double-arg options
weston allows both short and long style options to take arguments.  In
the case of short options, allow an optional space between the option
name and value.  E.g., previously you could launch weston this way:

  weston -i2 -cmyconfig.ini

now you can also launch it like this:

  weston -i 2 -c myconfig.ini

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
2016-03-08 16:32:16 -08:00
Emmanuel Gil Peyrot
66e1614122 configure: Make jpeglib an optional dependency.
It doesn’t make sense to fail the entire build when jpeglib isn’t
present, so this commit makes it optional just like libwebp in the
previous one, disabled with --without-jpeg and forced with --with-jpeg.

Signed-off-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-03-07 12:05:52 -08:00
Pekka Paalanen
b00c79b587 protocol: migrate to stable presentation-time.xml
Remove the unstable presentation_timing.xml file, and use
presentation-time.xml from wayland-protocols instead to generate all the
Presentation extension bindings.

The following renames are done according to the XML changes:
- generated header includes
- enum constants and macros prefixed with WP_
- interface symbol names prefixed with wp_
- protocol API calls prefixed with wp_

Clients use wp_presentation_interface.name rather than hardcoding the
global interface name: presentation-shm, weston-info, presentation-test.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
[Pekka: updated wayland-protocols dependency to 1.2]
2016-03-07 13:29:27 +02:00
Ucan, Emre \(ADITG/SW1\)
16d1fa156a ivi-shell: remove ivi_layout_layer_set_dimension API
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
Acked-by: wataru_natsume <wataru_natsume@xddp.denso.co.jp>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-03-04 10:33:35 -08:00
Ucan, Emre \(ADITG/SW1\)
45d3942816 ivi-shell: remove ivi_layout_surface_set_dimension API
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
Acked-by: wataru_natsume <wataru_natsume@xddp.denso.co.jp>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-03-04 10:33:34 -08:00
Ucan, Emre \(ADITG/SW1\)
e62bfd8d5e ivi-shell: remove ivi_layout_layer_set_position API
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
Acked-by: wataru_natsume <wataru_natsume@xddp.denso.co.jp>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-03-04 10:33:34 -08:00
Ucan, Emre \(ADITG/SW1\)
161da40b06 ivi-shell: remove ivi_layout_surface_set_position API
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
Acked-by: wataru_natsume <wataru_natsume@xddp.denso.co.jp>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-03-04 10:33:34 -08:00
Ucan, Emre \(ADITG/SW1\)
5bb068d16d ivi-shell: remove ivi_layout_layer_get_orientation API
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
Acked-by: wataru_natsume <wataru_natsume@xddp.denso.co.jp>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-03-04 10:33:34 -08:00
Ucan, Emre \(ADITG/SW1\)
4d9001bc49 ivi-shell: remove ivi_layout_surface_get_orientation API
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
Acked-by: wataru_natsume <wataru_natsume@xddp.denso.co.jp>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-03-04 10:33:34 -08:00
Ucan, Emre \(ADITG/SW1\)
18691f0310 ivi-shell: remove ivi_layout_layer_get_dimension API
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
Acked-by: wataru_natsume <wataru_natsume@xddp.denso.co.jp>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-03-04 10:33:34 -08:00
Ucan, Emre \(ADITG/SW1\)
c507f67f9e ivi-shell: remove ivi_layout_surface_get_dimension API
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
Acked-by: wataru_natsume <wataru_natsume@xddp.denso.co.jp>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-03-04 10:33:34 -08:00
Ucan, Emre \(ADITG/SW1\)
dfc2d76432 ivi-shell: remove ivi_layout_layer_get_position API
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
Acked-by: wataru_natsume <wataru_natsume@xddp.denso.co.jp>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-03-04 10:33:34 -08:00
Ucan, Emre \(ADITG/SW1\)
b2ff255792 ivi-shell: remove ivi_layout_surface_get_position API
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
Acked-by: wataru_natsume <wataru_natsume@xddp.denso.co.jp>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-03-04 10:33:34 -08:00
Ucan, Emre \(ADITG/SW1\)
c3aee1f67f ivi-shell: remove ivi_layout_layer_get_opacity API
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
Acked-by: wataru_natsume <wataru_natsume@xddp.denso.co.jp>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-03-04 10:33:34 -08:00
Ucan, Emre \(ADITG/SW1\)
995e6fbcd0 ivi-shell: remove ivi_layout_surface_get_opacity API
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
Acked-by: wataru_natsume <wataru_natsume@xddp.denso.co.jp>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-03-04 10:33:34 -08:00
Ucan, Emre \(ADITG/SW1\)
17610f240b ivi-shell: remove ivi_layout_layer_get_visibility API
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
Acked-by: wataru_natsume <wataru_natsume@xddp.denso.co.jp>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-03-04 10:33:34 -08:00
Ucan, Emre \(ADITG/SW1\)
c6a138c6f0 ivi-shell: remove ivi_layout_surface_get_visibility API
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
Acked-by: wataru_natsume <wataru_natsume@xddp.denso.co.jp>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-03-04 10:33:27 -08:00
Wataru Natsume
9d8b4414d7 hmi-controller: fix leak of ivi surface list
get_surfaces_on_layer() allocates memory and stores the pointer to
'ivisurfs'. But it was not freed.

Signed-off-by: Wataru Natsume <WATARU_NATSUME@xddp.denso.co.jp>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2016-03-04 13:45:31 +02:00
Wataru Natsume
9c926fe9f5 remove warning of ivisurface reassign on the ivilayer
The warning of ivisurface reassign can be removed. It is ok to reassign
a surface to a layer it is already on.

The warning started to show up during normal operations since patch
"hmi-controller: remove duplicate commit_changes in random mode".

Signed-off-by: Wataru Natsume <WATARU_NATSUME@xddp.denso.co.jp>
[Pekka: rewrote commit message, removed unneeded comments.]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2016-03-04 13:35:37 +02:00
Wataru Natsume
161255ea49 hmi-controller: remove duplicate commit_changes in random mode
Previous code cleaned up surfaces in layer once and then added
surfaces to a layer in random. In this flow, two commitchanges are
required.

Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
[WATARU_NATSUME@xddp.denso.co.jp: Removes unnecessary check]
Signed-off-by: Wataru Natsume <WATARU_NATSUME@xddp.denso.co.jp>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2016-03-04 13:22:17 +02:00
Chris Michael
7e7f793174 libinput-device: Remove unnecessary function call
When we handle keyboard key events, we already retrieve the key state
at the top of this function, so there is no real need to call the same
libinput function again as we can just reuse the 'key_state' variable
that we have above.

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2016-02-26 15:30:16 +02:00
Jon A. Cruz
c25f72d8e9 tests: cleanup test runner script.
Cleaned up test runner script to unify sections launching weston.
This makes the sections more legible and differences easier to spot.

Signed-off-by: Jon A. Cruz <jonc@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2016-02-23 16:08:13 +02:00
Pekka Paalanen
35552aafc7 Makefile: handle also stable wayland-protocols
Fix the protostability function to handle stable protocol files
correctly. Stable protocol XML file names do not have 'stable' in their
name, nor do we want to write that in the prerequisite lists in the
Makefile.

Function 'protoname' does not need fixing, because for stable protocol
prerequisites, the sed pattern will not match, and it passes stem
through as is, which is correct.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-02-23 14:21:00 +02:00
Pekka Paalanen
2e49794f0f Makefile: move presentation_timing source out of toytoolkit
Toytoolkit sources don't actually use the presentation_timing client
protocol bindings for anything. Apparently they were there only because
that's how they end up in BUILT_SOURCES.

Move them from toytoolkit sources to BUILT_SOURCES where also other such
things are.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-02-23 14:20:22 +02:00
Bryce Harrington
3f2062ccb2 config-parser: Check malloc and strdup returns
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Marek Chalupa <mchqwerty@gmail.com>
2016-02-22 13:30:51 -08:00
Emmanuel Gil Peyrot
58b7a156c5 configure: Make WebP support togglable, and improve its error message.
The current way was enabling WebP support whenever libwebp was found,
giving no way to the user to disable it if they had the library
installed but didn’t want to link against it.  This adds a
--without-webp configure option to never link against it, and a
--with-webp one to fail the build if it isn’t found, the default being
to use it if it is present.

Additionally, we now tell the user when WebP support has been disabled
and they try to load a WebP file.

Signed-off-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-02-19 18:33:00 -08:00
Christopher Michael
e1719c7891 libinput-device: Remove unnecessary function call
When we handle pointer button events, we already retrieve the button
state at the top of this function, so there is no real need to call
the same function again as we can just reuse the 'button_state'
variable that we have above.

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-02-19 18:30:40 -08:00
Manuel Bachmann
f989c38a5e build: Require dbus for systemd-login
systemd-login support requires dbus (see "dbus.h" header in
"launcher-logind.c") but the configure script was only
checking libsystemd-login availability to define the
HAVE_SYSTEMD_LOGIN macro, which results in undefined
symbols in launcher-unit.

Put the systemd-login checks after the dbus ones, and only
run the checks if it is present. Also mention dbus in the
error message if "--enable-systemd-login" was forced.

Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-02-16 22:21:00 -08:00
Derek Foreman
bbde643ecd shell: Don't send extra configure events on click
The click_to_activate handler fires on every mouse click for a surface
so let's be a little quicker to early return if you're clicking on the
surface that already has activation.

This prevents (among other side effects) the sending of two xdg_configure
events for every mouse click.

This should also make having two seats with keyboards behave in the same
way as a single seat.  Previously the second seat could have a keyboard
focus on the surface and prevent some of the extra processing (including
the extra configure events) from taking place.

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-02-16 21:55:46 -08:00
Bryce Harrington
f6c854ef80 configure.ac: bump to version 1.10.90 for open development
Master is open for new feature development again.
2016-02-16 17:14:08 -08:00
Bryce Harrington
d45de283ce configure.ac: bump to version 1.10.0 for the official release 2016-02-16 12:37:43 -08:00
Bryce Harrington
9d24f23e4d releasing.txt: Script now figures out release name on its own 2016-02-11 15:23:33 -08:00
Bryce Harrington
07d0d386da configure.ac: bump to version 1.9.93 for the RC1 release 2016-02-09 13:36:00 -08:00
Derek Foreman
6c19b69fcc compositor-drm: the cursor plane only supports ARGB
Keep XRGB apps out of the cursor plane, only ARGB is supported.

This prevents programs like weston-simple-shm from landing in the cursor
plane and being misrendered.

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2016-02-09 13:07:22 -08:00
Derek Foreman
b0427569fd compositor-drm: update internal cursor plane location when disabling cursor
When the cursor plane is disabled the kernel can lose its location.
If we don't update our internal idea of where the plane is at that time,
the next time we set a cursor it can show up at 0,0.

This can show up when an application is put in the cursor plane, removed
from the plane, then put back at the same location.  It might show up at
0,0 when it's reinstated.

We now use INT32_MIN as a location for disabled cursors so enabling the
plane will always cause an update.

Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
2016-02-09 13:04:31 -08:00
Marek Chalupa
345b4f5b11 compositor-x11: send pointer frame after axis event
clients that implement pointer interface of version 5
wait for the frame event, so without it the scrolling
does not work (GTK+ clients do not scroll now for example).
Xcb axis events are discrete, so it's fine to send
frame after every single axis event

Signed-off-by: Marek Chalupa <mchqwerty@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-02-09 13:01:56 -08:00
Derek Foreman
4e18448286 xwm: Don't clear the selection if it has no text type available
weston maintains a copy of the most recently selected "thing" - it picks
the first available type when it copies, and saves that one only.

When an application quits weston will make the saved selection active.

When xwm sees the selection set it will check if any of the offered types
are text.  If no text type is offered it will clear the selection.

weston then interprets this in the same way as an application exiting and
causing the selection to be unset, and we get caught in a live lock with
both weston and xwayland consuming as much cpu as they can.

The simple fix is to just remove the test for text presence.

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
2016-02-04 16:10:36 -08:00
Bryce Harrington
22b1f93432 shell: Check more thoroughly for undefined surface resource
The surface can have an undefined resource in certain situations (such
as with xwayland).  So, since NULL is a valid state for this parameter,
and since the wl_resource_*, etc. calls require their parameters to be
non-NULL, make a practice of always checking the surface resource before
making wayland calls.

update v2:
  * Fix some c/p errors for pointer names
  * Drop null ptr check in add_popup_grab; probably redundant now

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
2016-02-03 19:05:12 -08:00
Nobuhiko Tanibata
90c2789e8d ivi-layout: apply opacity to weston_view correctly
update_opacity is only called when a ivi-surface is visible. But the
previous code also checks event masks redundantly. However if the event
happens when ivi-surface is invisible, opacity is not calculated. This
patch removes this redundant check to fix potential bug.

Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2016-02-03 14:29:03 +02:00
Bryce Harrington
0cc4e98669 configure.ac: bump to version 1.9.92 for the beta release 2016-02-02 15:34:56 -08:00
Bryce Harrington
2c40d1d30e input: Fix crash when touchscreen generates out of screen coordinate
With change 61ed7b6b, global touch coordinates are being passed to the
touch grab.  However, touch->grab is undefined in certain circumstances
such as when the touch screen raises an axis X value larger than the
maximum expected.  Move the check for this condition earlier, before our
first use of the pointer.

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

Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
2016-02-02 10:36:44 -08:00
Carlos Garnacho
4061e2b67e data-device: Check harder for selection/non-wayland sources
We're not always dealing with weston_data_sources that have a
wl_resource, or data_sources that belong to drag-and-drop. Check
harder for these on the drag-and-drop code paths triggered from
common code.

Signed-off-by: Carlos Garnacho <carlosg@gnome.org>
2016-02-01 13:22:34 -08:00
Carlos Garnacho
beb7a9f92d xwayland: zalloc the x11_data_sources
The wrapped weston_data_source struct has new fields which were left
uninitialized, so its access is unreliable.

The data source in xwayland/dnd.c should be eventually setting the
drag-and-drop actions, but it is a lot more incomplete than that
(read: completely), so falls out of the scope of this patch.

Signed-off-by: Carlos Garnacho <carlosg@gnome.org>
2016-02-01 13:22:33 -08:00
Carlos Garnacho
15902bf47a clipboard: zalloc the clipboard_source
The wrapped weston_data_source struct has new fields which were left
uninitialized, so its access is unreliable.

Signed-off-by: Carlos Garnacho <carlosg@gnome.org>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com
Tested-by: Derek Foreman <derekf@osg.samsung.com>
2016-02-01 13:22:30 -08:00
Derek Foreman
8efa31b289 input: Don't try to send pointer frames if no focus_client
Prevents a segfault when mousing into clients that don't get_pointer
like weston-simple-shm and weston-simple-damage.

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Marek Chalupa <mchqwerty@gmail.com>
2016-02-01 22:29:36 +08:00
Bryce Harrington
1abf5e43b5 releasing: register_release now inserts the email announcement urls 2016-01-20 12:37:45 -08:00