summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2015-02-26compositor: remove dead code from weston_output_move()Pekka Paalanen1-4/+0
Also fixes a theoretical memory leak as the region was never fini'd. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-02-26compositor: note, weston_surface_damage does it wrongPekka Paalanen2-0/+13
The fix is not trivial, so I want to document the problem before I forget about it again. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-02-26compositor: document view->transform.* regionsPekka Paalanen1-0/+6
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-02-25pixman-renderer: implement surface_copy_contentPekka Paalanen1-0/+52
Changes in v2: - remove stride and format arguments from the API Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> v1 Tested-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> Reviewed-by: Daniel Stone <daniels@collabora.com>
2015-02-25gl-renderer: implement surface_copy_contentPekka Paalanen1-0/+149
Taking the easy way, always do a rendering pass when copying any real buffer or texture. Will handle YUV formats, and makes it easy to always return data the right y-direction up. All the FBO GL state is created and torn down on every invocation, so this is a pretty naive implementation. If there was a wl_shm buffer giving the content to the surface, and the stride of the buffer was greater than width * bytes_per_pixel, then this implementation will return stride long rows, not width. Changes in v2: - simplify pack_color() - remove stride and format from the API Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> v1 Tested-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> Reviewed-by: Daniel Stone <daniels@collabora.com>
2015-02-25gl-renderer: add BUFFER_TYPE_SOLIDPekka Paalanen1-0/+4
Add a new buffer type identifying the solid color contents which do not have a real buffer. Solid color surfaces now pretend to have 1x1 pixel content data. This helps the future surface_get_data_size() implementation. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Tested-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> Reviewed-by: Daniel Stone <daniels@collabora.com>
2015-02-25timeline: use file_create_dated() helperPekka Paalanen1-21/+16
Use shared code for this kind of stuff. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Tested-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> Reviewed-by: Daniel Stone <daniels@collabora.com>
2015-02-25compositor: add surface-shooting APIPekka Paalanen2-1/+123
This is an optional API that will be implemented by the renderers. It allows to fetch the current contents of a surface, essentially the buffer contents from a client buffer, converted to an RGBA format. This is meant as a debugging API. The implementations may be heavy and cause a stall, so they are not intended to be used often during normal operations. Renderers are expected to convert whatever data a surface has to a single RGBA format. Changes in v2: - remove stride and format arguments from the API Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> v1 Tested-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> Reviewed-by: Daniel Stone <daniels@collabora.com>
2015-02-24compositor: turn weston_view boundingbox into maskedPekka Paalanen4-10/+6
weston_view::transform.boundingbox is made to include the layer mask, which removes the need for masked_boundingbox. The following were using boundingbox when they should have used masked_boundingbox: - drm_output_prepare_overlay_view() uses boundingbox to compute overlay position, source and destination coordinates. - drm_assign_planes() uses boundingbox for view overlap checks. - is_view_not_visible() uses boundingbox, but nothing will show outside the layer mask. - weston_surface_assign_output() intersects boundingbox with output region to choose the primary output for a surface. - weston_view_assign_output() intersects boundingbox with output region to pick the outputs the view is on. This patch essentially changes all those cases to use the masked boundingbox. Therefore there are no cases which would need the boundingbox without the layer mask, and we can convert boundingbox into masked and remove the left-over member. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> [v2: don't move the decl of 'mask' in weston_view_update_transform] Reviewed-By: Giulio Camuffo <giuliocamuffo@gmail.com>
2015-02-24compositor: turn weston_view::transform.opaque into maskedPekka Paalanen2-7/+5
Turns out there were no users of weston_view::transform.opaque, everything was already using transform.masked_opaque. Therefore repurpose transform.opaque as masked_opaque, and remove masked_opaque member. Now this opaque region in global coordinates is clipped by the layer mask, if set. There are no cases where you would need the opaque region without the effect of layer mask. Also add a note in compositor.h, that changing view's layer counts as changing geometry, which requires calling weston_view_geometry_dirty() to let all derived state update. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-By: Giulio Camuffo <giuliocamuffo@gmail.com>
2015-02-24compositor: add a doc note for weston_view::parent_viewPekka Paalanen1-0/+2
It is used by sub-surfaces only, for fetching the root view's weston_layer. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-By: Giulio Camuffo <giuliocamuffo@gmail.com>
2015-02-19compositor: refactor to weston_output_schedule_repaint_reset()Pekka Paalanen1-13/+22
No functional changes. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Daniel Stone <daniels@collabora.com>
2015-02-19headless: fix the output refresh ratePekka Paalanen1-1/+1
60 millihertz is a bit low, let's make it 60 Hz as it was supposed to be. When the new repaint scheduling algorithm gets implemented, this fixes 'make check' taking almost 3 minutes instead of the normal 3 seconds, when running with 7 millisecond repaint window. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Daniel Stone <daniels@collabora.com>
2015-02-18compositor: document weston_view_damage_below()Pekka Paalanen2-1/+17
Explains what weston_view::clip is. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
2015-02-12weston-egl-ext: Define EGL tokens harder for old MesaDaniel Stone1-5/+23
Older versions of Mesa provided header definitions for the EGL_WL_bind_wayland_display extension, but an earlier version of the extension which only provided the (un)bind entrypoints, and not QueryWaylandBuffer. Detect this half-provision and make sure we export the QueryWaylandBuffer definitions as well. Fixes build failure with EGL on Ubuntu 12.04. Signed-off-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com> Reviewed-by: Pekka Paalanen <ppaalanen@gmail.com>
2015-02-11input: store the grab serial of the keyboardGiulio Camuffo1-2/+7
The serial can be checked against the one passed to wl_shell.set_popup or equivalent. Reviewed-by: Daniel Stone <daniels@collabora.com>
2015-02-04compositor-x11: Move the x11 window close to an idle handlerDerek Foreman1-2/+30
The input loop is actually dispatched in the middle of the frame repaint. When the X11 event results in closing the compositor, this can cause the current output to be destroyed just prior to trying to process animations on it. We fix this by handling the window close event in an idle callback. NOTE: this requires a patch for wayland that moves the idle handler dispatch to after epoll_wait in the event loop processing. Closes bug: https://bugs.freedesktop.org/show_bug.cgi?id=81314 Signed-off-by: Derek Foreman <derekf@osg.samsung.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
2015-02-04Fix "Back", "Forward", and other special mouse buttons in the X11 compositor.Dima Ryazanov1-2/+5
They're off by 4 because of the scroll buttons. Signed-off-by: Dima Ryazanov <dima@gmail.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2015-02-04libinput: Only forward first and last press and release for a keyJonas Ådahl1-0/+11
Keyboard key events will be received from a device where a key has been pressed, even though an equivalent key has been pressed (same key code) on a device connected to the same seat. notify_key() expects to only be called as if there was only one keyboard device associated with the given seat, so to achieve this, ignore every event where forwarding it would result in multiple 'pressed' or 'released' notifications. Signed-off-by: Jonas Ådahl <jadahl@gmail.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
2015-02-04libinput: Only forward first and last press and release for a buttonJonas Ådahl1-0/+11
Pointer button events will be received from a device where a button has been pressed, even though an equivalent button has been pressed (same button code) on a device connected to the same seat. notify_button() expects to only be called as if there was only one pointer device associated with the given seat, so to achieve this, ignore every event where forwarding it would result in multiple 'pressed' or 'released' notifications. Signed-off-by: Jonas Ådahl <jadahl@gmail.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Daniel Stone <daniels@collabora.com>
2015-02-02xwm: support maximizing xwayland windowsGiulio Camuffo1-0/+1
This patch adds the maximize button to the window frame for the windows which set the MWM_DECOR_MAXIMIZE hint, and it wires it with the shell via a new method in weston_shell_interface. Additionally, it also listens for the wm hints coming from the client, but it doesn't support maximizing a window only vertically or horizontally. The window will be maximized only when both directions are maximized. Reviewed-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-02-02screenshooter: remove useless castDerek Foreman1-2/+1
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
2015-01-27Revert "compositor-x11: Move the x11 event handler to the display loop"Bryce Harrington1-3/+1
This reverts commit 6deb09ef8a72164947cdfa5f2414e292c7672c9c. (Derek says he has an improved version in the works.)
2015-01-27compositor-x11: Move the x11 event handler to the display loopDerek Foreman1-1/+3
While it conceptually makes sense to put the x11 event handler in the compositor "input" loop, the input loop is actually dispatched in the middle of the frame repaint. When the X11 event results in closing the compositor, this can cause the current output to be destroyed just prior to trying to process animations on it. Closes bug: https://bugs.freedesktop.org/show_bug.cgi?id=81314 Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
2015-01-20Fix mutex hang in colord on output removalOlivier Fourdan1-8/+4
Using the x11 output (maybe with others as well), weston would hang when closing the output if the colord plugin is enabled. The hang occurs in mutex lock in the output notifier handler because the given GMutex value is incorrect. This is because of a cast error, the type of container should be "cms_output" and not "cms_colord". Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> Reviewed-by: Richard Hughes <richard@hughsie.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-01-20build: install a login manager session entryLubomir Rintel1-0/+5
This makes it possible to run Weston session from GDM (and possibly other login managers).
2015-01-20zoom: Check the value of level before using it.Carlos Olmedo Escobar1-1/+2
Check the value of level before dividing 1 by it. Signed-off-by: Carlos Olmedo Escobar <carlos.olmedo.e@gmail.com> Reviewed-by: Derek Foreman <derekf@osg.samsung.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-01-20compositor, drm: set per-surface Presentation feedback flagsPekka Paalanen3-7/+52
PRESENTATION_FEEDBACK_KIND_ZERO_COPY is a flag that needs to be set for each surface separately. Some surfaces may be zero-copy (as defined by Presentation feedback) while some are not. A complication with Weston is that a surface may have multiple views on screen. All copies (views) of the surface are required to be zero-copy for the ZERO_COPY flag to be set. Backends set per-view feedback flags during the assing_planes hook, and then Weston core collects the flags from all views of a surface. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Mario Kleiner <mario.kleiner.de@gmail.com> Tested-by: Mario Kleiner <mario.kleiner.de@gmail.com>
2015-01-20compositor: set presentation.presented flagsPekka Paalanen9-21/+60
Change weston_output_finish_frame() signature so that backends are required to set the flags, that will be reported on the Presentation 'presented' event. This is meant for output-wide feedback flags. Flags that vary per wl_surface are subject for the following patch. All start_repaint_loop functions use the special private flag PRESENTATION_FEEDBACK_INVALID to mark, that this call of weston_output_finish_frame() cannot trigger the 'presented' event. If it does, we now hit an assert, and should then investigate why a fake update triggered Presentation feedback. DRM: Page flip is always vsync'd, and always gets the completion timestamp from the kernel which should correspond well to hardware. Completion is triggered by the kernel/hardware. Vblank handler is only used with the broken planes path, therefore do not report VSYNC, because we cannot guarantee all the planes updated at the same time. We cannot set the INVALID, because it would abort the compositor if the broken planes path was ever used. This is a hack that will get fixed with nuclear pageflip support in the future. fbdev: No vsync, update done by copy, no completion event from hardware, and completion time is totally fake. headless: No real output to update. RDP: Guessing that maybe no vsync, fake time, and copy make sense (pixels sent over network). Also no event that the pixels have been shown? RPI: Presumably Dispmanx updates are vsync'd. We get a completion event from the driver, but need to read the clock ourselves, so the completion time is somewhat unreliable. Zero-copy flag not implemented though it would be theoretically possible with EGL clients (zero-copy is a per-surface flag anyway, so in this patch). Wayland: No information how the host compositor is doing updates, so make a safe guess without assuming vsync or hardware completion event. While we do get some timestamp from the host compositor, it is not the completion time. Would need to hook to the Presentation extension of the host compositor to get more accurate flags. X11: No idea about vsync, completion event, or copying. Also the timestamp is a fake. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Mario Kleiner <mario.kleiner.de@gmail.com> Tested-by: Mario Kleiner <mario.kleiner.de@gmail.com> Acked-by: Mario Kleiner <mario.kleiner.de@gmail.com>
2015-01-20compositor-drm: use drm_output in drm_output_*() func argsPekka Paalanen1-28/+26
When a function is named drm_output_FOO(), you'd expect it to take a struct drm_output * as an argument. Convert drm_output_prepare_scanout_view(), drm_output_prepare_overlay_view(), drm_output_prepare_cursor_view() from weston_output to drm_output. Additionally convert drm_sprite_crtc_supported() from weston_output to drm_output. This change makes drm_assign_planes() to operate on drm_output terms, which makes further changes a tiny bit easier. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Mario Kleiner <mario.kleiner.de@gmail.com> Tested-by: Mario Kleiner <mario.kleiner.de@gmail.com>
2015-01-16logind: fix PropertiesChanged parserDavid Herrmann1-28/+28
The current parser directly reads a BOOLEAN on the PropertiesChanged signal for 'Active' properties. However, all property-values are packed in a VARIANT, otherwise, we wouldn't know the type. Fix the parser to recurse into the variant before reading the boolean. To avoid such bugs in the future, we extract the 'Active' parser into a helper function parse_active(), which is then shared between the PropertiesChanged and Get handlers. Signed-off-by: David Herrmann <dh.herrmann@gmail.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com> Tested-by: nerdopolis <bluescreen_avenger@verizon.net>
2015-01-16logind: forward Active=true changes for non-DRM backendsDavid Herrmann7-15/+23
Logind sends us a notification whenever the Active attribute of our session changes. However, due to the way compositor-drm.c relies on the master DRM device to be synced with the session, we used to delay Active=true handling until the DRM device was up, too. See: commit aedc7732ebd9bc7b4f51ee247ea857ffec6260a7 Author: David Herrmann <dh.herrmann@gmail.com> Date: Sat Nov 30 11:25:45 2013 +0100 logind: delay wakeup until DRM-device is resumed However, the other compositor backends do not use DRM, so logind-util will never get notified about any DRM device. Therefore, we have to forward the Active=true change immediately. This commit fixes logind-util to take sync_drm as argument. If it is true, we do DRM-device synchronisation, otherwise we don't. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=86889 Signed-off-by: David Herrmann <dh.herrmann@gmail.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com> Tested-by: nerdopolis <bluescreen_avenger@verizon.net>
2015-01-16launcher: use SIGRTMIN to not conflict with xwaylandDavid Herrmann1-3/+15
xwayland uses SIGUSR1 as startup notification. Make sure to use SIGRTMIN for VT handling to avoid conflicts. A bonus is SIGRT* signals can be queued multiple times, so we will be able to correctly track them and will no longer lose signals (which wouldn't really matter, but is confusing in logs). Signed-off-by: David Herrmann <dh.herrmann@gmail.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com> Tested-by: nerdopolis <bluescreen_avenger@verizon.net>
2015-01-16logind: use SIGRTMIN to not conflict with xwaylandDavid Herrmann1-10/+18
xwayland uses SIGUSR1 as startup notification. Make sure to use SIGRTMIN and SIGRTMIN+1 for VT handling. A bonus is SIGRT* signals can be queued multiple times, so we will be able to correctly track them and will no longer lose signals (which wouldn't really matter, but is confusing in logs). Signed-off-by: David Herrmann <dh.herrmann@gmail.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com> Tested-by: nerdopolis <bluescreen_avenger@verizon.net>
2015-01-15libinput-device: use the discrete axis value for wheel eventsPeter Hutterer1-4/+40
libinput < 0.8 sent wheel click events with value 10. Since 0.8 the value is the angle of the click in degrees but it now provides the click count as separate value. To keep backwards-compat with existing clients, we just send multiples of the click count. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Jonas Ådahl <jadahl@gmail.com> Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
2015-01-15libinput-device: use the new merged scroll eventsPeter Hutterer1-5/+20
libinput now provides a single event for scroll events. Extract the axes from that event and split them into the wl events. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
2015-01-08input: Add comment explaining why pointer isn't freed when device is removedDerek Foreman1-0/+5
When the last pointer is removed from a seat, the pointer struct is intentionally kept. This has some interesting side effects, so I've documented it here so people like me don't errantly assume it's a bug. Signed-off-by: Derek Foreman <derekf@osg.samsung.com> Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
2014-12-19compositor-x11: Fix some shutdown crashesDerek Foreman1-2/+14
The assertion in x11_compositor_find_output() can trigger during normal shutdown, for example, when moving the mouse while hitting a hotkey to close the weston window. Instead we can remove the assert(), return NULL, and discard events we can't find a destination output for. v2 Signed-off-by: Derek Foreman <derekf@osg.samsung.com> v1 Reviewed-by: Bryce Harrington <bryce@osg.samsung.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-12-16text: Don't crash if a seat has no keyboardDerek Foreman1-6/+10
A keyboard might not be present in a seat, so check that before dereferencing keyboard related pointers. Also, use the keyboard pointer we set to shorten the code a little bit. Signed-off-by: Derek Foreman <derekf@osg.samsung.com> Reviewed-by: Jan Arne Petersen <janarne@gmail.com>
2014-12-15input: swallow the key press event when running a compositor key bindingGiulio Camuffo1-1/+4
Reviewed-by: Daniel Stone <daniel.stone@collabora.com>
2014-12-15text: Use bool for input_panel_visibleDerek Foreman1-3/+4
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
2014-12-15text: Remove unused linked list from input_method_contextDerek Foreman1-2/+0
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
2014-12-15text: Fix coding styleDerek Foreman1-4/+7
Put the return type on a separate line in function declarations. Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
2014-12-15compositor: Propagate errors from module_initOndřej Majerech1-2/+4
load_modules currently ignores errors signalled by both weston_load_module and module_init, and instead always returns 0. Its return value appears to be checked in callers, so we most likely want to propagate any errors. Signed-off-by: Ondřej Majerech <majerech.o@gmail.com> Reviewed-by: Derek Foreman <derekf@osg.samsung.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-12-12clipboard: set fd member of clipboard_sourceMarek Chalupa1-0/+1
The fd member of clipboard_source structure was not set but was used in close(). v2. don't do unnecessary changes Signed-off-by: Marek Chalupa <mchqwerty@gmail.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-12-12screenshooter: fix various memory handlingMarek Chalupa1-8/+17
There were unchecked malloc and no free for this memory. Also simplify error handling in one function. v2. remove check if memory is NULL, according to man pages, free(NULL) is a no-op Signed-off-by: Marek Chalupa <mchqwerty@gmail.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-12-08compositor: Implement JSON-timeline loggingPekka Paalanen5-0/+453
Logging is activated and deactivated with the debug key binding 't'. When activated, it creates a new log file, where it records the events. The log file contains events and detailed object information entries in JSON format, and is meant to be parsed in sequence from beginning to the end. The emitted events are mostly related to the output repaint cycle, like when repaint begins, is submitted to GPU, and when it completes on a vblank. This is recorded per-output. Also some per-surface events are recorded, including when surface damage is flushed. To reduce the log size, events refer to objects like outputs and surfaces by id numbers. Detailed object information is emitted only as needed: on the first object occurrence, and afterwards only if weston_timeline_object::force_refresh asks for it. The detailed information for surfaces includes the string returned by weston_surface::get_label. Therefore it is important to set weston_timeline_object::force_refresh = 1 whenever the string would change, so that the new details get recorded. A rudimentary parser and SVG generator can be found at: https://github.com/ppaalanen/wesgr The timeline logs can answer questions including: - How does the compositor repaint cycle work timing-wise? - When was the vblank deadline missed? - What is the latency from surface commit to showing the new content on screen? - How long does it take to process the scenegraph? v2: weston_surface::get_description renamed to get_label. v3: reafctor a bit into fprint_quoted_string(). Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-12-08compositor: add weston_surface_set_label_func()Pekka Paalanen4-0/+51
When printing out logs from Weston's actions, mainly for debugging, it can be very difficult to identify the different surfaces. Inspecting the configure function pointer is not useful, as the configure functions may live in modules. Add vfunc get_label to weston_surface, which will produce a short, human-readable description of the surface, which allows identifying it better, rather than just looking at the surface size, for instance. Set the label function from most parts of Weston, to identify cursors and drag icons, and panels, backgrounds, screensavers and lock surfaces, and the desktop shell's application surfaces. v2: renamed 'description' to 'label', so we get weston_surface_set_label_func(). Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-12-03fbdev: Remove unnecessary semicolonnerdopolis1-1/+1
[daniels: removed extraneous changes]
2014-12-01input: send focus events to the focused client when running a key bindingGiulio Camuffo2-5/+21
When running a key binding we don't send the key press to the client via the wl_keyboard.key event. Instead, send a wl_keyboard.leave/enter pair so that the client knows the actual state of the keyboard. Reviewed-by: Daniel Stone <daniel@fooishbar.org>