Commit graph

729 commits

Author SHA1 Message Date
Will McKinnon 6ef904a960 style: shader style fixes 2022-11-11 21:28:32 -05:00
Will McKinnon 1a9f17054d feat: added support for external textures 2022-11-11 21:24:42 -05:00
Will McKinnon 6ca742d4f2 feat: render tiling move indicator with round corners 2022-11-11 20:05:17 -05:00
Erik Reider 1881b01d3f
Per application color saturation support (#21)
* Initial implementation without fullscreen support

* Limit saturation to 2

* Fixed saturation not working for fullscreen applications like CSGO

* Fixed saturation ignoring border radius

* Updated README and sway.5 man page

* Rebased from Master

* Added command to README

* Fixed nitpicks
2022-11-11 19:38:09 -05:00
William McKinnon 1930bd0d71
feat: add round titlebars (#26) 2022-11-11 01:19:02 -05:00
Will McKinnon 9ee7fa61af style: moved corner radius scaling out of fx call 2022-11-10 02:16:15 -05:00
Will McKinnon 26271ef865 refactor: move shaders to individual files 2022-11-10 01:52:04 -05:00
Will McKinnon 78ac402053 bug: fix label build failure 2022-11-01 18:31:01 -04:00
Will McKinnon eddbde479c style: cleaned up some frag shaders 2022-10-26 02:48:49 -04:00
Will McKinnon e6cb4e9fa0 fix: corner borders no longer render when borders are off 2022-10-26 01:12:57 -04:00
Will McKinnon 55f8222855 refactor: improved rounded corner shader 2022-10-26 00:25:33 -04:00
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 61da2ef3b3 refactor: moved frag shader init to func 2022-10-15 13:37:48 -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
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
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 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 7460d9f565 merge sway master 2022-04-27 17:33:23 -04: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
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
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
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
Vsevolod f7725011ef
Add focused_tab_title 2021-12-10 16:09:29 +01:00
Simon Ser 3f58f12617 Fixup headless output names
We use the headless backend to create a special fallback output
used when no other output is connected. However this messes up the
"real" headless output names users have come to expect (e.g.
currently the first headless output will be named "HEADLESS-2"
instead of "HEADLESS-1").

Fix this by setting the output name with [1].

[1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3395
2021-12-09 10:47:01 -06:00
Kirill Primak 03a29ed36d output: remove surface buffer damage check
A surface can have effective damage even without any buffer damage
committed.
2021-12-06 16:44:34 +01:00
Simon Zeni 0cd8efe0bb sway: replace noop_output by fallback_output
wlroots removed the support for the noop backend. Instead we rely on the
headless backend to provide the fallback output.
2021-11-25 17:48:34 +01:00
Simon Zeni 5865af75cf sway: create wlr_renderer and wlr_allocator
wlroots now required the compositor to create its own wlr_renderer and
wlr_allocator to initialize the wlr_output
2021-11-18 17:47:19 +01:00
David Rosca 215787e8b2 xwayland: Clear wlr_xwayland_surface in handle_destroy
If the destroyed xwayland view is in transaction, it won't
be destroyed immediately. wlr_xwayland_surface then becomes
dangling pointer.

Closes #6605
Closes #5884
2021-10-19 10:42:19 +03:00
Simon Ser 0c210a5e68 Handle present events with NULL timespec field
See [1].

[1]: https://github.com/swaywm/wlroots/pull/3245
2021-10-15 19:34:03 +02:00
Tassilo Horn a47f8ef478 Fix compile after wlroots commit c3e54021f8bbf3ec1c1e5906459be0ae85f5fb8c 2021-10-07 21:29:37 +03:00
Bartel Sielski 8fa7b99859 idle_inhibit: Fix tree view after changes in commit 152a559e
Commit 152a559e replaced the view pointer in the inhibitor struct with a
pointer to the wlr_inhibitor for application inhibitors. But this was not
changed in the sway_idle_inhibit_v1_application_inhibitor_for_view function.
This caused a bug in the sway tree view where the application inhibitor is
always "none".
2021-10-04 16:25:35 +02:00
Simon Ser c43f1fbf1c Chase wlr_xdg_surface breaking changes
See [1].

[1]: https://github.com/swaywm/wlroots/pull/3106
2021-10-01 00:21:56 +03:00
Kirill Primak 5fd5d6434e layer-shell: fix commit handler
This commit makes sure the extents are kept up-to-date, fixes not
damaging the surface if its layer shell-specific state didn't change,
and adds a check if the layer shell-specific state didn't change but the
surface got mapped/unmapped, which could affect keyboard focus.
2021-09-25 22:21:51 +03:00
Kirill Primak c11b5db4d6 layer-shell: check committed bitmask
This avoids infinite configure-ack_configure-commit loop.
2021-09-24 14:40:59 +02:00
Kirill Primak b7b3ef6dcf layer-shell: chase wlr layer surface refactor 2021-09-23 21:32:56 +02:00
Kirill Primak b1d41db6cf Revert "xdg_shell: schedule configure on maximize requests"
This reverts commit 4dd46f06ac, as the
logic is now handled by wlroots.
2021-09-21 14:29:37 +02:00
Kirill Primak eb03298b46 xdg-shell: chase wlr xdg toplevel refactor 2021-09-21 10:12:27 +02:00
Simon Ser 82d5f12914 Add -Dnoscanout debug option
This can help debugging direct scan-out issues, such as [1].

[1]: https://github.com/swaywm/wlroots/issues/3185
2021-09-20 14:22:35 +02:00
Simon Zeni 30c28ff8f7 introduce wlr_drm_lease_v1
This prevents sway from extending the desktop to i.e. VR headsets, and makes
them available for DRM leasing.

Non-desktop wlr_outputs will be offered through the wlr_drm_lease_v1_manager
interface for client to lease.
2021-09-09 15:25:19 +02:00
Kirill Primak e76e13ef85 view: fix child position calc
Previously, the position was calculated incorrectly for nested
subsurfaces.
2021-09-08 09:36:17 +02:00
Kirill Primak 91d6d00414 render: fix -Ddamage=rerender 2021-09-07 14:52:29 +02:00
Tudor Brindus daaec72ac0 desktop/xwayland: restack surface upon activation
This commit updates Sway for swaywm/wlroots#2915.
2021-08-28 22:04:31 +02:00
Hugo Osvaldo Barrera 62d90a8e95 Use fixed titlebar heights
Use fixed titlebar heights. The default height is calculated based on
font metrics for the configured font and current locale.

Some testing with titles with emoji and CJK characters (which are
substantially higher in my setup) shows that the titlebars retain their
initial value, text does shift up or down, and all titlebars always
remain aligned.

Also drop some also now-unecessary title_height calculations.

Makes also needed to be updated, since they should be positioned with
the same rules.
2021-08-26 20:16:14 +02:00
Simon Ser c9060bcc12 layer-shell: replace close() with destroy()
Update for the wlroots breaking change in [1].

[1]: https://github.com/swaywm/wlroots/pull/3108
2021-08-14 20:29:59 +02:00
Ronan Pigott f67ed6772c layer_shell: damage previous area when a surface shrinks
When a layer surface shrinks we need to damage the area it previously
occupied, but we don't know the location of all its subsurfaces in the
previous state, so instead damage a rectangle that encloses the entire
previous extent.
2021-08-12 10:05:12 +02:00