aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorLines
2020-07-07seat/dnd: support null drag icon surfacesNick Diego Yamane-22/+20
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>
2020-07-06ISSUE_TEMPLATE: Use the newer issue templatesBrian Ashworth-48/+71
This utilizes the newer Github issue templates. They allow for the user to specify what type of issue they are submitting to allow for a more specific issue template to be shown. In addition to a hopefully easier to read/parse/follow bug report template, this also include templates for enhancements and i3 compatibility. This also includes a link to the IRC under the section title Questions. For the three templates, the labels bug, enhancement, and i3-compat will be automatically applied for the appropriate report to assist in triaging. Hopefully, this will result in less questions and issues for new window management functionality on Github and allow for better quality issues being submitted. At the very least, it allows us to outline our stances for bugs, enhancements, and i3-compatibility in an easier to read format.
2020-07-05protocols: sync wlr-layer-shell-unstable-v1 with wlrootsJan Beich-13/+39
2020-07-03commands/move: maintain workspace_layout when movingTudor Brindus-4/+14
Fixes #5157.
2020-07-03Replace unprintable characters in input device idwb9688-1/+2
2020-07-03tree/view: fix segfault in view_update_titleSimon Ser-1/+1
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
2020-07-02Unset DISPLAY when wlr_xwayland failsSimon Ser-0/+1
Avoids having applications connect to a leftover DISPLAY when Xwayland fails to initialize.
2020-07-02Don't set xwayland cursor when wlr_xwayland failedSimon Ser-1/+1
This causes a NULL pointer dereference.
2020-07-02seat: fix segfault in sway_input_method_relay_set_focusSimon Ser-8/+9
sway_input_method_relay_set_focus was called before sway_input_method_relay_init. Closes: https://github.com/swaywm/sway/issues/5503
2020-07-01commands/move: unwrap workspace container on move to new workspaceTudor Brindus-3/+25
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.
2020-07-01Minor wording changes in Romanian README.md translationTudor Brindus-7/+8
2020-07-01Update version to v1.5-rc2v1.5-rc2Drew DeVault-1/+1
2020-07-01tree/view: Make foreign-toplevel app_id fallback to classJohan Bjäreholt-2/+6
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
2020-06-30output: simplify loop over layer surfacesIsaac Freund-12/+4
2020-06-30seat: Refocus seat when wlr_drag is destroyedKenny Levinsen-0/+44
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
2020-06-30transaction: Mark client resize immediately readyKenny Levinsen-2/+7
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
2020-06-27tree/view: fix smart borders with tabbed/stacked ancestorTudor Brindus-8/+31
Fixes #5484.
2020-06-25input/pointer: correctly handle bindings for synthetic eventsTudor Brindus-2/+3
This commit addresses a regression introduced in 8fa74ad. Fixes #5481.
2020-06-24Update version to 1.5-rc11.5-rc1Simon Ser-1/+1
2020-06-23Add Romanian translationtaminaru-1/+63
2020-06-23Implement wlr-foreign-toplevel-management-v1Drew DeVault-0/+66
2020-06-19input_cmd_click_method: fix typo in error textTudor Brindus-1/+1
2020-06-19input/seat: don't notify keyboard grabs with NULL surface on shutdownTudor Brindus-1/+7
Fixes #5469, a minor regression introduced in #5368.
2020-06-19input: disable events for map_to_output devices when output not presentTudor Brindus-17/+44
Fixes #3449.
2020-06-18input/pointer: don't trigger pointer bindings for emulated inputTudor Brindus-16/+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.
2020-06-18input/cursor: send idle events based off device type, not input typeTudor Brindus-26/+45
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.
2020-06-17grimshot: fix POSIX complianceDavid Arnold-1/+1
source is not POSIX compliant, '.' is. https://stackoverflow.com/a/11588629
2020-06-17grimshot: Unary operator expectedDavid Arnold-2/+2
fixes this error: /usr/local/bin/grimshot: line 22: [: ==: unary operator expected
2020-06-17Add support for viewporterSimon Ser-11/+24
Depends on [1]. [1]: https://github.com/swaywm/wlroots/pull/2092
2020-06-16input/pointer: don't trigger pointer bindings for emulated inputTudor Brindus-23/+42
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.
2020-06-16input/tablet: focus appropriate node on tip downTudor Brindus-1/+23
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.
2020-06-16input/keyboard: wlr_keyboard_group enter and leaveBrian Ashworth-45/+128
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.
2020-06-14i3-compat: add GET_BINDING_STATE IPC commandJason Nader-0/+48
2020-06-12Remove view child surface_{map,unmap} listeners on destroySimon Ser-0/+4
2020-06-13view: fix surface_new_subsurface use-after-freeRonan Pigott-0/+1
2020-06-12swaybar: ensure correct init order for status_lineLuke Drummond-4/+8
`$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.
2020-06-11Log Sway version on startupSimon Ser-0/+1
2020-06-10swaynag: sway_abort on failure to properly registerLuke Drummond-1/+4
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.
2020-06-08tree/view: fix smart gaps when ancestor container is tabbed or stackedTudor Brindus-11/+13
Fixes #5406.
2020-06-08input: tweak resize behavior to not change tab focus on border clickTudor Brindus-1/+10
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.
2020-06-09swaynag: allow specifying more buttons which execute and dismissGraham Christensen-1/+30
I don't love -z / -Z, but I figure this patch is far from being accepted for other reasons too.
2020-06-07input/tablet: allow moving tiling tablet v2 surfaces by pen inputTudor Brindus-7/+25
Closes #5293.
2020-06-07input/tablet: allow moving floating tablet v2 surfaces by pen inputTudor Brindus-15/+52
Refs #5293.
2020-06-07tree/container: introduce `container_toplevel_ancestor` helperTudor Brindus-17/+19
This allows us to not have to explicitly write the same while loop everywhere.
2020-06-06common/util: fix `get_current_time_msec` returning microsecondsTudor Brindus-13/+16
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.
2020-06-06Add wayland_client dependency to commonTheAvidDev-1/+2
2020-06-05Use new wlroots API for clearing keyboard/pointer focus during grabsThomas Hebb-13/+11
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.
2020-06-05Save transform during transactionKalyan Sriram-1/+4
Closes: https://github.com/swaywm/sway/issues/5412
2020-06-04input/cursor: refactor tablet tool tip events into seatopsTudor Brindus-27/+25
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.
2020-06-03shells: Resize on commit if geometry x/y changesKenny Levinsen-2/+6
Client-side decorations lead to changes to y position, so make sure we catch that.