Age | Commit message (Collapse) | Author |
|
This commit handles better situations in which the number of
connected outputs is greater than the number of available CRTCs.
It'll enable as many outputs as possible, and transfer CRTCs to
outputs that need one on unplug.
This changes CRTC and plane reallocation to happen after scanning
DRM connectors instead of on modeset.
This cleanups CRTCs and planes on unplug to allow them to be
re-used for other outputs.
On modeset, if an output doesn't have a CRTC, the desired mode is
saved and used later when the output gains a CRTC.
Future work includes giving priority to enabled outputs over
disabled ones for CRTC allocation. This requires the compositor to
know about all outputs (even outputs without CRTCs) to properly
modeset outputs enabled in the compositor config file and disable
outputs disabled in the config file.
|
|
Add wlr_log_get_verbosity method
|
|
|
|
|
|
Depending on the log verbosity, close the stdout/stderr streams.
|
|
xwayland: Introduce set_role event
|
|
|
|
Miscellaneous memory leak fixes
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
I failed to see this issue with Valgrind because of the +1.
|
|
|
|
|
|
Adds a modal property to indicate whether the surface wants to be a
modal.
|
|
backend/drm: emit new_output after scanning connectors
|
|
This prevents receiving modesetting requests from the compositor
while we don't have the whole picture (ie. while we haven't yet
scanned all connectors).
This also makes connectors without CRTCs disabled (they can't be
enabled yet even if some CRTCs are free'd -- this is future work).
|
|
backend/drm: allow disabling outputs in NEEDS_MODESET state
|
|
This correctly frees CRTCs when disabling outputs without setting
a mode.
|
|
Do not modeset disabled outputs
|
|
|
|
Returns the verbosity passed to wlr_log_init().
|
|
Fix uninitialized value in wlr_cursor.
|
|
|
|
add missing wlr_box.h include in wlr_screencopy_v1.h
|
|
|
|
|
|
A few pedantic changes and unused variables (1-4), and genuine bugs (5,
6).
The reports with the corresponding files and lines numbers are as
follows.
1. backend/libinput/tablet_pad.c@31,44,57
"Allocator sizeof operand mismatch"
"Result of 'calloc' is converted to a pointer of type 'unsigned int',
which is incompatible with sizeof operand type 'int'"
2. types/tablet_v2/wlr_tablet_v2_pad.c@371
"Allocator sizeof operand mismatch"
"Result of 'calloc' is converted to a pointer of type 'uint32_t', which
is incompatible with sizeof operand type 'int'"
3. types/wlr_cursor.c@335
"Dead initialization"
"Value stored to 'dx'/'dy' during its initialization is never read"
4. rootston/xdg_shell.c@510
"Dead initialization"
"Value stored to 'desktop' during its initialization is never read"
5. types/tablet_v2/wlr_tablet_v2_pad.c@475
"Dereference of null pointer"
"Access to field 'strips' results in a dereference of a null pointer
(loaded from field 'current_client')"
The boolean logic was incorrect (c.f. the check in the following
function).
6. examples/idle.c@163,174,182
"Uninitialized argument value"
"1st function call argument is an uninitialized value"
If close_timeout != 0, but simulate_activity_timeout >= close_timeout,
the program would segfault at pthread_cancel(t1).
|
|
Fixes examples/dmabuf-capture being built with unmet dependencies
|
|
Even if the libav* variables were disabler objects, the build targer
dmabuf-capture was being built. Modified the script to support a generic
solution.
|
|
It doesn't look like there's any motion on a fix from the AMDGPU side,
and using the legacy interface for this isn't so bad.
|
|
rootston/surface_layers: fix clicking after surface moved
|
|
Init the new destroy signals added by #1200
|
|
|
|
Add destroy signals to types that are destroyed by wl_display_destroy
|
|
|
|
introduce wlr_output_layout_farthest_output
|
|
Similar to wlr_output_layout_adjacent_output but will return the
one that is the farthest away from the reference in given direction.
|
|
|
|
Fix meson changes
|
|
This fixes building wlroots as a subproject.
|
|
This reverts commit 9c886f20b97b6ab1ac85b849f1fe7f16eb199ff0.
|
|
This breaks wlroots when used as a meson subproject.
This reverts commit dea311992eb4ff3e343c3cf5b0603034223d2a42, reversing
changes made to 6db9c4b74667c1d917d720f5e96985a2461569fb.
|
|
Build system changes
|
|
Layer surfaces are not notified of cursor position changes if the surface moves, only if the cursor moves. This workaround emits a cursor position event every time a cursor ends up over a newly resized layer surface to make sure the following clicks land in the right place.
This change doesn't address sending leave events when a cursor previously present over the surface becomes away.
There are 2 separate mechanisms in play, because a layer surface gets resized in 2 steps:
1. Layer surface resize & rearrange.
2. Underlying surface resize.
The first step may affect all layer surfaces. The cursor events are sent to cursors placed over all layer surfaces which have moved (not been resized). The second step affects any layer surface whose surface changed size. The cursor event is sent only to that surface.
Together, these events cover all surfaces: those which moves, and those which changed size, as long as each layer surface resize is accompanied by an immediate surface resize.
|