Commit graph

7036 commits

Author SHA1 Message Date
Will McKinnon ab5e65e050 refactor: move corner_radius to container struct 2022-10-21 00:44:03 -04:00
Will McKinnon f27ee32bd8 style: cleaned up comments 2022-10-20 21:18:25 -04:00
Will McKinnon 734dda8ffc style: cleaned up corner rendering function 2022-10-20 21:07:42 -04:00
Will McKinnon 193c46310f removed unused assets 2022-10-18 01:03:28 -04:00
Will McKinnon 906a8311a0 added screenshot to readme 2022-10-18 01:02:28 -04:00
Will McKinnon 61da2ef3b3 refactor: moved frag shader init to func 2022-10-15 13:37:48 -04:00
Will McKinnon aa9ac7f057 build: compile with swaybar 2022-10-09 11:51:40 -04:00
William McKinnon 90a80e7041
feat: add round borders (#22)
Co-authored-by: Erik Reider <35975961+ErikReider@users.noreply.github.com>
2022-10-09 11:47:34 -04:00
Will McKinnon 22a6aba9f0 removed unused (for now) blur shaders 2022-09-09 00:40:33 -04:00
William McKinnon c1f4cf17db
Add Anti-Aliased Corner Radius (#18) 2022-08-29 18:25:11 -04:00
Will McKinnon 3b287a73b9 moved shaders to header 2022-08-25 00:27:14 -04:00
Will McKinnon bdbd2512a8 added corner_radius documentation 2022-08-21 17:28:59 -04:00
William McKinnon 5c0086b944
Add rounded corners (#9) 2022-08-21 17:12:54 -04:00
William McKinnon c5d08f6085
Render rect with fx_renderer (#14)
* initial fx_render_rect work

* fixed rect rendering
2022-08-21 16:30:00 -04:00
Will McKinnon a61ad7c1a4 updated issue template 2022-08-16 22:08:37 -04:00
Will McKinnon d0ac9ca67e updated flake for revert to 1.7 2022-08-15 00:59:43 -04:00
Will McKinnon 7b530bf448 Revert "merge sway master"
This reverts commit 7460d9f565.
2022-08-15 00:54:07 -04:00
William McKinnon cf1ed777ae
Add official fx renderer (#3) 2022-08-13 02:14:23 -04:00
William McKinnon 06f19c81a4 Update README.md 2022-04-29 12:55:02 -04:00
William McKinnon 0eccfe24df default waybar to false 2022-04-29 12:45:34 -04:00
William McKinnon 45bca03713
Create README.md 2022-04-29 12:41:35 -04:00
William McKinnon 7460d9f565 merge sway master 2022-04-27 17:33:23 -04:00
William McKinnon c37aba2736 added nix flake 2022-04-27 14:31:46 -04:00
William McKinnon 4660771f6a
Merge pull request #1 from swaywm/v1.7
V1.7
2022-04-26 21:44:51 -04:00
William McKinnon ccda4dae0f added nix shell 2022-04-26 21:38:47 -04:00
Simon Ser 5543acff06 build: bump version to 1.7 2022-01-22 23:55:11 +01:00
Ronan Pigott 3a65ad427a cmd/swap: error on swapping a container with itself
(cherry picked from commit feea4b44108cf971ff8d1d474a75128dd737c1db)
2022-01-22 23:37:16 +01:00
Rouven Czerwinski 0adcf77f3f transaction: destroying nodes aren't hidden
Commit 37d7bc6998 ("transaction: Only wait for ack from visible
views") introduced a check which uses view_is_visible() to check if a view
is still visible on the screen. However view_is_visible() will early
return in case the node is in the destroying state. This is incorrect
for transactions, since a destroying view which is visible will trigger
configure events for other clients. This bug was visible when repeatedly
opening and closing two views side by side, since we ignore the
destroying node we get a frame where the still open view is shown with
the old configure values and the rest is the desktop background. The
next frame is than correct again.

Fix this by considering destroying views as visible, we correctly wait
for them and send the configure events to other views in time, fixing
the background flicker.

Fixes #6473

(cherry picked from commit e4909ab4a3514d9b3bfb01473cd3cd1704c8cd05)
2022-01-21 13:13:16 +01:00
Patrick Hilhorst cd1a0aa293 treat fullscreen windows as 'tiled' for commands/focus
(cherry picked from commit b2ee964434b25a0ccbccb1486b027f69ef34acff)
2022-01-21 13:13:16 +01:00
Tudor Brindus 7a5e62036d input/cursor: treat swipe begin as idle activity too
Accidentally overlooked in fd53f80.

(cherry picked from commit 7d1ccafae5a5d2eddfda2f857ea81ce88f141ddc)
2022-01-21 13:13:16 +01:00
Tudor Brindus 9a2155eed2 input/cursor: count pointer gestures as idle activity
Fixes https://github.com/swaywm/sway/issues/6765.

(cherry picked from commit fd53f80156cee413a5166fb8e904a11901e45548)
2022-01-21 13:13:16 +01:00
Simon Ser ab11f40479 build: bump version to 1.7-rc3 2022-01-16 19:40:11 +01:00
Simon Ser c9ff52daa3 ci: checkout wlroots 0.15.0 2022-01-16 19:39:24 +01:00
Kirill Chibisov 6bb3e7ee05 build: fix building with basu
02b412a introduced the use of list for sdbus deps, however
it was assuming that all packages which were in a list has a version
higher than 239. That is true for libsystemd and libelogind, since they
use the same versions, however basu is using version numbers which are
way lower than what libsystemd/libelogind are using, so basu only build
is failing.

(cherry picked from commit dbaf2e4fdb327f05f792b69430fe6f893fc9d879)
2022-01-16 19:26:57 +01:00
Aleksei Bavshin 1a5db66366 xdg-shell: use toplevel geometry to adjust the popup box
`popup_unconstrain` uses view coordinates to init the output box for
popups. However wlroots expects the box to be set in a toplevel surface
coordinate system, which is not always equal to view. The difference
between those is a window geometry set via xdg-shell.

GTK4 reserves some space for client-side decoration and thus has a
window with top left corner not matching to (0, 0) of a surface. The box
calculated without taking that into account was slightly shifted
compared to the actual output and allowed to position part of the popup
off screen.

(cherry picked from commit aa443629b58e1d3d10cf64e689b661c076808d66)
2022-01-16 19:26:57 +01:00
Kenny Levinsen 67d3d952b6 Print deprecation notice when running SUID
SUID privilege drop is needed for the "builtin"-backend of libseat,
which copied our old "direct" backend behavior for the sake of
compatibility and ease of transition.

libseat now has a better alternative in the form of seatd-launch. It
uses the normal seatd daemon and libseat backend and takes care of SUID
for us.

Add a soft deprecation warning to highlight our future intent of
removing this code. The deprecation cycle is needed to avoid surprises
when sway no longer drops privileges.

(cherry picked from commit e1db1f8218998c428e8b087dda6660449ef2891a)
2022-01-16 19:26:57 +01:00
Kenny Levinsen 02a69dde9f meson: check: false on run_command
Future meson releases will change the default and warns when the
implicit default is used, breaking builds.

Explicitly set check: false to maintain behavior and silence warnings.

(cherry picked from commit 470e04e8da6e078da77190998b5e0c34e244839a)
2022-01-16 19:26:57 +01:00
Simon Ser e0a591fb93 Add safety assert in parse_movement_unit
Let's add this just in case a caller passes argc == 0.

References: https://github.com/swaywm/sway/issues/6737#issuecomment-1008082540
(cherry picked from commit 6cb69a40c757cc44906fd928c43e60612c0e7ce8)
2022-01-16 19:26:57 +01:00
Simon Ser 6859861998 build: bump version to 1.7-rc2 2022-01-09 11:53:35 +01:00
Simon Ser 297a0c9d35 Destroy sub-surfaces with parent layer-shell surface
Closes: https://github.com/swaywm/sway/issues/6337
(cherry picked from commit e2b4c573d6506250c77f01512bc07c72996cd363)
2022-01-09 11:49:53 +01:00
David96 3ab1c7f153 commands/move: Fix crash when pos_y is omitted
Fixes #6737

(cherry picked from commit 1bf1d84b7535c3c132240ed7b18414dc6cfe7e8a)
2022-01-09 11:49:53 +01:00
David Rosca 828a9a3cfb container: Fix crash when view unmaps + maps quickly
Followup on 4e4898e90f.

If a view quickly maps and unmaps repeatedly, there will be multiple
destroyed containers with same view in a single transaction. Each of
these containers will then try to destroy this view, resulting in use
after free.
The container should only destroy the view if the view still belongs
to the container.

Simple reproducer: couple XMapWindow + XUnmapWindow in a loop followed
by XDestroyWindow.

See #6605

(cherry picked from commit f92329701b0983ec41fec29d3abc5c751cbe4a28)
2022-01-07 19:36:27 +01:00
Nathan Schulte 44bb0aa3ee swaybar: fix tray item icon scaling, positioning
(cherry picked from commit 107d15fafde279cef0855197e243b64fbffa5c3e)
2022-01-07 15:09:24 +01:00
Nathan Schulte ec9e4630e0 swaybar: fix tray_padding vs min-height re: scale
Co-authored-by: xdavidwu <xdavidwuph@gmail.com>
(cherry picked from commit bb60381c7599677eb07b309fdbe418008201de44)
2022-01-07 15:09:24 +01:00
Thomas Hebb a235794a96 input/seat: unset has_focus when focus_stack becomes empty
We currently track the focus of a seat in two ways: we use a list called
focus_stack to track the order in which nodes have been focused, with
the first node representing what's currently focused, and we use a
variable called has_focus to indicate whether anything has focus--i.e.
whether we should actually treat that first node as focused at any given
time.

In a number of places, we treat has_focus as implying that a focused
node exists. If it's true, we attempt to dereference the return value of
seat_get_focus(), our helper function for getting the first node in
focus_list, with no further checks. But this isn't quite correct with
the current implementation of seat_get_focus(): not only does it return
NULL when has_focus is false, it also returns NULL when focus_stack
contains no items.

In most cases, focus_stack never becomes empty and so this doesn't
matter at all. Since focus_stack stores a history of focused nodes, we
rarely remove nodes from it. The exception to this is when a node itself
goes away. In that case, we call seat_node_destroy() to remove it from
focus_stack and free it. But we don't unset has_focus if we've removed
the final node! This lets us get into a state where has_focus is true
but seat_get_focus() returns NULL, leading to a segfault when we try to
dereference it.

Fix the issue both by updating has_focus in seat_node_destroy() and by
adding an assertion in seat_get_focus() that ensures focus_stack and
has_focus are in sync, which will make it easier to track down similar
issues in the future.

Fixes #6395.

[1] There's some discussion in #1585 from when this was implemented
about whether has_focus is actually necessary; it's possible we could
remove it entirely, but for the moment this is the architecture we have.

(cherry picked from commit 921b0a863382b70234aeb4bd589c10328e9ff042)
2022-01-07 15:09:24 +01:00
Simon Ser 0e5dda3747 build: bump version to 1.7-rc1 2021-12-23 14:38:56 +01:00
Simon Ser d7867d41c2 Add cairo_image_surface_create error handling
cairo_image_surface_create can fail, e.g. when running out of
memory or when the size is too big. Avoid crashing in this case.

Closes: https://github.com/swaywm/sway/issues/6531
(cherry picked from commit 59aebaa5f9f3afe9cdfbb0d37c4dc631690da3b9)
2021-12-23 12:16:37 +01:00
Simon Ser 5d16d15a95 swaybar: fix errno handling in status_handle_readable
If getline fails once, it was not reset before the next getline
call. errno is only overwritten by getline on error.

(cherry picked from commit 414950bbc8e833362a689cc11720855e8edd1323)
2021-12-23 12:16:37 +01:00
Ronan Pigott 9ecbfe3665 output: emit node::destroy event
Now output_begin_destroy emits the node::destroy event similar to
workspace_begin_destroy. It currently has no listeners, since they
listen to output::disable or wlr_output::destroy instead.
2021-12-17 14:39:48 +01:00
Ronan Pigott ebfe432ec3 output: change output::destroy to output::disable
This changes output::destroy to output::disable and emits it only
once when an output is disabled, instead of twice in succession.
2021-12-17 14:39:48 +01:00