aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
...
* Remove some erroneous apostrophes in commentsLibravatar Thomas Hebb2022-02-22
|
* sway/input: use wlr_input_device from input device baseLibravatar Simon Zeni2022-02-21
|
* sway/commands: add missing wlr_keyboard interface include in xkb_switch_layoutLibravatar Simon Zeni2022-02-21
|
* Remove all sprintf callsLibravatar Simon Ser2022-02-08
| | | | | Replace them with snprintf, which ensures buffer overflows won't happen.
* Fix snprintf compiler warningLibravatar Muhamed Hobi2022-02-08
|
* xdg-shell: use wlr_xdg_popup in sway_xdg_popupLibravatar Simon Ser2022-02-07
| | | | Improved type safety.
* xdg-shell: use wlr_xdg_toplevel in sway_viewLibravatar Simon Ser2022-02-07
| | | | | | Improved type safety. Closes: https://github.com/swaywm/sway/issues/6813
* readme: use relative links for translationsLibravatar Simon Ser2022-02-07
|
* readme: sort language list alphabeticallyLibravatar Simon Ser2022-02-07
|
* readme: add link to Italian translationLibravatar Simon Ser2022-02-07
|
* Translated README into ItalianLibravatar Marco Rubin2022-02-07
|
* Minor update to focus_on_window_activationLibravatar Alexander Browne2022-02-06
| | | Removed xwayland limitation since wayland clients are supported via xdg-activation.
* Chase wlroots xdg-shell refactorLibravatar Kirill Primak2022-02-03
|
* chore: chase wlr_output_layout_get_box() updateLibravatar Kirill Primak2022-01-31
| | | | https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3439
* xwayland: listen to `request_activate` eventLibravatar Tuomas Yrjölä2022-01-31
| | | | | | | When REAPER submenu is closed `XCB_CLIENT_MESSAGE` with type `NET_ACTIVE_WINDOW` is sent to set focus to parent menu. Closes: https://github.com/swaywm/sway/issues/6324
* Use bools for CLI flagsLibravatar Simon Ser2022-01-31
|
* swaynag: remove buffer destruction conditionLibravatar Kirill Primak2022-01-23
| | | | | | | | An address of a variable can never be NULL, so checking it doesn't make sense; and `destroy_buffer()` can operate on already destroyed buffers anyway. Fixes #6780
* input/cursor: pass through pointer hold gesturesLibravatar Tudor Brindus2022-01-22
| | | | | This just follows swaywm/wlroots#3047, so `wl_pointer_gestures_v1` clients can be notified of these events.
* cmd/swap: error on swapping a container with itselfLibravatar Ronan Pigott2022-01-22
|
* tray: do not render passive itemsLibravatar Tobias Bengfort2022-01-19
| | | | https://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/StatusNotifierItem/#org.freedesktop.statusnotifieritem.status
* build: execute wlroots subproject before finding depsLibravatar Simon Ser2022-01-18
| | | | | | | | | | | wlroots often requires dependencies more recent than Sway's. Executing the wlroots subproject first will give Meson a chance to find these newer dependencies, possibly via subprojects. The subproject will override the "wlroots" dependency when executed, so we don't need to use get_variable anymore. References: https://github.com/swaywm/sway/pull/6498#issuecomment-1001746017
* transaction: destroying nodes aren't hiddenLibravatar Rouven Czerwinski2022-01-18
| | | | | | | | | | | | | | | | | | | Commit 37d7bc69986f ("transaction: Only wait for ack from visible views") introduced a check which uses view_is_visible() to check if a view is still visible on the screen. However view_is_visible() will early return in case the node is in the destroying state. This is incorrect for transactions, since a destroying view which is visible will trigger configure events for other clients. This bug was visible when repeatedly opening and closing two views side by side, since we ignore the destroying node we get a frame where the still open view is shown with the old configure values and the rest is the desktop background. The next frame is than correct again. Fix this by considering destroying views as visible, we correctly wait for them and send the configure events to other views in time, fixing the background flicker. Fixes #6473
* treat fullscreen windows as 'tiled' for commands/focusLibravatar Patrick Hilhorst2022-01-18
|
* input/cursor: treat swipe begin as idle activity tooLibravatar Tudor Brindus2022-01-17
| | | | Accidentally overlooked in fd53f80.
* input/cursor: count pointer gestures as idle activityLibravatar Tudor Brindus2022-01-17
| | | | Fixes https://github.com/swaywm/sway/issues/6765.
* commands/focus: drop trailing whitespaceLibravatar Simon Ser2022-01-16
|
* Upgrade for wlroots surface refactoringLibravatar Simon Ser2022-01-13
| | | | | | See [1] for details. [1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3412
* build: fix building with basuLibravatar Kirill Chibisov2022-01-12
| | | | | | | | | 02b412a introduced the use of list for sdbus deps, however it was assuming that all packages which were in a list has a version higher than 239. That is true for libsystemd and libelogind, since they use the same versions, however basu is using version numbers which are way lower than what libsystemd/libelogind are using, so basu only build is failing.
* xdg-shell: use toplevel geometry to adjust the popup boxLibravatar Aleksei Bavshin2022-01-12
| | | | | | | | | | | | | `popup_unconstrain` uses view coordinates to init the output box for popups. However wlroots expects the box to be set in a toplevel surface coordinate system, which is not always equal to view. The difference between those is a window geometry set via xdg-shell. GTK4 reserves some space for client-side decoration and thus has a window with top left corner not matching to (0, 0) of a surface. The box calculated without taking that into account was slightly shifted compared to the actual output and allowed to position part of the popup off screen.
* Print deprecation notice when running SUIDLibravatar Kenny Levinsen2022-01-11
| | | | | | | | | | | | | | SUID privilege drop is needed for the "builtin"-backend of libseat, which copied our old "direct" backend behavior for the sake of compatibility and ease of transition. libseat now has a better alternative in the form of seatd-launch. It uses the normal seatd daemon and libseat backend and takes care of SUID for us. Add a soft deprecation warning to highlight our future intent of removing this code. The deprecation cycle is needed to avoid surprises when sway no longer drops privileges.
* meson: check: false on run_commandLibravatar Kenny Levinsen2022-01-11
| | | | | | | Future meson releases will change the default and warns when the implicit default is used, breaking builds. Explicitly set check: false to maintain behavior and silence warnings.
* Add safety assert in parse_movement_unitLibravatar Simon Ser2022-01-09
| | | | | | Let's add this just in case a caller passes argc == 0. References: https://github.com/swaywm/sway/issues/6737#issuecomment-1008082540
* Destroy sub-surfaces with parent layer-shell surfaceLibravatar Simon Ser2022-01-08
| | | | Closes: https://github.com/swaywm/sway/issues/6337
* commands/move: Fix crash when pos_y is omittedLibravatar David962022-01-09
| | | | Fixes #6737
* container: Fix crash when view unmaps + maps quicklyLibravatar David Rosca2022-01-07
| | | | | | | | | | | | | | | | Followup on 4e4898e90f. If a view quickly maps and unmaps repeatedly, there will be multiple destroyed containers with same view in a single transaction. Each of these containers will then try to destroy this view, resulting in use after free. The container should only destroy the view if the view still belongs to the container. Simple reproducer: couple XMapWindow + XUnmapWindow in a loop followed by XDestroyWindow. See #6605
* swaybar: fix tray item icon scaling, positioningLibravatar Nathan Schulte2022-01-07
|
* swaybar: fix tray_padding vs min-height re: scaleLibravatar Nathan Schulte2022-01-07
| | | | Co-authored-by: xdavidwu <xdavidwuph@gmail.com>
* input/seat: unset has_focus when focus_stack becomes emptyLibravatar Thomas Hebb2022-01-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We currently track the focus of a seat in two ways: we use a list called focus_stack to track the order in which nodes have been focused, with the first node representing what's currently focused, and we use a variable called has_focus to indicate whether anything has focus--i.e. whether we should actually treat that first node as focused at any given time. In a number of places, we treat has_focus as implying that a focused node exists. If it's true, we attempt to dereference the return value of seat_get_focus(), our helper function for getting the first node in focus_list, with no further checks. But this isn't quite correct with the current implementation of seat_get_focus(): not only does it return NULL when has_focus is false, it also returns NULL when focus_stack contains no items. In most cases, focus_stack never becomes empty and so this doesn't matter at all. Since focus_stack stores a history of focused nodes, we rarely remove nodes from it. The exception to this is when a node itself goes away. In that case, we call seat_node_destroy() to remove it from focus_stack and free it. But we don't unset has_focus if we've removed the final node! This lets us get into a state where has_focus is true but seat_get_focus() returns NULL, leading to a segfault when we try to dereference it. Fix the issue both by updating has_focus in seat_node_destroy() and by adding an assertion in seat_get_focus() that ensures focus_stack and has_focus are in sync, which will make it easier to track down similar issues in the future. Fixes #6395. [1] There's some discussion in #1585 from when this was implemented about whether has_focus is actually necessary; it's possible we could remove it entirely, but for the moment this is the architecture we have.
* [IPC] Add repeat delay/rate info to keyboardLibravatar Seth Barberee2022-01-04
| | | | | Closes #6735 wlroots already has the info in the struct so let's access it and print it out.
* build: bump version to 1.8-devLibravatar Simon Ser2021-12-23
| | | | | | | | | | | | | | | | | | | | Historically we've been sticking with the last release number in the master branch. However that's a bit confusing, people can't easily figure out whether they're using a release or a work-in-progress snapshot. Only the commit hash appended to the version number may help, but that's not very explicit and disappears when using a tarball. We could bump the version in master to the next release number. However during the RC cycle there would be a downgrade from 1.8 to 1.8-rc1. Also it would be hard to tell the difference between a stable release and an old snapshot. This patch introduces a new pre-release identifier, "dev". It's alphabetically before "rc" so it should be correctly sorted by semver comparisons. "dev" is upgraded to "rc" (and then to stable) when doing a release. The master branch always uses a "dev" version, only release branches use "rc" or stable versions.
* Add cairo_image_surface_create error handlingLibravatar Simon Ser2021-12-21
| | | | | | | cairo_image_surface_create can fail, e.g. when running out of memory or when the size is too big. Avoid crashing in this case. Closes: https://github.com/swaywm/sway/issues/6531
* swaybar: fix errno handling in status_handle_readableLibravatar Simon Ser2021-12-21
| | | | | If getline fails once, it was not reset before the next getline call. errno is only overwritten by getline on error.
* swaymsg: add GET_TREE pretty-printingLibravatar Simon Ser2021-12-21
|
* swaymsg: replace if with switch in pretty_printLibravatar Simon Ser2021-12-21
|
* build: bump wlroots dependency to 0.16.0Libravatar Sefa Eyeoglu2021-12-19
|
* output: emit node::destroy eventLibravatar Ronan Pigott2021-12-17
| | | | | | Now output_begin_destroy emits the node::destroy event similar to workspace_begin_destroy. It currently has no listeners, since they listen to output::disable or wlr_output::destroy instead.
* output: change output::destroy to output::disableLibravatar Ronan Pigott2021-12-17
| | | | | This changes output::destroy to output::disable and emits it only once when an output is disabled, instead of twice in succession.
* Handle border width and height on minimum floating sizesLibravatar RoastVeg2021-12-14
| | | | | | This fixes: https://github.com/swaywm/sway/issues/5337 Co-authored-by: Moon Sungjoon <sumoon@seoulsaram.org>
* meson.build: require wayland-protocols 1.24Libravatar Cole Mickens2021-12-14
| | | As far as I can tell `ZWP_LINUX_DMABUF_FEEDBACK_V1_TRANCHE_FLAGS_SCANOUT` is introduced in wayland-protocols 1.24.
* swaynag: remove xdg-output logicLibravatar Simon Ser2021-12-13
| | | | | We can just get the output name from wl_output directly, now that wl_output version 4 exists.