aboutsummaryrefslogtreecommitdiff
path: root/sway
AgeCommit message (Collapse)Author
2023-12-13output: Destroy when output layout is destroyedAlexander Orzechowski
Since output layout is destroyed when the wayland display is destroyed we run into a destroy listener order problem: Either the display starts destroying the outputs first, in which case we're good: The existing handling will clean up. However, things go wrong if the display decides to destroy the output layout first. In this case, sway will hold invalid references to the output layout as part of each output so that when it finally goes to destroy them, sway will dereference destroyed output layout bits. Ref: https://github.com/swaywm/sway/pull/6844#issuecomment-1843599513
2023-12-13input/seat: simplify seat_is_input_allowed()Simon Ser
Use an early return to make the code more readable.
2023-12-13input/seat: rename seat_set_exclusive_client()Simon Ser
2023-12-13input/seat: inline seat_set_exclusive_client() with NULL clientSimon Ser
2023-12-13input/{keyboard,switch}: rename input_inhibited variable to lockedSimon Ser
This is more descriptive now.
2023-12-13input/seat: drop exclusive_clientSimon Ser
This was a input-inhibit concept.
2023-12-12Detect proprietary DisplayLink driversSimon Ser
evdi is open-source, but is just some condom for their proprietary user-space driver.
2023-12-12Detect Nvidia proprietary driver via drmGetVersion()Simon Ser
This is less punishing for users with the Nvidia driver loaded but not used by Sway (e.g. for CUDA).
2023-12-12Drop fglrx detectionSimon Ser
This ancient driver doesn't do KMS. So we were never able to run with it anyways.
2023-12-12sway: raise error on non-accessible background fileTamino Bauknecht
2023-12-06desktop/xwayland: correctly handle association on o-r changeSimon Ser
When override-redirect changes, we need to setup/teardown listeners, just like we do for map. References: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3773
2023-12-04Update sway.5.scdmrusme
Make it extra extra extra clear, because I had to stumbled upon https://github.com/swaywm/sway/issues/3292 to understand this.
2023-12-01Don't destroy output layout on exitAlexander Orzechowski
wlroots will destroy this object itself.
2023-11-29sway/config.c: use `memcpy()` for known buffer sizeSergei Trofimovich
`gcc-14` added a new warning around dangerous use of `strncpy()` withi known overflow: ../sway/config.c: In function 'do_var_replacement': ../sway/config.c:983:33: error: '__builtin___strncpy_chk' specified bound depends on the length of the source argument [-Werror=stringop-truncation] 983 | strncpy(newptr, var->value, vvlen); | ^ ../sway/config.c:971:45: note: length computed here 971 | int vvlen = strlen(var->value); | ^~~~~~~~~~~~~~~~~~ It's a bit fishy to rely on truncating behaviour of `strncpy()`. The change uses `memcpy()` as more explicit way to express copy of `vvlen` bytes.
2023-11-23xdg-shell: chase events updateKirill Primak
2023-11-23Pass wl_display to wlr_output_layoutSimon Ser
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4310
2023-11-23Add wlr/util/transform.h includesSimon Ser
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4097 Closes: https://github.com/swaywm/sway/issues/7830
2023-11-22Chase wlroots!4440llyyr
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4440
2023-11-21Fix reference to wlr_output_event_commit.committedSimon Ser
This has been dropped from wlroots. Previous commit missed that.
2023-11-21Add support for security-context-v1Simon Ser
As a first step, deny access to privileged protocols to sandboxed apps. References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3589
2023-11-21Apply gamma LUT when an output re-enabledSimon Ser
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3679
2023-11-21view: re-apply criteria when window gets unmappedEBADBEEF
Remove any existing executed criteria items at unmap time. If a window gets unmapped but not destroyed, we want to reapply 'for_window' criteria. Fixes #6905.
2023-11-21seat: Fix cursor theme reload for tablet toolNemuiBanila
2023-11-21seat: Fix reloading cursor theme after changeLina Banik
This reverts commit afde6369 "seat: avoid unneeded reloading xcursor theme". Always avoiding to reload the xcursor theme prevents reloading the cursor even when this is desired. Instead seat_configure_xcursor can determine whether a full reload is necessary. To stay with the spirit of the reverted change, cursors are only fully reloaded, if the theme has changed. Fixes #6931
2023-11-16input/input-manager: drop input_manager_configure_all_inputsSimon Ser
This is now unused.
2023-11-16Only reconfigure input mappings on output changeSimon Ser
Fully reconfiguring all input devices on output change takes a loooong time. Let's just reconfigure what we need: only mappings depend on outputs.
2023-11-16input/seat: rename seat_apply_input_configSimon Ser
seat_apply_input_mapping is a lot more descriptive.
2023-11-16input/seat: don't configure mappings for switchesSimon Ser
Switch devices cannot be mapped to an output/region, stop trying to do so.
2023-10-31chase wlroots!4411Bill Li
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4411 fix #7802
2023-10-29xdg-shell: send maximized if tiled isn't supportedKirill Primak
wlroots doesn't do it automatically anymore.
2023-10-27xdg_shell: don't update wlr_toplevel if the container has no size yetDudemanguy
3d5ae9813d390ea747462fc0026ee43b7c77d0f2 added logic to change the underlying wlr_toplevel size for floating containers, but it does it even if the container has no actual coordinates yet. This doesn't really make sense to update the toplevel size in this case since there's many things that could affect the initial coordinates (sway commands, fullscreen state, etc.). Skip this by doing a crude check to see if the current container state has any width.
2023-10-24view: check if the buffer was uploaded on saveKirill Primak
wlr_surface_has_buffer() is insufficient; if a client has committed a buffer but it couldn't be applied, NULL deref happens in the next line.
2023-10-23config/output: Allow approximation of output refresh rateTamino Bauknecht
Previous behavior was that only if resolution and refresh rate match exactly, the mode was accepted. As fallback, the mode with the highest refresh rate and the same resolution was chosen. New behavior is that the mode with the closest match for the refresh rate is used with a limit of up to 1Hz. The fallback behavior stays the same. Additionally, the logging was made more verbose.
2023-10-06Chase wlroots!4331Alexander Orzechowski
2023-10-05Update sway-input.5.scdiff
2023-10-05Drop support for KDE's idle protocolSimon Ser
We support the standard idle-notify protocol since Sway 1.8.
2023-09-10sway/server: Fix null pointer crash when Xwayland disabledManuel Stoeckl
2023-09-07i3 compat: Adding support for the `all` criteriaJohan Sköld
Matches all views. i3 PR: https://github.com/i3/i3/pull/4460 Fixes #7110
2023-09-07commands/input/map_from_region: don't treat 0x prefix as hex identifieriff
When using the `map_from_region` for pen tables, we will usually make the available area as big as possible while maintaining the proportions with the screen. As most of the tablets uses a 16:10 ratios while the most popular screen ratios is still 16:9, the argument for most people should be `0x0 1x0.9` to have the maximum effective area. However, the argument above won't work because the current code will treat `0x...` as a hexadecimal number, instead of setting both `x` and `y` to `0`. This fix allows the use of the following syntax: ``` input type:tablet_tool { map_from_region 0x0 1x0.9 } ```
2023-08-28xdg_shell: update wlr_toplevel size on client resizesDudemanguy
If a floating client resizes itself, sway updates several of its internal dimensions to match but not wlr_toplevel. This means that the next time wlroots sends a toplevel configure event, it can have wrong coordinates that resize the client back to its old size. To fix this, let's just use wlr_xdg_toplevel_set_size so the wlr_toplevel has the same dimensions as sway. Exactly the same as 0183b9d35d0ce750588e700e536b7d2e367b0d0a but the logic is onlly applied to xdg_shell and not xwayland.
2023-08-28Revert "view: update wlr_toplevel size on client resizes"Dudemanguy
This isn't the right fix for this issue because the xwayland code also uses this function and updating the wlr_toplevel there doesn't make sense and also causes problems. Fixes #7722. This reverts commit bf44690ee8ce8438ffb1a84fbe6e8dbb6a851c04.
2023-08-26view: update wlr_toplevel size on client resizesDudemanguy
If a floating client resizes itself, sway updates several of its internal dimensions to match but not wlr_toplevel. This means that the next time wlroots sends a toplevel configure event, it can have wrong coordinates that resize the client back to its old size. To fix this, let's just use wlr_xdg_toplevel_set_size so the wlr_toplevel has the same dimensions as sway. Fixes #5266.
2023-08-24Hide xwayland_shell_v1 from regular clientsSimon Ser
Regular clients are not allowed to use this interface. wlroots already sends a protocol error if a non-Xwayland client tries to use this interface, but let's remove all temptation by hiding it completely.
2023-08-21chore: chase wlroots xdg-surface role reworkKirill Primak
2023-08-19chase wlroots!4316Leonardo Hernández Hernández
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4316
2023-07-31Rebase all cursors in handle_surface_mapookami
Fix swaylock showing transient cursor after locked.
2023-07-31output: drop current_modeSimon Ser
This is now unused.
2023-07-31desktop/output: fix output manager enabled stateSimon Ser
With recent wlroots changes, backends which don't support output modes can now support being disabled. We were always marking mode-less outputs as disabled. Stop doing that, check whether the output takes up some space in the layout instead.
2023-07-31desktop/output: drop handle_mode()Simon Ser
We already perform the exact same logic on transform/scale change.
2023-07-31desktop/output: drop logic to handle backend-applied modeSimon Ser
The wlroots backends no longer magically apply output modes behind the compositor's back.