Commit message (Collapse)AuthorAge
* Update version to 1.5-rc11.5-rc1Libravatar Simon Ser2020-06-24
* Add Romanian translationLibravatar taminaru2020-06-23
* 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.
* grimshot: fix POSIX complianceLibravatar David Arnold2020-06-17
| | | | source is not POSIX compliant, '.' is. https://stackoverflow.com/a/11588629
* grimshot: Unary operator expectedLibravatar David Arnold2020-06-17
| | | | fixes this error: /usr/local/bin/grimshot: line 22: [: ==: unary operator expected
* 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.
* i3-compat: add GET_BINDING_STATE IPC commandLibravatar Jason Nader2020-06-14
* Remove view child surface_{map,unmap} listeners on destroyLibravatar Simon Ser2020-06-12
* view: fix surface_new_subsurface use-after-freeLibravatar Ronan Pigott2020-06-13
* swaybar: ensure correct init order for status_lineLibravatar Luke Drummond2020-06-12
| | | | | | | | | | | | | `$WAYLAND_SOCKET` is unset by `wl_display_connect` after it has successfully connected to the wayland socket. However, subprocesses spawned by swaybar (status-command) don't have access to waybar's fds as $WAYLAND_SOCKET is O_CLOEXEC. This means any status command which itself tries to connect to wayland will fail if this environment variable is set. Reorder display and status-command initialization so that this variable is not set and add an assert so we can enforce this invariant in future.
* Log Sway version on startupLibravatar Simon Ser2020-06-11
* swaynag: sway_abort on failure to properly registerLibravatar Luke Drummond2020-06-10
| | | | | | | | | In case `wl_display_roundtrip` returns an error after registering for events, print a more user-friendly error message and exit. Previously, if the build did not have assertions enabled, this would likely result in a segfault. With assertions enabled, it's not user friendly to terminate with internal implementation information.
* tree/view: fix smart gaps when ancestor container is tabbed or stackedLibravatar Tudor Brindus2020-06-08
| | | | Fixes #5406.
* input: tweak resize behavior to not change tab focus on border clickLibravatar Tudor Brindus2020-06-08
| | | | | | | If a resize is triggered on a tabbed or stacked container, change focus to the tab which already had inactive focus, rather than to the tab whose border was clicked -- otherwise, we'd change the active tab when the user probably just wanted to resize.
* swaynag: allow specifying more buttons which execute and dismissLibravatar Graham Christensen2020-06-09
| | | | | I don't love -z / -Z, but I figure this patch is far from being accepted for other reasons too.
* input/tablet: allow moving tiling tablet v2 surfaces by pen inputLibravatar Tudor Brindus2020-06-07
| | | | Closes #5293.
* input/tablet: allow moving floating tablet v2 surfaces by pen inputLibravatar Tudor Brindus2020-06-07
| | | | Refs #5293.
* tree/container: introduce `container_toplevel_ancestor` helperLibravatar Tudor Brindus2020-06-07
| | | | | This allows us to not have to explicitly write the same while loop everywhere.
* common/util: fix `get_current_time_msec` returning microsecondsLibravatar Tudor Brindus2020-06-06
| | | | | | | | This commit makes `get_current_time_msec` correctly return milliseconds as opposed to microseconds. It also considers the value of `tv_sec`, so we don't lose occasionally go back in time by one second. Finally, the function is moved into `util.c` so that it can be reused elsewhere without having to consider these pitfalls.
* Add wayland_client dependency to commonLibravatar TheAvidDev2020-06-06
* Use new wlroots API for clearing keyboard/pointer focus during grabsLibravatar Thomas Hebb2020-06-05
| | | | | | | | | We are not allowed to do what we did in #5222 and pass a `NULL` surface wlr_seat_pointer_notify_enter(), and it's causing crashes when an xdg-shell popup is active (see #5294 and swaywm/wlroots#2161). Instead, solve #5220 using the new wlroots API introduced in swaywm/wlroots#2217.
* Save transform during transactionLibravatar Kalyan Sriram2020-06-05
| | | Closes: https://github.com/swaywm/sway/issues/5412
* input/cursor: refactor tablet tool tip events into seatopsLibravatar Tudor Brindus2020-06-04
| | | | | | This commit moves tool tip event generation into seatops. In doing so, some corner cases where we'd erroneously (but likely harmlessly) generate both tablet and pointer events simultaneously are eliminated.
* shells: Resize on commit if geometry x/y changesLibravatar Kenny Levinsen2020-06-03
| | | | | Client-side decorations lead to changes to y position, so make sure we catch that.
* container: Remove useless surface dimensionsLibravatar Kenny Levinsen2020-06-03
| | | | The adjustments to resize logic left them unnecessary.
* transaction: Improve transaction commentaryLibravatar Kenny Levinsen2020-06-03
| | | | Some comments where slightly misleading.
* transaction: Account for full size when centering contentLibravatar Kenny Levinsen2020-06-03
| | | | | | The centering logic needs to take borders, titlebars and CSDs into account. Instead of using the main surface geometry, use the container and view geometry, which account for this.
* view: update_size should only update pending sizeLibravatar Kenny Levinsen2020-06-03
| | | | | Updating the current size outside transactions lead to rendering glitches during resizes.
* view: Save all buffers associated with viewLibravatar Kenny Levinsen2020-06-03
| | | | | | | | | | | | During the execution of a resize transaction, the buffer associated with a view's surface is saved and reused until the client acknowledges the resulting configure event. However, only one the main buffer of the main surface was stored and rendered, meaning that subsurfaces disappear during resize. Iterate over all, store and render buffers from all surfaces in the view to ensure that correct rendering is preserved.
* xwayland: pass focus to previous unmanaged surface on unmapLibravatar Tudor Brindus2020-06-01
| | | | | | | | This is necessary because some applications (e.g. Jetbrains IDEs) represent their multi-level menus as unmanaged surfaces, and when closing a submenu, the main menu should get input focus. Closes #5347.
* tree/container: refactor `tiling_container_at` to check boundsLibravatar Tudor Brindus2020-05-30
| | | | | | | This fixes bugs where a floating container would take input way past its borders when its parent was fullscreen, since the call to `tiling_container_at` in input/cursor.c's `node_at_coords` did not check bounds.
* Add views idle inhibition status in get_tree outputLibravatar Damien Tardy-Panis2020-05-29
| | | | Fixes #5286
* seat_cmd_cursor: emit frame eventsLibravatar Brian Ashworth2020-05-29
| | | | | | | This emits frame events for the seat_cmd_cursor subcommands. The wl_pointer frame event are required to notify clients when to process the events. It will now be emitted after cursor movement, button press, button release, and axis events.
* input/cursor: rename `simulated_tool_tip_down` to be more accurateLibravatar Tudor Brindus2020-05-29
| | | | | | | | | This is a tiny cleanup commit that renames `simulated_tool_tip_down` to `simulating_pointer_from_tool_tip`, making it match `simulating_pointer_from_touch`. This is a better name since it makes it clear that it's the *pointer* that's being simulated, not the tool tip.
* ipc: invert output transformation when necessaryLibravatar Tudor Brindus2020-05-28
| | | | | | | | After swaywm/wlroots#2023, #4996 inverted configuration transformations. For consistency, we should undo (double-apply) the inversion when communicating via IPC. Closes #5356.
* input/pointer: send pointer enter event on confine warpLibravatar Tudor Brindus2020-05-28
| | | | | | | | | | | | | | | | | | | The spec has this to say about sending events on confine creation: Whenever the confinement is activated, it is guaranteed that the surface the pointer is confined to will already have received pointer focus and that the pointer will be within the region passed to the request creating this object. ...and on region update: If warped, a wl_pointer.motion event will be emitted, but no wp_relative_pointer.relative_motion event. Prior to this patch, sway did neither, and updated the hardware cursor position without notifying the underlying surface until the next motion event. This led to inconsistent results, especially in applications that draw their own software cursor.
* Log Xwayland startup failuresLibravatar Tudor Brindus2020-05-27
| | | | | Though unlikely, this commit makes server initialization totally explicit in the logs.
* input/cursor: keep reference to cursor in constraintLibravatar Tudor Brindus2020-05-26
| | | | | | | set_region accepts a NULL *data, so we can't use it to reference the constraint and find the cursor through its seat. Fixes #5386.
* input/cursor: fix heap-buffer overflow in constraint set_regionLibravatar Tudor Brindus2020-05-25
| | | | Fixes #5383, caused by an oversight in 6f0a0bd.
* input/tablet: add seatop_down entry for tablet inputLibravatar Tudor Brindus2020-05-25
| | | | | | | | | | | | | | | | | | | | | | Currently, when tablet input exits a window during an implicit grab, it passes focus to another window. For instance, this is problematic when trying to drag a scrollbar, and exiting the window — the scrollbar motion stops. Additionally, without `focus_follows_mouse no`, the tablet passes focus to whatever surface it goes over regardless of if there is an active implicit. If the tablet is over a surface that does not bind tablet handlers, sway will fall back to pointer emulation, and all of this works fine. It probably should have consistent behavior between emulated and not-emulated input, though. This commit adds a condition for entering seatop_down when a tablet's tool tip goes down, and exiting when it goes up. Since events won't be routed through seatop_default, this prevents windows losing focus during implicit grabs. Closes #5302.
* common/log: use bright black rather than black for SWAY_DEBUGLibravatar Tudor Brindus2020-05-24
| | | | | | | On some terminals under default settings, black is truly rendered as `#000`, making it unreadable when the background is also black. Closes #5141.
* ipc: show marks of containers without view in treeLibravatar lbonn2020-05-22