summaryrefslogtreecommitdiff
path: root/sway
AgeCommit message (Collapse)Author
2022-12-24fix: only round top titlebar in stacked layoutWill McKinnon
2022-12-11refactor: deduplicate vertex shadersWill McKinnon
2022-12-09Fixed dim_inactive default value being set to 1.0f (#69)Erik Reider
2022-12-07[Feature] Dim inactive windows (#66)Erik Reider
2022-11-30fix: titlebars on containers with smart_gaps on and a large corner_radius ↵Will McKinnon
now render as expected
2022-11-23feat: rounded_corners support smart_gaps (#62)William McKinnon
2022-11-23render refactor: implement decoration_data struct (#61)William McKinnon
2022-11-18fix: delete all shaders on fx_renderer create failureWill McKinnon
2022-11-18fix: saturation applies to popupsWill McKinnon
2022-11-12Add EGL as sway dependency (#33)Erik Reider
2022-11-11style: shader style fixesWill McKinnon
2022-11-11feat: added support for external texturesWill McKinnon
2022-11-11feat: render tiling move indicator with round cornersWill McKinnon
2022-11-11Per application color saturation support (#21)Erik Reider
* 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-11feat: add round titlebars (#26)William McKinnon
2022-11-10style: moved corner radius scaling out of fx callWill McKinnon
2022-11-10refactor: move shaders to individual filesWill McKinnon
2022-11-01bug: fix label build failureWill McKinnon
2022-10-26style: cleaned up some frag shadersWill McKinnon
2022-10-26fix: corner borders no longer render when borders are offWill McKinnon
2022-10-26refactor: improved rounded corner shaderWill McKinnon
2022-10-21refactor: move corner_radius to container structWill McKinnon
2022-10-20style: cleaned up commentsWill McKinnon
2022-10-20style: cleaned up corner rendering functionWill McKinnon
2022-10-15refactor: moved frag shader init to funcWill McKinnon
2022-10-09feat: add round borders (#22)William McKinnon
Co-authored-by: Erik Reider <[email protected]>
2022-08-29Add Anti-Aliased Corner Radius (#18)William McKinnon
2022-08-25moved shaders to headerWill McKinnon
2022-08-21added corner_radius documentationWill McKinnon
2022-08-21Add rounded corners (#9)William McKinnon
2022-08-21Render rect with fx_renderer (#14)William McKinnon
* initial fx_render_rect work * fixed rect rendering
2022-08-15Revert "merge sway master"Will McKinnon
This reverts commit 7460d9f565092836f81b917a040caff57142d91a.
2022-08-13Add official fx renderer (#3)William McKinnon
2022-04-27merge sway masterWilliam McKinnon
2022-04-26Merge pull request #1 from swaywm/v1.7William McKinnon
V1.7
2022-01-22cmd/swap: error on swapping a container with itselfRonan Pigott
(cherry picked from commit feea4b44108cf971ff8d1d474a75128dd737c1db)
2022-01-21transaction: destroying nodes aren't hiddenRouven Czerwinski
Commit 37d7bc69986f ("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-21treat fullscreen windows as 'tiled' for commands/focusPatrick Hilhorst
(cherry picked from commit b2ee964434b25a0ccbccb1486b027f69ef34acff)
2022-01-21input/cursor: treat swipe begin as idle activity tooTudor Brindus
Accidentally overlooked in fd53f80. (cherry picked from commit 7d1ccafae5a5d2eddfda2f857ea81ce88f141ddc)
2022-01-21input/cursor: count pointer gestures as idle activityTudor Brindus
Fixes https://github.com/swaywm/sway/issues/6765. (cherry picked from commit fd53f80156cee413a5166fb8e904a11901e45548)
2022-01-16xdg-shell: use toplevel geometry to adjust the popup boxAleksei Bavshin
`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-16Print deprecation notice when running SUIDKenny Levinsen
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-09Destroy sub-surfaces with parent layer-shell surfaceSimon Ser
Closes: https://github.com/swaywm/sway/issues/6337 (cherry picked from commit e2b4c573d6506250c77f01512bc07c72996cd363)
2022-01-09commands/move: Fix crash when pos_y is omittedDavid96
Fixes #6737 (cherry picked from commit 1bf1d84b7535c3c132240ed7b18414dc6cfe7e8a)
2022-01-07container: Fix crash when view unmaps + maps quicklyDavid Rosca
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-07input/seat: unset has_focus when focus_stack becomes emptyThomas Hebb
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)
2021-12-23Add cairo_image_surface_create error handlingSimon Ser
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-17output: emit node::destroy eventRonan Pigott
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-17output: change output::destroy to output::disableRonan Pigott
This changes output::destroy to output::disable and emits it only once when an output is disabled, instead of twice in succession.
2021-12-14Handle border width and height on minimum floating sizesRoastVeg
This fixes: https://github.com/swaywm/sway/issues/5337 Co-authored-by: Moon Sungjoon <[email protected]>