aboutsummaryrefslogtreecommitdiffstats
path: root/sway
Commit message (Collapse)AuthorAge
...
* view: remove foreign toplevel listeners on destroyLibravatar Ronan Pigott2020-08-05
|
* view: implement foreign toplevel fullscreen requestLibravatar Ronan Pigott2020-08-05
|
* view: implement foreign toplevel fullscreen indicatorLibravatar Ronan Pigott2020-08-05
|
* document force_display_urgency_hintLibravatar Rex Hackbro2020-08-03
|
* fix force_display_urgency_hint parsingLibravatar Rex Hackbro2020-08-03
|
* fix typosLibravatar Rex Hackbro2020-08-03
|
* Fix incorrect format specifiersLibravatar Antonin Décimo2020-07-30
|
* Log empty value if envvar is not definedLibravatar Antonin Décimo2020-07-30
| | | | | | | If the environment variable is not defined, getenv returns NULL. Passing a NULL pointer to the "%s" format specifier is undefined behavior. Even if some implementations output "(null)", an empty string is nicer.
* cmd/bar/colors: fix dereference of null pointerLibravatar Antonin Décimo2020-07-30
| | | | | | `!*rgba` tests if the first byte of rgba isn't `'\0'`. `hex_to_rgba_hex` returns NULL if `parse_color` fails. There's a null pointer dereference in that case. The intended behavior is `!rgba`.
* ipc: fix aligment issue of data bufferLibravatar Antonin Décimo2020-07-30
| | | | | | The pointer `data` is cast to a more strictly aligned pointer type. To prevent issues, the `data32` buffer is removed and its occurrences are replaced with an offset from the `data` buffer.
* Use wlr_output_layout_output_at to get output for move to cursorLibravatar Thayne McCombs2020-07-27
|
* Keep windows in bounds on move to position mouseLibravatar Thayne McCombs2020-07-27
| | | | | | | | | | | | | If the mouse/cursor/pointer is near the edge of an output when a "move position to pointer" command is run, then the floating container will be constrained to fit inside the bounds of the output as much as possible. This behavior matches what i3 does in this scenario. I also think it is a better user experience. Relates to #4906 The logic for the bounds check follows the implementation in i3: https://github.com/i3/i3/blob/733077822302d8b77eacb606a26fd002a42f534f/src/floating.c#L536
* commands: disallow runtime includeLibravatar Ronan Pigott2020-07-27
|
* view: display scratchpad hidden containers when activated by ftmLibravatar Ronan Pigott2020-07-25
|
* Fix X11 clients getting stuck minimizedLibravatar Tobias Langendorf2020-07-22
| | | | | | | | | | | Usually it should be enough to simply not grant a client's minimize request, however some applications (Steam, fullscreen games in Wine) don't wait for the compositor and minimize anyway, getting them stuck in an unrecoverable state. Restoring them immediately lead to heavy flickering when unfocused on my test application (Earth Defense Force 5 via Steam), so it's preferable to grant their request without actually minimizing and then restoring them once they are in focus again.
* Fix typos in man page.Libravatar Antonin Décimo2020-07-21
|
* added ppt unit to move position commandLibravatar Nils Schulte2020-07-21
|
* moved and renamed movement-unit parsing to commonLibravatar Nils Schulte2020-07-21
|
* sway.5: add missing underscoreLibravatar Ronan Pigott2020-07-19
|
* desktop: output: Scale custom output refresh rateLibravatar Andri Yngvason2020-07-18
| | | | | This fixes an issue with wlr-output-management causing the frame rate to jump to 60000 Hz when setting a custom mode.
* input/cursor: don't send wl_pointer.motion event on pointer unlock warpLibravatar Tudor Brindus2020-07-15
| | | | | | | | On warping to a cursor hint, update the pointer position we track as well, so that on the next pointer rebase we don't send an unexpected synthetic motion event to clients. Fixes #5405.
* xdg_shell: schedule configure on maximize requestsLibravatar Ronan Pigott2020-07-14
|
* Assert output is found before removing from listLibravatar Simon Ser2020-07-13
| | | | References: https://github.com/swaywm/sway/issues/5483
* input: implement xdg_toplevel interactive resize hintsLibravatar Ronan Pigott2020-07-13
|
* config/output: don't change output state before commitLibravatar Simon Ser2020-07-10
| | | | | | | | | | | | | | | | | | | | | | | Previously, we called output_disable prior to wlr_output_commit. This mutates Sway's output state before the output commit actually succeeds. This results in Sway's state getting out-of-sync with wlroots'. An alternative fix [1] was to revert the changes made by output_disable in case of failure. This is a little complicated. Instead, this patch makes it so Sway's internal state is never changed before a successful wlr_output commit. We had two output flags: enabled and configured. However enabled was set prior to the output becoming enabled, and was used to prevent the output event handlers (specifically, the mode handler) from calling apply_output_config again (infinite loop). Rename enabled to enabling and use it exclusively for this purpose. Rename configure to enabled, because that's what it really means. [1]: https://github.com/swaywm/sway/pull/5521 Closes: https://github.com/swaywm/sway/issues/5483
* Reload command now matches i3's implementationLibravatar Geoffrey Casper2020-07-07
|
* seat/dnd: support null drag icon surfacesLibravatar Nick Diego Yamane2020-07-07
| | | | | | | | | | | | | | | | | As per the Wayland spec [1]: > The icon surface is an optional (can be NULL) surface that provides an > icon to be moved around with the cursor. However, as of now Sway "start_drag" signal handler does not starts the DND session unless a non-NULL drag icons is provided. This patch fixes it by skipping handling of the drag icon if it is null. Fixes #5509 [1] https://wayland.freedesktop.org/docs/html/apa.html#protocol-spec-wl_data_device Signed-off-by: Nick Diego Yamane <nickdiego@igalia.com>
* commands/move: maintain workspace_layout when movingLibravatar Tudor Brindus2020-07-03
| | | | Fixes #5157.
* Replace unprintable characters in input device idLibravatar wb96882020-07-03
|
* tree/view: fix segfault in view_update_titleLibravatar Simon Ser2020-07-03
| | | | | | | | xdg-shell doesn't allow clients to set the title to NULL, so we shouldn't need to call wlr_foreign_toplevel_handle_v1_set_title with an empty string to reset the old one. Closes: https://github.com/swaywm/sway/issues/5488
* Unset DISPLAY when wlr_xwayland failsLibravatar Simon Ser2020-07-02
| | | | | Avoids having applications connect to a leftover DISPLAY when Xwayland fails to initialize.
* Don't set xwayland cursor when wlr_xwayland failedLibravatar Simon Ser2020-07-02
| | | | This causes a NULL pointer dereference.
* seat: fix segfault in sway_input_method_relay_set_focusLibravatar Simon Ser2020-07-02
| | | | | | | sway_input_method_relay_set_focus was called before sway_input_method_relay_init. Closes: https://github.com/swaywm/sway/issues/5503
* commands/move: unwrap workspace container on move to new workspaceLibravatar Tudor Brindus2020-07-01
| | | | | | | | | If moving e.g. `T[app app]` into a new workspace with `workspace_layout tabbed`, then post-move the tree in that workspace will be `T[T[app app]]`. This still happens with horizontal or vertical workspace layout, but is less visible since those containers have no decorations. Fixes #5426.
* tree/view: Make foreign-toplevel app_id fallback to classLibravatar Johan Bjäreholt2020-07-01
| | | | | | | | | | | | | | | It is not a part of the foreign-toplevel-management protocol to get the class of a toplevel, only for getting the app_id. For xwayland clients this is an issue because that means that you cannot identify what application the toplevel refers to which is the point of the app_id property. By falling back to class when an app_id does not exist solves this problem. Phoc also uses app_id and class interchangeably in their implementation of foreign-toplevel-management, in fact they always do that and not only for just this protocol. https://source.puri.sm/Librem5/phoc/-/blob/c8d8a4c5440a6c1647b09dbd3bba7999f9cd433c/src/xwayland.c#L236
* output: simplify loop over layer surfacesLibravatar Isaac Freund2020-06-30
|
* seat: Refocus seat when wlr_drag is destroyedLibravatar Kenny Levinsen2020-06-30
| | | | | | | | | | | | wlr_drag installs grabs for the full duration of the drag, leading to the drag target not being focused when the drag ends. This leads to unexpected focus behavior, especially for the keyboard which requires toggling focus away and back to set. We can only fix the focus once the grabs are released, so refocus the seat when the wlr_drag destroy event is received. Closes: https://github.com/swaywm/sway/issues/5116
* transaction: Mark client resize immediately readyLibravatar Kenny Levinsen2020-06-30
| | | | | | | | | | | | | If a client commits a new size on its own, we create a transaction for the resize like any other. However, this involves sending a configure and waiting for the ack, and wlroots will not send configure events when there has been no change. This leads to transactions timing out. Instead, just mark the view ready immediately by size when the client is already ready, so that we avoid waiting for an ack that will never come. Closes: https://github.com/swaywm/sway/issues/5490
* tree/view: fix smart borders with tabbed/stacked ancestorLibravatar Tudor Brindus2020-06-27
| | | | Fixes #5484.
* input/pointer: correctly handle bindings for synthetic eventsLibravatar Tudor Brindus2020-06-25
| | | | | | This commit addresses a regression introduced in 8fa74ad. Fixes #5481.
* Implement wlr-foreign-toplevel-management-v1Libravatar Drew DeVault2020-06-23
|
* input_cmd_click_method: fix typo in error textLibravatar Tudor Brindus2020-06-19
|
* input/seat: don't notify keyboard grabs with NULL surface on shutdownLibravatar Tudor Brindus2020-06-19
| | | | Fixes #5469, a minor regression introduced in #5368.
* input: disable events for map_to_output devices when output not presentLibravatar Tudor Brindus2020-06-19
| | | | Fixes #3449.
* input/pointer: don't trigger pointer bindings for emulated inputLibravatar Tudor Brindus2020-06-18
| | | | | | | | | | Prior to this commit, a tablet device could trigger mouse button down bindings if the pen was pressed on a surface that didn't bind tablet handlers -- but it wouldn't if the surface did bind tablet handlers. We should expose consistent behavior to users so that they don't have to care about emulated vs. non-emulated input, so stop triggering bindings for any non-pointer devices.
* input/cursor: send idle events based off device type, not input typeLibravatar Tudor Brindus2020-06-18
| | | | | | | | Previously, a tablet or touch device could report activity as a pointer device if it went through pointer emulation. This commit refactors idle sources to be consistently reported based on the type of the device that generated an input event, and now how that input event is being processed.
* Add support for viewporterLibravatar Simon Ser2020-06-17
| | | | | | Depends on [1]. [1]: https://github.com/swaywm/wlroots/pull/2092
* input/pointer: don't trigger pointer bindings for emulated inputLibravatar Tudor Brindus2020-06-16
| | | | | | | | | | Prior to this commit, a tablet device could trigger mouse button down bindings if the pen was pressed on a surface that didn't bind tablet handlers -- but it wouldn't if the surface did bind tablet handlers. We should expose consistent behavior to users so that they don't have to care about emulated vs. non-emulated input, so stop triggering bindings for any non-pointer devices.
* input/tablet: focus appropriate node on tip downLibravatar Tudor Brindus2020-06-16
| | | | | | | | | This commit makes tablet input more usable when `focus_follows_mouse` is set to `no`. Previously, tapping down on surfaces that bound tablet input would not switch focus, whereas tapping on surfaces that didn't (and hence went through pointer emulation) did.
* input/keyboard: wlr_keyboard_group enter and leaveLibravatar Brian Ashworth2020-06-16
| | | | | | | | This adds support for wlr_keyboard_group's enter and leave events. The enter event just updates the keyboard's state. The leave event updates the keyboard's state and if the surface was notified of a press event for any of the keycodes, it is refocused so that it can pick up the current keyboard state without triggering any keybinds.