aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-09-04backend/drm: better hotplug handlingemersion
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.
2018-09-03Merge pull request #1213 from arandomhuman/wlr_log_get_verbosityDrew DeVault
Add wlr_log_get_verbosity method
2018-09-03Update wlr_log_init docsrandom human
2018-09-03Add support for setting log verbosity in rootstonrandom human
2018-09-03Close stdout/stderr for Xwaylandrandom human
Depending on the log verbosity, close the stdout/stderr streams.
2018-09-03Merge pull request #1226 from RyanDwyer/xwayland-set-roleemersion
xwayland: Introduce set_role event
2018-09-03xwayland: Introduce set_role eventRyan Dwyer
2018-09-03Merge pull request #1228 from arandomhuman/misc-mememersion
Miscellaneous memory leak fixes
2018-09-03Remove listener link after tablet_manager destroyrandom human
2018-09-03Release pointers in examples/multi-pointerrandom human
2018-09-03Release registry pointer in examples/idlerandom human
2018-09-03Destroy layout after display in examples/output-layoutrandom human
2018-09-03Call wl_global_create first in case of failurerandom human
2018-09-03Handle setting keymap in examples more securelyrandom human
2018-09-02fix incorrect NULL checkcnt0
2018-09-02Free unused pointer in x11/backend.crandom human
2018-09-02backend/drm: fix invalid VLA size in scan_drm_connectorsemersion
I failed to see this issue with Valgrind because of the +1.
2018-09-02Init dmabuf global in rendereremersion
2018-09-02xwayland: Introduce request_activate eventRyan Dwyer
2018-09-02xwayland: Add WM_STATE modal propertyRyan Dwyer
Adds a modal property to indicate whether the surface wants to be a modal.
2018-09-01Merge pull request #1220 from emersion/grouped-new-outputDrew DeVault
backend/drm: emit new_output after scanning connectors
2018-09-02backend/drm: emit new_output after scanning connectorsemersion
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).
2018-09-01Merge pull request #1219 from emersion/disable-when-needs-modesetDrew DeVault
backend/drm: allow disabling outputs in NEEDS_MODESET state
2018-09-01backend/drm: allow disabling outputs in NEEDS_MODESET stateemersion
This correctly frees CRTCs when disabling outputs without setting a mode.
2018-09-01Merge pull request #1215 from emersion/disabled-no-modesetDrew DeVault
Do not modeset disabled outputs
2018-09-01Do not modeset disabled outputsemersion
2018-09-01Add function wlr_log_get_verbosity()random human
Returns the verbosity passed to wlr_log_init().
2018-09-01Merge pull request #1211 from aereaux/aereaux-patch-1Ryan Dwyer
Fix uninitialized value in wlr_cursor.
2018-08-31Fix uninitialized value in wlr_cursor.Aidan Epstein
2018-08-31Merge pull request #1210 from ammen99/fix-includeDrew DeVault
add missing wlr_box.h include in wlr_screencopy_v1.h
2018-08-31add missing wlr_box.h include in wlr_screencopy_v1.hIlia Bozhinov
2018-08-31Add clang's static analyzer to build.ymlrandom human
2018-08-31Fix bugs listed by clang's static analyzerrandom human
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).
2018-08-30Merge pull request #1208 from arandomhuman/masterDrew DeVault
Fixes examples/dmabuf-capture being built with unmet dependencies
2018-08-30Fixes examples/dmabuf-capture being built with unmet dependenciesrandom human
Even if the libav* variables were disabler objects, the build targer dmabuf-capture was being built. Modified the script to support a generic solution.
2018-08-29Use legacy modesetting for gamma controlDrew DeVault
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.
2018-08-28Merge pull request #1196 from dcz-purism/surface_moveBrian Ashworth
rootston/surface_layers: fix clicking after surface moved
2018-08-27Merge pull request #1202 from alexbakker/destroy-signal-fixDrew DeVault
Init the new destroy signals added by #1200
2018-08-27Init the new destroy signals added by #1200Alexander Bakker
2018-08-27Merge pull request #1200 from alexbakker/destroy-signalDrew DeVault
Add destroy signals to types that are destroyed by wl_display_destroy
2018-08-26Add destroy signals to types that are destroyed by wl_display_destroyAlexander Bakker
2018-08-25Merge pull request #1199 from apreiml/farthest_outputBrian Ashworth
introduce wlr_output_layout_farthest_output
2018-08-25introduce wlr_output_layout_farthest_outputArmin Preiml
Similar to wlr_output_layout_adjacent_output but will return the one that is the farthest away from the reference in given direction.
2018-08-24Update required meson version to 0.47.1Drew DeVault
2018-08-24Merge pull request #1198 from ascent12/meson_featureDrew DeVault
Fix meson changes
2018-08-24Change how glgen.sh outputs filesScott Anderson
This fixes building wlroots as a subproject.
2018-08-24Revert "Revert "Merge pull request #1194 from ascent12/meson_feature""Scott Anderson
This reverts commit 9c886f20b97b6ab1ac85b849f1fe7f16eb199ff0.
2018-08-23Revert "Merge pull request #1194 from ascent12/meson_feature"Drew DeVault
This breaks wlroots when used as a meson subproject. This reverts commit dea311992eb4ff3e343c3cf5b0603034223d2a42, reversing changes made to 6db9c4b74667c1d917d720f5e96985a2461569fb.
2018-08-23Merge pull request #1194 from ascent12/meson_featureDrew DeVault
Build system changes
2018-08-23rootston/layer_shell: fix clicking after surface moved/resizedDorota Czaplejewicz
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.