Age | Commit message (Collapse) | Author |
|
Closes https://github.com/swaywm/sway/issues/6987
Co-authored-by: JJGadgets <git@jjgadgets.tech>
Co-authored-by: DeltaWhy <mike5713@gmail.com>
|
|
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4046
|
|
This allows for layer shell surfaces to receive focus while the surface is explicitly focused, i.e allowing
text fields to receive keyboard input just like a regular surface.
|
|
|
|
|
|
|
|
This lets us easily add rendering state that we need in the future
|
|
|
|
|
|
And fix the resulting build failures.
|
|
This allows the compiler to catch mismatches between the format
string and the arguments passed in.
Need to add -Wno-format-zero-length because we pass an empty string
on purpose in swaybar/render.c.
|
|
Simple helpers to allocate and format a string.
|
|
|
|
This makes the behavior of floating containers more consistent with i3.
The coordinates of the container are scaled when the size of the
workspace it is on changes or when the container is moved
between workspaces on different outputs.
For scratchpad containers, add a new state that preserves the dimensions
of the last output the window appeared on. This is necessary because
after a container is hidden in the scratchpad, we expect it to be in the
same relative position on the output when it reappears. We can't just
use the container's attached workspace because that workspace's
dimensions might have been changed or the workspace as a whole could
have been destroyed.
|
|
That way output_render() only does what it says on the tin.
|
|
|
|
Atm we got issue with the touch position sent to the clients. While
holding contact, leaving the initial container will continue to send
motion event to the client but with the new local position from the new
container.
This seatop goal is to send the position of the touch event, relatively
to the initial container layout position.
|
|
Closes: https://github.com/swaywm/sway/issues/7464
|
|
We can centralize all output-related surface events from there.
|
|
|
|
|
|
This way we can move focus on the same seat an activation token
originates from.
|
|
For compatibility with i3 [1].
[1]: https://i3wm.org/docs/ipc.html#_output_event
|
|
Additionally, rename the function responsible for switching focus to
match its behavior better.
|
|
And fix the fallout of the swaynag_destroy having evolved without
being tested:
* wl_display_disconnect was called too early
* `button_close` and `swaynag.details.button_details` needed to be
heap allocated, since they are added to swaynag.buttons, and all
entries of swaynag.buttons are freed in swaynag_destroy
* To keep things simpler, disconnect the lifetime of the 'Toggle details'
button text config setting from the button itself.
|
|
This change allows the tablet tool button to be used for floating mod
resize. In addition, it attempts to ensure that tablet tool events are
consistent such that tablet v2 events and pointer events will never be
interleaved, and such that the tool buttons count will never fall out of
sync and cause tool button emulation to break.
Some of this logic is similar to what is done for tablet tool tip, but
not quite identical, because of the complication that we have to deal
with multiple inputs that can overlap eachother.
Fixes #7036.
|
|
|
|
|
|
|
|
It's too easy to have this go out of sync with font_description.
|
|
This patch adds the libinput option RotationAngle to sway.
Signoff-by: Lucas Zampieri <lzampier@redhat.com>
|
|
See: https://github.com/swaywm/sway/issues/4511
Adds a bool config option `primary_selection`, which explicitly
enables/disables the primary selection clipboard. Defaults to enabled.
This is implemented as a launch-only option which enables or disables the creation of the
`zwp_primary_selection_device_manager_v1` global.
Co-authored-by: Tilde Rose <t1lde@protonmail.com>
|
|
|
|
|
|
The previous commit prioritized hotspots before bar bindings for press events,
which matches i3's behaviour. However, since hotspots don't need to do any
processing on release events, those were not handled, and simply fell through
to `bindsym --release` bar bindings (if any).
This is counter-intuitive, and doesn't match i3's behaviour. Instead in case
a hotspot handles the press event, it should also handle the release event,
doing nothing, but blocking the event from triggering a --release bar binding.
E.g., in Sway, without this commit, this config. shows a text on tray clicks:
bar {
# ...
bindsym --release button1 exec swaynag -m I_got_the_release_event.
}
But the same configuration in i3 (with i3-nagbar) doesn't show the text.
Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
|
|
|
|
|
|
We want to create a context before knowing the pid it will match with.
|
|
|
|
Views now maintain a reference to a launch context which, as a last
resort, is populated at map time with a context associated with its pid.
This opens the possibility of populating it before map via another
source, e.g. xdga-tokens or configuration.
|
|
Soon we will match views with more than just a pid.
|
|
This removes the need to rename the pid_workspaces when a workspace
is renamed.
It also opens the possibility of tracking other node types. Tracking
containers would allow application to be placed correctly in the
container tree even if the user has moved their focus elsewhere since
it was launched.
|
|
This removes the pid_workspace bits from tree/root before it gets
too interesting.
No functional change.
|
|
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3814
|
|
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3599
|
|
References: https://github.com/swaywm/wlroots/pull/2693
|
|
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3861
|
|
wlr_output_damage is to be replaced with wlr_damage_ring, so use that.
|
|
Support the new dwtp (disable while trackpointing) option introduced in
libinput 1.21, allowing users to control whether the trackpoint (like
those in Thinkpads, but not only) should be disabled while using the
keyboard/touchpad.
See: https://gitlab.freedesktop.org/libinput/libinput/-/issues/731
|
|
When removing outputs, it is possible to end up in a situation where
none of the session lock client's surfaces have keyboard focus,
resulting in it not receiving keyboard events. Track the focused
surface and update it as needed on surface destroy.
|