aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* input/cursor: remove gesture listeners in destroyLibravatar Benjamin Cheng2019-12-07
| | | | | Part of #4794. Forgot to remove gesture listeners when the cursor is destroyed.
* input/cursor: pass gesture events to clientsLibravatar Benjamin Cheng2019-12-07
| | | | | | | | | Some wayland clients (mostly GTK3 apps) like eog or evince support gestures like pinch-to-zoom. These gestures are given to clients via the pointer_gestures_v1 protocol. This is already supported in wlroots, so we just need to hook up the events here in sway. Fixes #4724
* A Script to change sway workspace name.Libravatar Thorben Günther2019-12-06
| | | | | This script automatically changes the workspace name when an application gets closed, moved or openend.
* Improve transparency scriptLibravatar Thorben Günther2019-12-06
| | | | | | | Transparency gets reset when the script is terminated. Added command line option to set transparency strength without changing the script. Added support for multiple displays.
* config: apply input type configs on reloadLibravatar Brian Ashworth2019-12-04
| | | | | | When making the reload validation improvements, I forgot that input type configs are stored in a separate list. This makes it so input type configs are correctly applied on reload.
* Revert "fix bar_state_update/input event"Libravatar Jayce Fayne2019-12-02
| | | | This reverts commit a3da7fec32b8f18d7a70ea346618e09892c707ed.
* fix bar_state_update/input eventLibravatar Rex Hackbro2019-12-01
|
* output: Restore previous max_render_time behaviorLibravatar Kenny Levinsen2019-12-01
|
* output: Schedule idle frames if we do not renderLibravatar Kenny Levinsen2019-12-01
| | | | | | | | | | | | | | | | | | | | Repaint scheduling delays output render and frame done events from output frame events, and block idle frame events from being scheduled in between output frame done and output render in this period of time. If a surface is committed after its frame done event, but before output render, idle frame requests will be blocked, and the surface relies on the upcoming render to schedule a frame. If when the repaint timer expires, output render is deemed unnecessary, no frame will be scheduled. This can lead to surfaces never having their frame callbacks fire. To fix this, we store that a surface has requested a frame in surface_needs_frame. When the repaint expires, if no render is deemed necessary, we check this flag and schedule an idle frame. Fixes #4768
* output: Replace block_idle_frame with frame_pendingLibravatar Kenny Levinsen2019-12-01
|
* add scale_filter output config optionLibravatar Ronan Pigott2019-11-29
|
* output: Ensure that frame_done is delayed on max_render_timeLibravatar Kenny Levinsen2019-11-28
| | | | | | | | | | | | | | | | | | | max_render_time can be set on output, view, or both. However, if only applied to the output, send_frame_done_iterator would erroneously send frame_done immediately, ignoring the output max_render_time. As damage_handle_frame processed max_render_time correctly, idle frames would be blocked in anticipation of the delay that was meant to happen. Without the delay, frame events would be dispatched during the idle frame block, and some clients would never receive the frame done events they had requested, at least not until something else actively drove another render. Respecting both view and output max_render_time in send_frame_done_iterator ensures that the frame events are always correctly delayed. Fixes #4756
* Rename 'node' to 'nodes' in swayipc docLibravatar Rex Hackbro2019-11-28
|
* input/keyboard: reset seat keyboard on destroyLibravatar Brian Ashworth2019-11-28
| | | | | | | | | | | If a sway keyboard is being destroyed, then the keyboard is being removed from a seat. If the associated wlr_keyboard is the currently set keyboard for the wlr_seat, then we need to reset the wlr_seat's keyboard to NULL so it doesn't reference an invalid device for the seat. The next configured keyboard from the seat or the next keyboard from that seat that has an event will then become the seat keyboard. Similarly, this needs to be done for a wlr_keyboard_group's keyboard when the wlr_keyboard_group is being destroyed.
* config: improvements to the reload validationLibravatar Brian Ashworth2019-11-27
| | | | | | | | For the validation pass of reloading, there is no need to touch swaybg, swaynag, inputs, outputs, or seats. This drastically improves the speed of a reload by skipping over the expensive I/O configuration and handling of wayland clients. As long as the syntax is valid, the CMD_FAILURE's can be relayed during the actual reload.
* input/keyboard: check keyboard group before removeLibravatar Brian Ashworth2019-11-26
| | | | | | In sway_keyboard_destroy, only remove the keyboard from a keyboard group, if it is part of a keyboard group. If the keyboard is not part of a keyboard group, then there is nothing to remove it from
* input: seat: Fix seat device list not initialised before useLibravatar Paul Riou2019-11-24
| | | | | | | | When being created, non first seats would get through the list of devices without the list being first initialised -> segfault. Issue introduced with ab0248a54564b2f644b6fb367f9eb44fe0bf5f3c Fixes #4750: Crash when reloading Sway with multiple seats configured
* Amend typosLibravatar Jason2019-11-23
|
* Use new presentation-time helperLibravatar Simon Ser2019-11-21
| | | | | This has the advantage to (1) reduce boilerplate and (2) make us correctly handle wlr_output_event_present.commit_seq.
* Add support for wlr_keyboard_groupLibravatar Brian Ashworth2019-11-21
| | | | | | | | | | | | | | | | | A wlr_keyboard_group allows for multiple keyboard devices to be combined into one logical keyboard. This is useful for keyboards that are split into multiple input devices despite appearing as one physical keyboard in the user's mind. This adds support for wlr_keyboard_groups to sway. There are two keyboard groupings currently supported, which can be set on a per-seat basis. The first keyboard grouping is none, which disables all grouping and provides no functional change. The second is keymap, which groups the keyboard devices in the seat by their keymap. With this grouping, the effective layout and repeat info is also synced across keyboard devices in the seat. Device specific bindings will still be executed as normal, but everything else related to key and modifier events will be handled by the keyboard group's keyboard.
* input_cmd_xkb_file: allow shell path expansionLibravatar Brian Ashworth2019-11-21
| | | | | This allows for shell path expansion for input_cmd_xkb_file. The logic has been extracted from output_cmd_background
* input/keyboard: cleanup xkb_file error handingLibravatar Brian Ashworth2019-11-21
| | | | | This fixes an inverted fclose return value check and simplifies the error handling and logging for xkb_file in sway_keyboard_compile_keymap
* Add note about backends to output max_render_timeLibravatar Ivan Molodetskikh2019-11-17
|
* output: check wlr_output in repaint handlerLibravatar Ivan Molodetskikh2019-11-17
| | | | | | It's possible for the output to be disconnected in just the right moment for wlr_output to be NULL in the repaint handler, causing a crash. This check fixes that crash.
* Add max_render_time to view JSONLibravatar Ivan Molodetskikh2019-11-17
|
* Add max_render_time to output JSONLibravatar Ivan Molodetskikh2019-11-17
|
* view: add max_render_timeLibravatar Ivan Molodetskikh2019-11-17
|
* Add sway_surfaceLibravatar Ivan Molodetskikh2019-11-17
| | | | For extending wlr_surface with additional things.
* output: add max_render_timeLibravatar Ivan Molodetskikh2019-11-17
|
* Add -Wno-missing-bracesLibravatar Simon Ser2019-11-17
| | | | | | | -Wmissing-braces makes it annoying to zero-initialize structs with = {0} when the first field is a struct. See for instance [1]. [1]: https://builds.sr.ht/~sircmpwn/job/110425
* grimshot: fix branching on command exit statusLibravatar Manuel Mendez2019-11-17
| | | | | | | | | | | | | | | | | | The previous behavior was incorrect because `if` was checking the return status of the `[` command which was never going to be an error. `[` seems to only return an error if no args are provided. This was basically a useless use of `[` anyway since it was just meant as a straight interpretation of command exit, something that `if` can do itself. Compare: ```sh [ ]; echo ?=$? [ /bin/false ]; echo ?=$? if [ /bin/false ]; then echo this is the unintended bug; fi if /bin/false; then echo this will not be printed; fi ```
* Use an enum instead of a marker string for map_to_Libravatar Tadeo Kondrak2019-11-17
|
* Implement input map_to_region commandLibravatar Tadeo Kondrak2019-11-17
|
* xwayland: get_constraints using size hintsLibravatar Rouven Czerwinski2019-11-16
| | | | | | Previously, Xwayland windows did not have size_constraints implemented, resulting in the window being resizable. This implements the constraints through the X11 size hints supplied by the window itself.
* seatop_default: handle focus for unmanaged xwayland windows lastLibravatar Ronan Pigott2019-11-08
| | | | Fixes #4707
* Use wlr_output_preferred_mode instead of the last modeLibravatar Simon Ser2019-11-05
| | | | | Instead of relying on the order of modes, use wlr_output_preferred_mode to get the preferred mode.
* Fix segfault in set_modeLibravatar Simon Ser2019-11-05
| | | | | | | best is NULL prior to being assigned to a mode. Closes: https://github.com/swaywm/sway/issues/4705 Fixes: f33dcd4c604f ("Prefer higher refresh rate default modes")
* Prefer higher refresh rate default modesLibravatar Ronan Pigott2019-11-05
|
* smart_borders: separate smartness from edge typesLibravatar Ronan Pigott2019-11-04
|
* Add --custom to `output mode` commandLibravatar Simon Ser2019-11-04
| | | | This forces to set the mode as a custom mode.
* seatop_default: handle focus for xwayland_unmanaged viewsLibravatar Ronan Pigott2019-11-04
|
* seatop_move_floating: make container respect pointer constraintLibravatar Ronan Pigott2019-11-04
|
* focus: do nothing on focus prev|next for workspacesLibravatar Ronan Pigott2019-11-04
|
* Rename symbol set_cloexec to sway_set_cloexec, remove duplicates.Libravatar Sheena Artrip2019-11-01
| | | | | | | | set_cloexec is defined by both sway and wlroots (and who-knows-else), so rename the sway one for supporting static linkage. We also remove the duplicate version of this in client/. Fixes: https://github.com/swaywm/sway/issues/4677
* focus: add a NULL check in `focus <direction>`Libravatar lbonn2019-11-01
| | | | | container is checked for NULL in other conditions earlier, it's not obvious that it can't be undefined here.
* Fix potential NULL reference on cleanupLibravatar lbonn2019-11-01
| | | | | | If allocation of bindings failed. Found with clang-tidy
* Fix various memory leaksLibravatar lbonn2019-11-01
| | | | Found with clang-tidy
* seat: simplify a strdupLibravatar lbonn2019-11-01
|
* Skip line continuation when it is a commentLibravatar Robert Günzler2019-10-31
| | | | | | | | | | | | | Currently commented lines ending in the backslash character will be concatenated with the following line. ``` # with this comment \ exec swaynag -m 'will not run' ``` This change modifies `getline_with_cont` to stop reading when the initial character is a '#'.
* Fix presentation feedback when scanning out fullscreen viewLibravatar Simon Ser2019-10-27
| | | | Closes: https://github.com/swaywm/sway/issues/4663