Quentin Glidic [Fri, 2 Dec 2016 13:21:46 +0000 (14:21 +0100)]
weston: Properly namespace modules entrypoint
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Quentin Glidic [Fri, 2 Dec 2016 13:20:35 +0000 (14:20 +0100)]
libweston: Properly namespace modules entrypoint
Use different functions so we cannot load a libweston common module in
weston directly or the other way around.
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Quentin Glidic [Fri, 2 Dec 2016 13:08:44 +0000 (14:08 +0100)]
libweston: Properly namespace backends entrypoint
This prevents loading a backend as a simple module. This will avoid
messing up with backends when we will introduce libweston common
modules.
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Quentin Glidic [Thu, 18 Aug 2016 08:58:58 +0000 (10:58 +0200)]
Makefile.am: Link modules to libweston.la
Modules are using libweston symbols (at least weston_log) and should
explicitly link to it.
This patch also reorders some flags.
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Fabien Dessenne [Tue, 17 Jan 2017 16:17:21 +0000 (17:17 +0100)]
compositor-drm: allow mode frequency selection
As an option, allow to specify a mode (from the configuration file) by
its refresh rate.
Example of valid syntax:
- "mode=1920x1080" Select a 1920x1080 mode, refresh rate undefined.
- "mode=1920x1080@60" Select the (or one of the) 1920x1080 60 Hz mode.
Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Quentin Glidic [Sat, 17 Dec 2016 12:40:51 +0000 (13:40 +0100)]
libweston: Position layers in an absolute way
Currently, layers’ order depends on the module loading order and it does
not survive runtime modifications (like shell locking/unlocking).
With this patch, modules can safely add their own layer at the expected
position in the stack, with runtime persistence.
v4 Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com>
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Acked-by: Daniel Stone <daniels@collabora.com>
[Pekka: fix three whitespace issues]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Pekka Paalanen [Mon, 19 Dec 2016 14:33:40 +0000 (16:33 +0200)]
xwm: delete dead flags from weston_wm_window_draw_decorations()
Obviously unused. Looks like weston_wm_window_activate() is doing that
job.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Pekka Paalanen [Mon, 19 Dec 2016 13:51:12 +0000 (15:51 +0200)]
xwm: postpone geometry dirtying from pending.opaque
Changing the opaque region has no immediate effect, therefore there is
no need to mark the view geometry dirty.
The view geometry will be invalidated automatically by the next commit
from Xwayland, in weston_surface_commit_state(). The dirtying did not
apply pending state.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Pekka Paalanen [Mon, 19 Dec 2016 13:18:45 +0000 (15:18 +0200)]
xwm: debug print deleted property name
Use wm_log_continue() to avoid printing the timestamp in the middle of a
message.
Print the name of the property that got deleted.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Pekka Paalanen [Mon, 19 Dec 2016 13:10:01 +0000 (15:10 +0200)]
xwm: debug changes to override-redirect flag
For every event we handle and that delivers the override-redirect flag,
print it to debug log.
Add a comment to one code path explaining when it gets hit, because it
is unobvious. It also serves as a reminder that we do not handle changes
to the OR flag after Window creation.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Pekka Paalanen [Thu, 15 Dec 2016 14:04:14 +0000 (16:04 +0200)]
xwm: move set_title and set_pid
Move the calls to set_title() and set_pid() out of
weston_wm_window_read_properties() and into the three callers, each
slightly different.
xserver_map_shell_surface(): already calls these functions after
creating the shell surface, so no need to add calls.
weston_wm_handle_map_request(): can be called only on unmapped (in X11)
Windows, so no need to add calls.
weston_wm_window_draw_decoration(): window->shsurf and window->surface
are either both set or both NULL, so the check for window->shsurf is
removed when moving the set_title() and set_pid() calls under a
window->surface check.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Pekka Paalanen [Thu, 15 Dec 2016 13:37:24 +0000 (15:37 +0200)]
xwm: move frame_set_title() into draw_decoration()
The only thing using the frame title is frame_repaint(). Move the call
to frame_set_title() from weston_wm_window_read_properties() into
weston_wm_window_draw_decoration() where the only call to
frame_repaint() is.
Do not check for window->name == NULL, because frame_set_title() handles
NULL just fine. Also, once window->name becomes set, it cannot become
NULL again unless strndup() fails. The name string can be reset to
the empty string in any case.
This change is prompted by future refactoring where at
weston_wm_window_read_properties() time the frame might not have been
created yet.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Pekka Paalanen [Thu, 1 Dec 2016 15:07:12 +0000 (17:07 +0200)]
xwm: clarify props[] in weston_wm_window_read_properties()
The props array contained offsets to struct members. It is convenient
for writing static const arrays as you only store a constant offset and
compute the pointer later. However, the array was not static to begin
with, the atoms are not build time constants. We can as well just store
the pointer directly in the array.
Entries that did not use the offset had bogus offsets, producing
pointers to arbitrary fields. They are changed to have a NULL pointer.
If the code unintentionally used the pointer, it will now explode rather
than corrupt memory.
Also explain the use of the #defined constants and #undef them when they
get out of scope. This clearly documents that they are just a convenient
hack to avoid lots of special cases in the function.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Pekka Paalanen [Thu, 1 Dec 2016 13:41:11 +0000 (15:41 +0200)]
xwm: detect legacy fullscreen on MapRequest
The legacy fullscreen state needs to be detected at MapRequest time,
because that is when the X11 client has alredy set up the initial window
state.
Doing it at xserver_map_shell_surface() meant that it would be done as a
response to Xwayland creating the wl_surface and XWM receiving the
WL_SURFACE_ID ClientMessage, whichever came later. At that point the X11
client might still be setting things up in theory, though in practice
most of the X11 communication has already happened when
xserver_map_shell_surface() gets called.
The real reason for this is to clean up xserver_map_shell_surface() from
everything that would affect drawing the decorations. This patch is one
part of that clean-up.
The weston_output_weak_ref logic is not put into compositor.h, because
there are no other users for it at this time. We need to protect against
the output going away.
A side-effect of this patch is that saved_width and saved_height will
now get overwritten also for legacy fullscreen windows. Previously, they
were left to zero as far as I could tell.
NOTE: This stops override-redirect legacy fullscreen windows from being
detected as fullscreen. MapRequest processing does not happen for OR
windows. These windows get detected as type XWAYLAND instead.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Pekka Paalanen [Mon, 28 Nov 2016 14:37:07 +0000 (16:37 +0200)]
libweston-desktop/xwayland: debug commits
Helps tracking what happens with XWM.
Use the same debugging guard as XWM.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Pekka Paalanen [Mon, 28 Nov 2016 14:42:25 +0000 (16:42 +0200)]
xwayland: WM debug prints
Add WM debug prints on map, decoration drawing and geometry setting.
These help see the sequence and timing of operations, when debugging
Xwayland window management glitches.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Armin Krezović [Fri, 9 Dec 2016 21:58:27 +0000 (22:58 +0100)]
compositor-wayland: Support building without EGL
Signed-off-by: Armin Krezović <krezovic.armin@gmail.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Dima Ryazanov [Wed, 30 Nov 2016 20:10:55 +0000 (12:10 -0800)]
window: Check for NULL surface in keyboard_handle_enter
This can happen if you right-click in weston-terminal a few times very quickly.
The pointer_handle_enter callback already checks for NULL, so let's do that in
keyboard_handle_enter, too.
Signed-off-by: Dima Ryazanov <dima@gmail.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Quentin Glidic [Thu, 23 Jun 2016 19:00:31 +0000 (21:00 +0200)]
editor: Drop g_type_init() call
HAVE_PANGO is not in any AC_DEFINE(), so the check is just wrong.
g_type_init() was never called, which is fine since GLib 2.36 anyway.
It is better not to have a wrong usage of HAVE_PANGO here.
Just check for GLib 2.36 in configure.ac instead.
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Quentin Glidic [Wed, 4 Jan 2017 18:15:47 +0000 (19:15 +0100)]
man/weston.ini: Fix panel-position
It was renamed from panel-location in
55d5701ddf018887a30d9ddede38550967da61bc, and gained a few possible
values.
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Daniel Stone [Mon, 16 Jan 2017 13:18:21 +0000 (13:18 +0000)]
desktop-shell: Support panel-position 'none'
The manpage claims that none is valid, so let's make it so.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Daniel Stone [Mon, 16 Jan 2017 13:22:15 +0000 (13:22 +0000)]
desktop-shell: Initialise panel surface listener
The desktop-shell output destroy code assumes that we always set up a
panel listener. Initialise its list explicitly, so if we don't have a
panel, then we can still unconditionally destroy the listener on output
destroy.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Emmanuel Gil Peyrot [Sun, 15 Jan 2017 17:54:56 +0000 (17:54 +0000)]
desktop-shell: Stop asking for a RGB565 background
This makes the background image look much nicer, at the expense of
slightly more memory bandwidth used.
Signed-off-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Daniel Stone [Tue, 29 Nov 2016 12:03:35 +0000 (12:03 +0000)]
compositor-x11: Remove support for ancient XCB
We had two non-pkg-config check paths in the configure script, to
support XCB functionality used before XCB had had an accompanying
release: xcb_poll_for_queued_event (released in 1.8, 2012), and a
usable XKB event mechanism (released in 1.9, 2013).
Convert the former to a version-based hard dependency, and the latter to
a version-based soft dependency. This avoids two compiler checks.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Yann E. MORIN [Mon, 19 Dec 2016 17:20:09 +0000 (18:20 +0100)]
configure: search for lib with clock_getres()
Like clock_gettime(), clock_getres() is in -lrt for glibc < 2.17.
Add a check for it, like is done for clock_gettime().
Fixes:
http://autobuild.buildroot.net/results/bce/
bcecdbbce4a99eb1e9bfbf519857bf94d8952037/
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Emmanuel Gil Peyrot [Sun, 4 Dec 2016 21:34:56 +0000 (21:34 +0000)]
autoconf: Fix AC_MSG_RESULT message when disabling features
Some variables were previously only set inside conditions, making their
output empty.
Signed-off-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Abdur Rehman [Sun, 1 Jan 2017 14:46:46 +0000 (19:46 +0500)]
xwayland: fix three minor typos
Signed-off-by: Abdur Rehman <arehmanq199@gmail.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Abdur Rehman [Sun, 1 Jan 2017 14:46:45 +0000 (19:46 +0500)]
wcap: fix a typo in README
Signed-off-by: Abdur Rehman <arehmanq199@gmail.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Abdur Rehman [Sun, 1 Jan 2017 14:46:44 +0000 (19:46 +0500)]
zunitc: fix a typo in a comment
Signed-off-by: Abdur Rehman <arehmanq199@gmail.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Abdur Rehman [Sun, 1 Jan 2017 14:46:43 +0000 (19:46 +0500)]
zunitc: fix a couple of typos
- even -> event
- attatch -> attach
Signed-off-by: Abdur Rehman <arehmanq199@gmail.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Abdur Rehman [Sun, 1 Jan 2017 14:46:42 +0000 (19:46 +0500)]
shared: fix a typo in a comment
Signed-off-by: Abdur Rehman <arehmanq199@gmail.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Abdur Rehman [Sun, 1 Jan 2017 14:46:41 +0000 (19:46 +0500)]
shared/helpers.h: fix a typo in a comment
Signed-off-by: Abdur Rehman <arehmanq199@gmail.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Abdur Rehman [Sun, 1 Jan 2017 14:46:40 +0000 (19:46 +0500)]
releasing: fix a typo
Fix duplicate word "the".
Signed-off-by: Abdur Rehman <arehmanq199@gmail.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Abdur Rehman [Sun, 1 Jan 2017 14:46:39 +0000 (19:46 +0500)]
protocol: fix grammar
a icon -> an icon
Signed-off-by: Abdur Rehman <arehmanq199@gmail.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Abdur Rehman [Sun, 1 Jan 2017 14:46:38 +0000 (19:46 +0500)]
notes: fix a typo
pratically -> practically
Signed-off-by: Abdur Rehman <arehmanq199@gmail.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Abdur Rehman [Sun, 1 Jan 2017 14:46:37 +0000 (19:46 +0500)]
man: fix grammar
an user -> a user
Signed-off-by: Abdur Rehman <arehmanq199@gmail.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Abdur Rehman [Sun, 1 Jan 2017 14:46:36 +0000 (19:46 +0500)]
compositor: fix a minor typo
emited -> emitted
Signed-off-by: Abdur Rehman <arehmanq199@gmail.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Abdur Rehman [Sun, 1 Jan 2017 14:46:35 +0000 (19:46 +0500)]
compositor-drm: fix a couple of typos
Signed-off-by: Abdur Rehman <arehmanq199@gmail.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Abdur Rehman [Sun, 1 Jan 2017 14:46:34 +0000 (19:46 +0500)]
ivi-shell: fix minor typos
- ivi-shell/hmi-controller.c:41: a to an
- ivi-shell/hmi-controller.c:1296: Duplicated 'a'
- ivi-shell/ivi-layout-export.h:28: An to A
Signed-off-by: Abdur Rehman <arehmanq199@gmail.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Abdur Rehman [Sun, 1 Jan 2017 14:46:33 +0000 (19:46 +0500)]
desktop-shell: fix a typo
Signed-off-by: Abdur Rehman <arehmanq199@gmail.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Abdur Rehman [Sun, 1 Jan 2017 14:46:32 +0000 (19:46 +0500)]
configure.ac: correct text
Fix duplicate occurrence of "and".
Signed-off-by: Abdur Rehman <arehmanq199@gmail.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Abdur Rehman [Sun, 1 Jan 2017 14:46:31 +0000 (19:46 +0500)]
clients: fix a couple of trivial typos
Signed-off-by: Abdur Rehman <arehmanq199@gmail.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Daniel Stone [Fri, 9 Dec 2016 16:27:54 +0000 (16:27 +0000)]
compositor: Assign new views to the primary plane
When we create a new view, assign it to the primary plane from the
beginning.
Currently, every view across the compositor will be assigned to a plane
during every repaint cycle of every output: the DRM renderer's
assign_planes hook will either move a view to a drm_plane, or to the
primary plane if a suitable drm_plane could not be found for the output
it is on. There are no other assign_planes implementation, and the
fallback when none is provided, is to assign every view to the primary
plane.
DRM's behaviour is undesirable in multi-output situations, since it
means that views which were on a plane on one output will be demoted to
the primary plane; doing this causes damage, which will cause a spurious
repaint for the output. This spurious repaint will have no effect on the
other output, but it will do the same demotion of views to the primary
plane, which will again provoke a repaint on the other output.
With a simple fix for this behaviour (i.e. not moving views which are
only visible on other outputs), the following behaviour is observed:
- outputs A and B are present
- views A and B are created for those outputs respectively, with SHM
buffers attached; view->plane == NULL for both
- current buffer content for views A and B are uploaded to the
renderer
- output A runs its repaint cycle, and sets keep_buffer to false on
surface B's output, as it can never be promoted to a plane; it does
not move view B to another plane
- output B runs its repaint cycle, and moves view B to the primary
plane
- weston_view_assign_to_plane has work to do (as the plane is changing
from NULL to the primary plane), calls weston_surface_damage and
calls weston_surface_damage
- weston_surface_damage re-uploads buffer content, possibly from
nowhere at all;
e508ce6a notes that this behaviour is broken
Assigning views to the primary plane when created makes it possible to
fix the DRM assign_planes implementation: assign_planes will always set
keep_buffer to true if there is any chance the buffer can ever be
promoted to a plane, regardless of view configruation. If the buffer
cannot be promoted to a plane, it must by definition never migrate from
the primary plane. This means that there is no opportunity to hit the
same issue, where the buffer content has already been discarded, but
weston_view_assign_to_plane is not a no-op.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Daniel Stone [Fri, 21 Oct 2016 17:05:37 +0000 (18:05 +0100)]
compositor-drm: Reshuffle and comment plane conditions
Try to harmonise the various plane-import paths a little bit, starting
with reshuffling and commenting the conditions to do so.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Armin Krezović <krezovic.armin@gmail.com>
Differential Revision: https://phabricator.freedesktop.org/D1413
Daniel Stone [Tue, 8 Nov 2016 15:47:09 +0000 (15:47 +0000)]
Remove DPMS-on when going offscreen
Forcing DPMS on when we lose our session may force an expensive modeset
operation, which is pointless if the next consumer (another compositor,
or the console) is going to do a modeset. These should force DPMS on
regardless.
This actively causes problems for the DRM backend, in that it may
actually require a repaint to set coherent state for DPMS off -> DPMS on
transitions, which is very much not what we want when going offscreen.
As DRM is the only backend which actually implements DPMS, just remove
this call.
Differential Revision: https://phabricator.freedesktop.org/D1483
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Daniel Stone [Sat, 5 Nov 2016 08:10:13 +0000 (08:10 +0000)]
compositor-drm: Remove open-coded weston_compositor_wake
This always changes the state to ACTIVE when we enter the session,
whereas the previous implementation preserved the state (i.e. if state
was SLEEPING on exit, it would be restored to SLEEPING, but also with a
repaint). This seems more helpful behaviour, however: if you enter a
session, it's probably in order to interact with it.
Differential Revision: https://phabricator.freedesktop.org/D1482
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Daniel Stone [Sat, 5 Nov 2016 08:04:07 +0000 (08:04 +0000)]
compositor-drm: Delete drm_backend_set_modes
Even if we do have a framebuffer matching the mode, we immediately
schedule a repaint, meaning we either do work for no reason, or show
stale content before we bring up the new content.
Delete this and just let repaint deal with it.
Differential Revision: https://phabricator.freedesktop.org/D1481
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Armin Krezović <krezovic.armin@gmail.com>
Daniel Stone [Mon, 14 Nov 2016 17:45:58 +0000 (17:45 +0000)]
compositor-drm: Store width and height inside drm_fb
This will be used so we can later determine the compatibility of drm_fbs
without needing to introspect external state.
Differential Revision: https://phabricator.freedesktop.org/D1487
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Armin Krezović <krezovic.armin@gmail.com>
Daniel Stone [Mon, 14 Nov 2016 17:43:57 +0000 (17:43 +0000)]
compositor-drm: Use signed int for width/height
This makes it sign-compatible with weston_output->{width,height}.
Differential Revision: https://phabricator.freedesktop.org/D1486
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Armin Krezović <krezovic.armin@gmail.com>
Daniel Stone [Mon, 30 Nov 2015 16:07:19 +0000 (16:07 +0000)]
compositor-drm: Use fb->fd consistently
Everyone else uses fb->fd rather than pulling the FD back out of GBM.
Use that in the destroy callback too.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Armin Krezović <krezovic.armin@gmail.com>
Differential Revision: https://phabricator.freedesktop.org/D1406
Daniel Stone [Fri, 4 Nov 2016 17:24:06 +0000 (17:24 +0000)]
compositor-drm: Extract EGL destroy to helper
No functional change.
Differential Revision: https://phabricator.freedesktop.org/D1484
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Armin Krezović <krezovic.armin@gmail.com>
Daniel Stone [Sat, 28 Nov 2015 12:07:36 +0000 (12:07 +0000)]
compositor-drm: Simplify drm_sprite_crtc_supported
No need to walk the CRTC list every time looking for CRTC indices, when we
already have the CRTC index stashed away. Taking the plane as an argument
also simplifies things a little for callers, and future-proofs for a
potential future KMS API which passes a list of supported CRTC IDs rather
than a bitmask of supported CRTC indices.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Armin Krezović <krezovic.armin@gmail.com>
Differential Revision: https://phabricator.freedesktop.org/D1407
Daniel Stone [Sat, 28 Nov 2015 12:09:47 +0000 (12:09 +0000)]
compositor-drm: Comment struct members
Clarify the difference between crtc_id (DRM object) and pipe (index into
drmModeRes->crtcs array, possible_crtcs bitmask).
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Armin Krezović <krezovic.armin@gmail.com>
Differential Revision: https://phabricator.freedesktop.org/D1405
Giulio Camuffo [Thu, 8 Dec 2016 08:21:08 +0000 (09:21 +0100)]
libweston-desktop: don't crash when getting the pid for X clients
X client's don't have a wl_client associated with their
weston_desktop_client, so make sure to not use it.
Signed-off-by: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Daniel Stone [Tue, 29 Nov 2016 11:05:49 +0000 (11:05 +0000)]
tests: Skip Xwayland test if binary isn't available
We know we're not going to succeed if the binary isn't installed, so
skip the test in that case.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Daniel Stone [Mon, 28 Nov 2016 12:13:54 +0000 (12:13 +0000)]
libweston: Make module loading safe against long paths
Avoid any buffer overflows here by checking we don't go over PATH_MAX
with stupid module names.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Daniel Stone [Thu, 24 Nov 2016 15:31:33 +0000 (15:31 +0000)]
compositor-wayland: Destroy cursor images earlier
Destroying a wl_cursor will attempt to access the wl_display, which
we have just freed. Avoid a segfault by destroying the cursor images
before we destroy the display.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dima Ryazanov <dima@gmail.com>
Daniel Stone [Thu, 24 Nov 2016 15:30:41 +0000 (15:30 +0000)]
Don't prepend protocol/ to include paths
No need to add protocol/, as it's already handled by an explicit
compiler include path.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Dima Ryazanov <dima@gmail.com>
Bryce Harrington [Mon, 21 Nov 2016 21:26:23 +0000 (13:26 -0800)]
editor: Load a file if specified on command line
Add support for basic text file loading, to facilitate more expansive
testing of its UTF-8 text editing support.
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Bryce Harrington [Mon, 21 Nov 2016 21:26:22 +0000 (13:26 -0800)]
editor: Use parse_options() from shared for command line options
Also add a basic --help option
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Daniel Stone [Mon, 28 Nov 2016 16:05:35 +0000 (16:05 +0000)]
compositor-wayland: Set frame callback for Pixman
Fixing
89c2f637b9, also set the output's frame_cb for the Pixman
renderer, not just GL. Fixes a segfault when using compositor-wayland
with --use-pixman.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Dima Ryazanov <dima@gmail.com>
Dima Ryazanov [Thu, 24 Nov 2016 02:41:00 +0000 (18:41 -0800)]
gl-renderer: Fix an invalid write when closing a Weston window
Call eglMakeCurrent before destroying the native EGL window, similar to what
other sample clients are already doing.
Signed-off-by: Dima Ryazanov <dima@gmail.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Dima Ryazanov [Thu, 24 Nov 2016 13:13:12 +0000 (05:13 -0800)]
compositor-wayland: Fix a use after free
When a window is being closed, the frame_done callback often runs after
the output is already destroyed, i.e:
wayland_output_start_repaint_loop
input_handle_button
wayland_output_destroy
frame_done
To fix this, destroy the callback before destroying the output.
(Also, fix the type of output in frame_done: it's passed in
a wayland_output, not a weston_output.)
Signed-off-by: Dima Ryazanov <dima@gmail.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Pekka Paalanen [Tue, 15 Nov 2016 12:24:21 +0000 (14:24 +0200)]
libweston-desktop/xwayland: add is_mapped handling for XWAYLAND
The xwayland window type XWAYLAND is not handled by the shell at all,
instead libweston-desktop maps such surfaces itself. However, it forgot
to set weston_surface::is_mapped and weston_view::is_mapped.
weston_surface::is_mapped affects the behaviour of weston_view_unmap()
and weston_surface_attach().
weston_view::is_mapped affects the behaviour of weston_view_unmap() and
weston_view_destroy().
When manually mapping a window of type XWAYLAND, mark both the view and
surface as mapped. This follows the expections in libweston, even though
the meaning of is_mapped is not clearly defined for either surface or
view.
Also, when the XWAYLAND window is manually unmapped, unmap the
weston_surface. This updates weston_surface::is_mapped to reflect the
state. However, as a side-effect it will also unmap all sibling views,
should any exist.
v2: rename surface_base to wsurface
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Acked-by: Daniel Stone <daniels@collabora.com>
Pekka Paalanen [Tue, 15 Nov 2016 10:22:09 +0000 (12:22 +0200)]
libweston-desktop/xwayland: XWAYLAND surfaces are never 'added'
Add documentation (asserts) that show that windows of types XWAYLAND are
never registered with the shell.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Pekka Paalanen [Tue, 15 Nov 2016 09:48:42 +0000 (11:48 +0200)]
libweston-desktop/xwayland: clarify 'added' logic
Setting to a constant is much easier to read and grep for than setting to
a computed variable.
There are no functional changes.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Pekka Paalanen [Tue, 15 Nov 2016 09:43:36 +0000 (11:43 +0200)]
libweston-desktop/xwayland: window type XWAYLAND cannot have a parent
Add an assert to ensure that a window of type XWAYLAND is never
attempted with a parent. Following the code though, the assert can be
made even stricter by allowing only TRANSIENT to have a parent.
This is essentially adding documentation.
v2: use stricter assert
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Pekka Paalanen [Mon, 14 Nov 2016 13:38:43 +0000 (15:38 +0200)]
XWM: debug position and size on map request
Helps debugging initial placement problems.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Pekka Paalanen [Mon, 14 Nov 2016 12:30:57 +0000 (14:30 +0200)]
XWM: debug position on create_notify
Helps debugging X11 window positioning issues.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Ryo Munakata [Thu, 24 Nov 2016 10:05:07 +0000 (19:05 +0900)]
compositor-x11: fix segfault when use_pixman is true
Signed-off-by: Ryo Munakata <ryomnktml@gmail.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Daniel Stone [Wed, 23 Nov 2016 18:48:23 +0000 (18:48 +0000)]
Don't include version.h from compositor.h
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewd-by: Bryce Harrington <bryce@osg.samsung.com>
Daniel Stone [Tue, 22 Nov 2016 12:40:34 +0000 (12:40 +0000)]
tests: Extend subsurface place_{above,below} hierarchy
Following on from
b8c16c995b, extend the family tree being tested by
place_above and place_below a little, ensuring that subsurfaces can't be
placed above or below surfaces which are related to them, but aren't
their immediate parent or sibling.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Pekka Paalanen [Wed, 23 Nov 2016 09:46:57 +0000 (11:46 +0200)]
build: fix wayland-backend distcheck
Fix the following error from 'make distcheck':
CC libweston/wayland_backend_la-compositor-wayland.lo
../../libweston/compositor-wayland.c:54:51: fatal error: xdg-shell-unstable-v6-client-protocol.h: No such file or directory
#include "xdg-shell-unstable-v6-client-protocol.h"
Files generated with the scanner belong in nodist_*_SOURCES, not with
the regular sources.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Derek Foreman [Tue, 22 Nov 2016 19:00:38 +0000 (13:00 -0600)]
weston-terminal: Fix crash on first keystroke
Since 894b3rcc634 weston-terminal will crash on first keystroke if you
fail to create an xkb compose state. This can happen if you don't have
a Compose file.
Instead, now we just return uncomposed symbols.
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Arnaud Vrac [Wed, 8 Jun 2016 16:37:57 +0000 (18:37 +0200)]
compositor: allow using nested parent as a subsurface sibling
The parent of a subsurface can be used as a sibling in the place_below
and place_above calls. However this did not work when the parent is
nested, so fix the sibling check and add a test to check this case.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Carlos Garnacho [Mon, 22 Feb 2016 18:42:23 +0000 (19:42 +0100)]
xwayland: Create the drag-and-drop window in weston_wm_dnd_init
Just to keep it hidden so far... A lot of the plumbing necessary to
handle x11->wayland drag and drop is missing, and the current
partial handling gets in the middle for X11 drag-and-drop itself
to work.
The approach is well directed, but needs some further work, till
then, just keep our fake drag-and-drop target hidden. This allows
drag-and-drop to work between X11 clients in Xwayland, and avoids
a crash with (currently unhandled) wl_resource-less data sources.
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=94218
Signed-off-by: Carlos Garnacho <carlosg@gnome.org>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Quentin Glidic [Wed, 10 Aug 2016 13:53:33 +0000 (15:53 +0200)]
libweston: Add move (without scale) animation
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Quentin Glidic [Thu, 23 Jun 2016 16:55:24 +0000 (18:55 +0200)]
desktop-shell/client: Add left/right panel position (basic) support
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Quentin Glidic [Thu, 23 Jun 2016 16:55:23 +0000 (18:55 +0200)]
desktop-shell/client: Introduce helper variables
These variables will be much more useful in the following commit.
The indentation is off to avoid future diff noise.
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Quentin Glidic [Thu, 23 Jun 2016 16:55:22 +0000 (18:55 +0200)]
desktop-shell/client: Parse the clock format once
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Quentin Glidic [Thu, 23 Jun 2016 16:55:21 +0000 (18:55 +0200)]
desktop-shell/client: Use a proper enum for clock format
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Quentin Glidic [Thu, 23 Jun 2016 16:55:20 +0000 (18:55 +0200)]
desktop-shell: Properly position the panel surface
Now weston actually supports putting the panel at the bottom of the
screen.
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Quentin Glidic [Thu, 23 Jun 2016 16:55:19 +0000 (18:55 +0200)]
desktop-shell: Compute panel size without using output
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Quentin Glidic [Thu, 23 Jun 2016 16:55:18 +0000 (18:55 +0200)]
desktop-shell/client: Add bottom panel support
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Bryce Harrington [Mon, 21 Nov 2016 18:02:42 +0000 (10:02 -0800)]
gl: Don't declare variables in for loop
Fixes compilation error introduced by
43cea54c:
libweston/gl-renderer.c:2862:2: error: ‘for’ loop initial declarations
are only allowed in C99 mode
for (unsigned i = 0; i < ARRAY_LENGTH(swap_damage_ext_to_entrypoint);
i++) {
^
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Armin Krezović [Mon, 21 Nov 2016 17:42:42 +0000 (18:42 +0100)]
compositor-wayland: Port to xdg-shell-v6
v2:
- Keep wl_shell code around until xdg_shell is declared stable.
Signed-off-by: Armin Krezović <krezovic.armin@gmail.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Vincent ABRIOU [Thu, 20 Oct 2016 14:20:11 +0000 (16:20 +0200)]
gl-renderer: add support of WL_SHM_FORMAT_YUYV
This patch allow gl-renderer to accept WL_SHM_FORMAT_YUYV buffers.
This is the pixel format supported by most of the USB webcams.
v2:
- fix hsub Vs vsub inversion
Signed-off-by: Vincent Abriou <vincent.abriou@st.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Armin Krezović [Fri, 28 Oct 2016 22:26:45 +0000 (00:26 +0200)]
compositor-x11: Move vfunc setting from set_size to enable
Signed-off-by: Armin Krezović <krezovic.armin@gmail.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Armin Krezović [Sun, 9 Oct 2016 15:30:29 +0000 (17:30 +0200)]
compositor-wayland: Destroy shm buffers on output disable
Reviewed-by: Armin Krezović <krezovic.armin@gmail.com>
Armin Krezović [Sun, 9 Oct 2016 15:30:28 +0000 (17:30 +0200)]
compositor-wayland: Properly clean up on backend destroy
Also remove a wrong XXX comment.
Reviewed-by: Armin Krezović <krezovic.armin@gmail.com>
Armin Krezović [Sun, 9 Oct 2016 15:30:27 +0000 (17:30 +0200)]
compositor-wayland: Simplify fullscreen output surface handling
Reviewed-by: Armin Krezović <krezovic.armin@gmail.com>
Armin Krezović [Sun, 9 Oct 2016 15:30:26 +0000 (17:30 +0200)]
compositor-wayland: Move vfunc setting from set_size to enable
Reviewed-by: Armin Krezović <krezovic.armin@gmail.com>
Silvan Jegen [Thu, 17 Nov 2016 20:43:06 +0000 (21:43 +0100)]
weston-editor: Free preferred_language in text_entry_destroy
Signed-off-by: Silvan Jegen <s.jegen@gmail.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Signed-off-by: Daniel Stone <daniels@collabora.com>
Emil Velikov [Mon, 14 Nov 2016 17:08:19 +0000 (17:08 +0000)]
clients/nested-client: call eglTerminate/eglReleaseThread at exit
Do a minimalistic teardown at program exist.
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Emil Velikov [Mon, 14 Nov 2016 17:08:18 +0000 (17:08 +0000)]
tests/buffer-count-test: teardown after the test
Might be a bit of an overkill, but still. One should cleanup after
themselves.
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Emil Velikov [Mon, 14 Nov 2016 17:08:17 +0000 (17:08 +0000)]
gl-renderer: use weston_platform_destroy_egl_surface wrapper
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Emil Velikov [Fri, 18 Nov 2016 19:12:58 +0000 (19:12 +0000)]
clients/window: use weston_platform_destroy_egl_surface wrapper
v2: Use correct (destroy) API (Dan)
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Emil Velikov [Mon, 14 Nov 2016 17:08:15 +0000 (17:08 +0000)]
clients/subsurfaces: use weston_platform_destroy_egl_surface wrapper
... over a direct eglDestroySurface call. Provides symmetry in the
create/destroy paths.
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Emil Velikov [Mon, 14 Nov 2016 17:08:14 +0000 (17:08 +0000)]
clients/simple-egl: use weston_platform_destroy_egl_surface wrapper
... over a direct eglDestroySurface call. Provides symmetry in the
create/destroy paths.
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Emil Velikov [Mon, 14 Nov 2016 17:08:13 +0000 (17:08 +0000)]
clients/nested-client: destroy the EGL surface during teardown
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>