aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-08-27Add _incr_version to contrib/Drew DeVault
2019-08-27Revert "wlr_xdg_popup: don't treat all surfaces of grabbing client as ↵Sebastian Krzyszkowiak
grabbing surfaces" This reverts commit 52037d13f7617bef8e0f2566cb4609646cf8cd8f. Fixes #1801
2019-08-24wlr-layer-shell-v1: destroy xdg popups on unmapBrian Ashworth
This destroys the xdg popups associated with a layer surface when the layer surface is unmapped. It does not make sense to keep the popups open when unmapped.
2019-08-19backend: touch: Fixup incomplete patch for single touch devices.Andri Yngvason
All instances of libinput_event_touch_get_slot need to be converted to libinput_event_touch_get_seat_slot for things to work.
2019-08-15backend: touch: Assign good ids to single touch devicesAndri Yngvason
libinput_event_touch_get_slot always returns -1 for single touch devices. Using libinput_event_touch_get_seat_slot instead ensures that they are assigned actual slot ids. Also, this is what Weston does, so this change yields a more consistent behaviour between different compositors.
2019-08-15wlr_xdg_toplevel: reparent on parent unmapBrian Ashworth
From the xdg-shell specification: If the parent is unmapped then its children are managed as though the parent of the now-unmapped parent has become the parent of this surface. If no parent exists for the now-unmapped parent then the children are managed as though they have no parent surface.
2019-08-15backend/drm: fix missing plane formatsSimon Ser
The loop populating the format list was exiting early if ARGB8888 was found.
2019-08-12Revert "render/drm: keep old drm_format if realloc fails"Drew DeVault
This reverts commit c1be9b6945f9c664fe694a09620758db9ca695e9.
2019-08-12examples: remove duplicated conditionAntonin Décimo
2019-08-12xwayland: prevent possible array overrunAntonin Décimo
2019-08-12backend/wayland: check if zxdg_toplevel_decoration_v1 is not NULLAntonin Décimo
2019-08-12Avoid loss of a fractional partAntonin Décimo
2019-08-12backend/drm: use UINT64_C for uint64_t literalsAntonin Décimo
Prevents an integer promotion bug during the byte-shift.
2019-08-12backend/session: non-void function should return a valueAntonin Décimo
With assertions disabled, it should make sense to return NULL.
2019-08-12xdg_shell: remove variable self-assignmentAntonin Décimo
2019-08-12wlr_surface: condition is always falseAntonin Décimo
2019-08-12Simplify checkAntonin Décimo
2019-08-12Fix memory leakAntonin Décimo
2019-08-12xcursor: avoid leak and loss of all cursors if cursors realloc failsAntonin Décimo
2019-08-12render/drm: keep old drm_format if realloc failsAntonin Décimo
2019-08-12wlr_xdg_popup: don't treat all surfaces of grabbing client as grabbing surfacesSebastian Krzyszkowiak
Fixes #897
2019-08-12wlr_xdg_popup: grab touch events alongside pointer and keyboardSebastian Krzyszkowiak
Fixes #933
2019-08-12wlr_seat_touch: add a way for a grab to ignore a touch pointSebastian Krzyszkowiak
2019-08-11Add libinput-1.14 supportDrew DeVault
This libinput version adds a new tablet tool type.
2019-08-09Remove rootstonDrew DeVault
2019-08-09wlr_input_method_v2: Remove input method's resource from the list on destroySebastian Krzyszkowiak
It's added to manager->input_methods list in manager_get_input_method, but wasn't removed anywhere, leading to possible use-after-free in wlr_input_method_manager_v2_destroy.
2019-08-07Revert "output: atomic mode"Rouven Czerwinski
This reverts commit ee5f98ad49fed0439f3313ec685307831d1d1d05. This intoduced problems where outputs could not be turned off because they had flips pending.
2019-08-03backend/drm: destroy output immediatelyRouven Czerwinski
Instead of waiting for the next pageflip, destroy the output immediately since we can now handle flips for outputs which no longer exist. Also demote the missing crtc on flip to debug. Fixes #1739
2019-08-02xdg-output: add support for xdg-output-unstable-v1 version 3Simon Ser
This adds support for xdg-output-unstable-v1 version 3, added in [1]. The xdg_output.done event is now deprecated and is replaced with wl_output.done. [1]: https://gitlab.freedesktop.org/wayland/wayland-protocols/commit/962dd535372c8e4681374c23d2603cbe06cd7031
2019-08-02output: atomic mode, enabled, scale and transformSimon Ser
This commit makes more output properties (mode, enabled, scale and transform) atomic. This means that they are double-buffered and only applied on commit. Compositors now need to call wlr_output_commit after setting any of those properties. Internally, backends still apply properties sequentially. The behaviour should be exactly the same as before. Future commits will update some backends to take advantage of the atomic interface. Some backends are non-atomic by design, e.g. the X11 backend or the legacy DRM backend. Updates: https://github.com/swaywm/wlroots/issues/1640
2019-08-01export-dmabuf-v1: fix segfault on output disableJason Francis
2019-08-01screencopy: send failed after output disconnectJason Francis
This prevents screencopy applications from hanging because a failed event never got sent when the output was disconnected or disabled after the call to buffer().
2019-08-01screencopy: fix segfault on disabled outputJason Francis
Disconnecting or disabling an output between capture_output() and ready() could cause either a NULL dereference or an incorrect attach_render_locks count.
2019-07-27Remove all wayland-server.h includesSimon Ser
The documentation for wayland-server.h says: > Use of this header file is discouraged. Prefer including > wayland-server-core.h instead, which does not include the server protocol > header and as such only defines the library PI, excluding the deprecated API > below. Replacing wayland-server.h with wayland-server-core.h allows us to drop the WL_HIDE_DEPRECATED declaration.
2019-07-21output: drop wlr_output_mode.flagsSimon Ser
AFAIK this was always set to zero. Instead, compute wl_output mode flags on the fly. Technically this is a breaking change, but I don't think anybody uses this field.
2019-07-17Use -fmacro-prefix-map to strip build pathManuel Stoeckl
This commit matches sway's 2dc4978d8af326c310057ca8fd22a4c7f5d09335. To help ensure a reproducible build (when debug info is disabled), the meson build script now uses the -fmacro-prefix-map command line argument supported by GCC to strip the build-path dependent bytes of each __FILE__ string used by wlr_log and related functions. A rather ugly algorithm is used to compute the relative path between the build and source folders, because meson has no specific function for this. When the compiler does not support -fmacro-prefix-map, fall back to shifting the start of each __FILE__ string by the length of the relative path to the source directory.
2019-07-17text_input: Don't forget to send enter eventsGuido Günther
When we move from one surface to another we ought to handle leave for the old one but also send enter for the new one.
2019-07-17backends/x11: Touch supportSebastian Krzyszkowiak
Closes #1749
2019-07-17wlr_touch: Declare wlr_touch_impl usage as constSebastian Krzyszkowiak
This brings it in line with wlr_keyboard and wlr_pointer
2019-07-16layer-shell: Reject requests on gone surfacesGuido Günther
When the surface was destroyed but the resource is still around we might dereference a null pointer otherwise.
2019-07-16layer-shell: Remove unused event sourceGuido Günther
2019-07-15xdg_shell(_v6): Take maximize/fullscreen state into account on view initSebastian Krzyszkowiak
set_maximized and set_fullscreen calls can come before the view is constructed and before its signal handlers are registered.
2019-07-11seat: Move focus back to first shell surface when unfocusing layer surfaceSebastian Krzyszkowiak
2019-07-04wlr_seat_touch: Don't destroy touch point with surfaceGuido Günther
When the surface is destroyed clear it's reference but wait for the up event to destroy the touch point via wlr_seat_touch_notify_up(). If the surface is destroyed before the up event we end up with incomplete sequences sent to the client like [915821.276] wl_touch@3.down(146, 2475027, wl_surface@38, 0, 236.000000, 515.000000) [915821.608] wl_touch@3.frame() [915821.637] wl_touch@3.motion(2475027, 0, 236.000000, 515.000000) [915821.779] wl_touch@3.frame() so there's never an up event. While it should be something like [2461229.051] wl_touch@3.down(81, 3236959, wl_surface@34, 0, 218.000000, 478.000000) [2461229.435] wl_touch@3.frame() [2461229.484] wl_touch@3.motion(3236959, 0, 218.000000, 478.000000) [2461229.636] wl_touch@3.frame() [2461277.520] wl_touch@3.up(82, 3237007, 0) [2461277.681] wl_touch@3.frame() this confuses toolkits intepreting the next down event incorrectly. So don't destroy the touch point too early.
2019-06-30wlr_seat: special-case first serial set useManuel Stoeckl
2019-06-30wlr_tablet_v2: Register event serialsManuel Stoeckl
2019-06-30wlr_pointer_gestures: Register event serialsManuel Stoeckl
2019-06-30wlr_seat: Fix edge cases with serial validationManuel Stoeckl
2019-06-30Implement serial validation for selection requestsManuel Stoeckl
This change tracks, for each wlr_seat_client, the most recent serial numbers which were sent to the client. When the client makes a selection request, wlroots now verifies that the serial number associated with the selection request was actually provided to that specific client. This ensures that the client that was most recently interacted with always has priority for its copy selection requests, and that no other clients can incorrectly use a larger serial value and "steal" the role of having the copy selection. Also, the code used to determine when a given selection is superseded by a newer request uses < instead of <= to allow clients to make multiple selection requests with the same serial number and have the last one hold. To limit memory use, a ring buffer is used to store runs of sequential serial numbers, and all serial numbers earlier than the start of the ring buffer are assumed to be valid. Faking very old serials is unlikely to be disruptive. Assuming all clients are correctly written, the only additional constraint which this patch should impose is that serial numbers are now bound to seats: clients may not receive a serial number from an input event on one seat and then use that to request copy-selection on another seat.
2019-06-27output-damage: set needs swap only when we have new damageIlia Bozhinov
An output needs swap when there is new damage. If the damage is only accumulated from the last frame, we could simply skip drawing.