https://github.com/swaywm/sway

sort by:
Revision Author Date Message Commit Date
6cad038 desktop/render: remove unused wlr_gles2_texture_attribs We were calling wlr_gles2_texture_get_attribs, but we were never using the result. (cherry picked from commit 86b08e3257a4e3e204740f6252c5b1180ead8467) 23 July 2021, 10:26:38 UTC
3b1effd build: bump version to 1.6.1 24 June 2021, 16:26:29 UTC
b21913e ci: Test wlroots static linking (cherry picked from commit 4df9f49dc13d68a7b62539acd3766da34d59e28d) 24 June 2021, 16:21:29 UTC
04f75e6 input: Move get_current_time_msec in from util get_current_time_msec is only used in cursor.c, so we can move it in and make it static. This is primarily intended to avoid a symbol collision with wlroots, which we unfortunately do not have a good solution for yet. (cherry picked from commit 80315217f76e923cb19cdb76aaf9a5d177f11f61) 24 June 2021, 16:21:29 UTC
ae55861 Only defer seat attachment during initial startup Deferred commands are only run once, during sway startup. This means that deferring seat attachment based on whether we are reading the config prevents devices from being reattached to the correct seat during a config reload. Instead, only defer if the config is not yet active. Fixes #6048. (cherry picked from commit cad6e59b932e082d4e9c4d13b4210df9e4ac7cf3) 24 June 2021, 16:21:29 UTC
f49356e view: commit transactions for foreign toplevel requests (cherry picked from commit 5a73dc1bc2a135ee2648d9da1859bd4b69c966da) 24 June 2021, 16:21:29 UTC
2b0765b cairo: Replace <cairo/cairo.h> by <cairo.h> For full context, read https://gitlab.freedesktop.org/cairo/cairo/-/issues/479 TL;DR, cairo’s pc file adds `/cairo` to CFLAGS. So namespace cairo shouldn’t be used. (cherry picked from commit d45623c2db570b7a2e0582943734d18f3d64b126) 24 June 2021, 16:21:29 UTC
f0dd271 view: handle case where map_ws is NULL When a criteria places the view into the scratchpad, map_ws is NULL and trying to access map_ws->fullscreen will result in SIGSEGFAULT with: #0 0x0000000000455327 in should_focus (view=0x15a6a70) at ../sway/tree/view.c:604 prev_con = 0x0 len = <optimized out> seat = 0x12233c0 prev_ws = 0x1264c80 map_ws = 0x0 criterias = <optimized out> seat = <optimized out> prev_con = <optimized out> prev_ws = <optimized out> map_ws = <optimized out> criterias = <optimized out> len = <optimized out> num_children = <optimized out> #1 view_map (view=view@entry=0x15a6a70, wlr_surface=0x15a5cb0, fullscreen=<optimized out>, fullscreen_output=<optimized out>, decoration=<optimized out>) at ../sway/tree/view.c:809 __PRETTY_FUNCTION__ = "view_map" ws = <optimized out> seat = <optimized out> node = <optimized out> target_sibling = <optimized out> container = 0x1625400 set_focus = <optimized out> app_id = <optimized out> class = <optimized out> #2 0x0000000000423a7e in handle_map (listener=0x15a6c78, data=<optimized out>) at ../sway/desktop/xdg_shell.c:454 xdg_shell_view = 0x15a6a70 view = 0x15a6a70 xdg_surface = 0x15a6620 csd = <optimized out> #3 0x00007f508bd3674c in wlr_signal_emit_safe (signal=signal@entry=0x15a6718, data=data@entry=0x15a6620) at ../subprojects/wlroots/util/signal.c:29 pos = 0x15a6c78 l = 0x15a6c78 cursor = {link = {prev = 0x15a6c78, next = 0x7fff53d58190}, notify = 0x7f508bd366c0 <handle_noop>} end = {link = {prev = 0x7fff53d58170, next = 0x15a6718}, notify = 0x7f508bd366c0 <handle_noop>} #4 0x00007f508bd15b29 in handle_xdg_surface_commit (wlr_surface=<optimized out>) at ../subprojects/wlroots/types/xdg_shell/wlr_xdg_surface.c:384 surface = 0x15a6620 #5 0x00007f508bd2e981 in surface_commit_state (surface=surface@entry=0x15a5cb0, next=next@entry=0x15a5e18) at ../subprojects/wlroots/types/wlr_surface.c:455 __PRETTY_FUNCTION__ = "surface_commit_state" invalid_buffer = <optimized out> subsurface = 0x15a6038 #6 0x00007f508bd2f53b in surface_commit_pending (surface=0x15a5cb0) at ../subprojects/wlroots/types/wlr_surface.c:474 next_seq = 3 next_seq = <optimized out> #7 surface_commit (client=<optimized out>, resource=<optimized out>) at ../subprojects/wlroots/types/wlr_surface.c:542 surface = 0x15a5cb0 subsurface = <optimized out> If map_ws is NULL we assume the view is places into the scratchpad and return false as well. (cherry picked from commit 30e400c0a3d5d11ba15dc4ab6cdcfe2e71cfce01) 24 June 2021, 16:21:29 UTC
d33f495 workspace: reap empty parents when adding tiles (cherry picked from commit c12169953abd393506367b949a63de5928ad9518) 24 June 2021, 16:21:29 UTC
2660c0c desktop/render: Pass explicit clip box to render render_surface_iterator previously deduced the clip box from an optional container passed with render data. This causes problems when offsets in view geometry need to be compensated for in the clip dimensions. Instead, prepare the clip box in render_view_toplevels where the offsets are being applied, and compensate for them immediately. A similar compensation is applied to render_saved_view. Closes: https://github.com/swaywm/sway/issues/6223 (cherry picked from commit 4e6f51525308a8883bf998a360a192edc0822cdd) 24 June 2021, 16:21:29 UTC
ee4e4bb Remove usage of surface->sx|sy These coordinates contain the all-time accumulated buffer attach point, which is a way to perform incremental client-side initiated movement of windows, intended as a way to maintain logical window positioning while compensating for layout changes such as folding in a left side panel. This value is not useful for implementing this feature, and break things if they ever become non-zero. Their inclusion in calculations also tend to cause confusion. Remove usage of these coordinates, removing the ability for clients to move themselves. This may again be supported if a better API is made available from wlroots. (cherry picked from commit 7ec9d07fc597c739760df5223469e9f15340db78) 24 June 2021, 16:21:29 UTC
b517219 tree/view: don't give focus to views mapped under fullscreen views Fixes #6211. (cherry picked from commit 80128d23ba9f0a6a92284b2c6077e304f35e7a76) 24 June 2021, 16:21:29 UTC
fc1cce9 view_destroy: fix use-after-free with subsurface_destroy remove view from its own unmap event listener so when subsurfaces link try to remove themselves they won't run into it. This fixes the following ASAN use-after-free error on a build slightly modified to instrument wl_list operations: ==71705==ERROR: AddressSanitizer: heap-use-after-free on address 0x6160000829a0 at pc 0x000000508eb7 bp 0x7ffec8fd8030 sp 0x7ffec8fd8028 WRITE of size 8 at 0x6160000829a0 thread T0 #0 0x508eb6 in wl_list_remove ../common/list.c:181 #1 0x4f4998 in view_child_destroy ../sway/tree/view.c:1131 #2 0x4f38fa in subsurface_handle_destroy ../sway/tree/view.c:946 #3 0x7fda50744892 in wlr_signal_emit_safe ../util/signal.c:29 #4 0x7fda5072f0dd in subsurface_destroy ../types/wlr_surface.c:649 #5 0x7fda507312c4 in subsurface_handle_surface_destroy ../types/wlr_surface.c:1094 #6 0x7fda50744892 in wlr_signal_emit_safe ../util/signal.c:29 #7 0x7fda5072f305 in surface_handle_resource_destroy ../types/wlr_surface.c:677 #8 0x7fda508180ce in destroy_resource (/lib64/libwayland-server.so.0+0xc0ce) #9 0x7fda508187f2 in wl_client_destroy (/lib64/libwayland-server.so.0+0xc7f2) #10 0x7fda50818e5f in wl_client_connection_data (/lib64/libwayland-server.so.0+0xce5f) #11 0x7fda50818219 in wl_event_loop_dispatch (/lib64/libwayland-server.so.0+0xc219) #12 0x7fda50818984 in wl_display_run (/lib64/libwayland-server.so.0+0xc984) #13 0x43122c in server_run ../sway/server.c:254 #14 0x42f47c in main ../sway/main.c:433 #15 0x7fda503cab74 in __libc_start_main (/lib64/libc.so.6+0x27b74) #16 0x40f6fd in _start (/opt/wayland/bin/sway+0x40f6fd) 0x6160000829a0 is located 288 bytes inside of 592-byte region [0x616000082880,0x616000082ad0) freed by thread T0 here: #0 0x7fda50f01a27 in free (/lib64/libasan.so.6+0xaea27) #1 0x4532d8 in destroy ../sway/desktop/xdg_shell.c:262 #2 0x4ed17b in view_destroy ../sway/tree/view.c:67 #3 0x4ed300 in view_begin_destroy ../sway/tree/view.c:83 #4 0x454a3f in handle_destroy ../sway/desktop/xdg_shell.c:507 #5 0x7fda50744892 in wlr_signal_emit_safe ../util/signal.c:29 #6 0x7fda506e2c87 in reset_xdg_surface ../types/xdg_shell/wlr_xdg_surface.c:481 #7 0x7fda506e3018 in destroy_xdg_surface ../types/xdg_shell/wlr_xdg_surface.c:516 #8 0x7fda506dfbe5 in xdg_client_handle_resource_destroy ../types/xdg_shell/wlr_xdg_shell.c:71 #9 0x7fda508180ce in destroy_resource (/lib64/libwayland-server.so.0+0xc0ce) previously allocated by thread T0 here: #0 0x7fda50f01ed7 in calloc (/lib64/libasan.so.6+0xaeed7) #1 0x454bc8 in handle_xdg_shell_surface ../sway/desktop/xdg_shell.c:528 #2 0x7fda50744892 in wlr_signal_emit_safe ../util/signal.c:29 #3 0x7fda506e2363 in handle_xdg_surface_commit ../types/xdg_shell/wlr_xdg_surface.c:378 #4 0x7fda5072e368 in surface_commit_state ../types/wlr_surface.c:455 #5 0x7fda5072e51d in surface_commit_pending ../types/wlr_surface.c:474 #6 0x7fda5072ea58 in surface_commit ../types/wlr_surface.c:542 #7 0x7fda4fb3ac03 in ffi_call_unix64 (/lib64/libffi.so.6+0x6c03) Fixes #5168 (cherry picked from commit 8529141150ef2d9a07b9c0fad193bdbc12d3ad42) 24 June 2021, 16:21:29 UTC
9bd6641 Avoid creating zero-sized textures for marks Same as 6327f1b36196 ("Avoid creating zero-sized textures for titlebars") but for marks. (cherry picked from commit e3e99d961dc445258c08ec47b22ec83af38197f6) 24 June 2021, 16:21:29 UTC
7d6b23a Avoid creating zero-sized textures for titlebars Creating a zero-sized wlr_texture is incorrect. (cherry picked from commit 6327f1b36196d5b6e22be9c9f839f29d5f23f346) 24 June 2021, 16:21:29 UTC
599874a Prevent use-after-free on first bar subcommand error If any error is encountered during execution of the first subcommand of a freshly created bar configuration, parsing apparently is to be aborted and the current bar config is freed. The pointer to that memory is left dangling though, leading to a use-after-free on successive bar subcommands. This quite reliably ends in a crash like so: sway -c reproducer.config 00:00:00.083 [sway/config.c:865] Error on line 2 'foo bar': Unknown/invalid command 'foo' (s) free(): double free detected in tcache 2 00:00:00.608 [swaynag/swaynag.c:451] failed to register with the wayland display Aborted (core dumped) Minimal reproducer config: bar { foo bar position top } Other messages: malloc(): unaligned fastbin chunk detected double free or corruption (fasttop) The invalid command has to be the first for a newly created bar config. Removing the command or switching order so it's not the first one masks the problem. Prevent this from occuring by resetting the pointer to NULL after freeing the memory. Signed-off-by: Michael Weiser <michael.weiser@gmx.de> (cherry picked from commit 730efbc89c40a534f5463b5d872ca856fe7cedc4) 24 June 2021, 16:21:29 UTC
a50039a desktop/layer_shell: fix centering for opposing anchors (cherry picked from commit 8106f01c176a61f2683b02672e29197b20b23fc2) 24 June 2021, 16:21:29 UTC
80e4efd ci: stick to wlroots 0.14.0 24 June 2021, 16:10:01 UTC
0d1231a Iterate over subsurfaces below the parent surface Update for the breaking change in [1]. [1]: https://github.com/swaywm/wlroots/pull/2948 (cherry picked from commit 3162766eef14be71789478b0984bc2c1802832b2) 24 June 2021, 16:10:01 UTC
1766ae3 remove usage of `wlr_texture_get_size` update for wlroots 6369f7093178f0d66414eb67c312a403bfbb84a4 (cherry picked from commit 12e223e7973f7d7132d95c6302328067dec732ce) 24 June 2021, 16:10:01 UTC
d9de8d9 meson: libseat is no longer optional See: https://github.com/swaywm/wlroots/pull/2839 (cherry picked from commit 4e77bc293515ea2f00ebbc4395cb0eb4446d0195) 24 June 2021, 16:10:01 UTC
8dc0879 ci: Install libseat (cherry picked from commit fcfe52de294f1998cdcf4e147bf34127c4b9dd40) 24 June 2021, 16:10:01 UTC
9bdb0ea Log wlroots version on startup Can be useful to make sure a bugfix is included. In the future maybe the wlroots version string could include a commit hash when built from source, too. (cherry picked from commit 78fc9d0d2d4fae0565b115f5ee4b0296b4e993f2) 24 June 2021, 16:10:01 UTC
62e3ca6 Remove WLR_HAS_XDG_FOREIGN checks References: https://github.com/swaywm/wlroots/pull/2833 (cherry picked from commit 1a72049c04b8c6e1a30f80b3887fc7808a717935) 24 June 2021, 16:10:01 UTC
d2d1461 build: stop checking for logind wlroots has removed its logind session backend [1]. It now relies on libseat only. [1]: https://github.com/swaywm/wlroots/pull/2786 (cherry picked from commit e49a98fcb3613d0505ce731ed6dc99b9f2c6fc8a) 24 June 2021, 16:10:01 UTC
4246cfa build: update wlroots dependency version to 0.14.x The latest commit of Sway always requires the latest commit of wlroots. (cherry picked from commit 7a68a28475bfefd65d618b053b566e0877abcc75) 24 June 2021, 16:10:01 UTC
be4b92c build: bump version to 1.6 07 April 2021, 19:44:21 UTC
98696fa output: damage whole output when exiting scanout (cherry picked from commit 62fbf33ce2a39373a5d122a99c04cc61272f122a) 07 April 2021, 19:43:26 UTC
8a49a29 build: bump to version v1.6-rc3 31 March 2021, 17:12:46 UTC
83202d4 ci: add xcb-util-wm dependency for wlroots This is now a mandatory dependency for wlroots. (cherry picked from commit 276a37a605867ceef136d2444182d8190463c74d) 31 March 2021, 17:12:17 UTC
8f5c546 config: allow whitespaces in config path (cherry picked from commit 1d62d6bfa09860d7a59640dcb20d5273a55401c4) 31 March 2021, 17:12:17 UTC
a9563a3 build: update version to v1.6-rc2 24 March 2021, 08:47:39 UTC
d79ea9a view: subsurface NULL check in view_from_wlr_surface Necessary NULL checks had been added to xdg_shell and xwayland surfaces, but subsurfaces had been missed. 23 March 2021, 23:55:15 UTC
03daa53 swaybar: fail gracefully on tokener creation fail This commit adds missing error-handling to the creation of the tokener instance. The stack depth parameter is used to initialize an array that json-c prefaults ahead of time, causing INT_MAX to result in out of memory errors. Also drop the depth to 256 to prevent this OOM. Though this fix is not very satisfactory -- json-c could be made to not prefault -- it should do for now. At the very least, swaybar will not crash. Fixes #6126. 22 March 2021, 13:10:53 UTC
47f1f9b swaybar: use INT_MAX max JSON depth when parsing IPC response There's no inherent limit on the nesting Sway can generate, and the default used by `json_tokener_new`, 32, can plausibly be hit during regular usage. Fixes #6115. 21 March 2021, 22:34:07 UTC
152a559 idle_inhibit: Store wlr inhibitor instead of view When an application inhibited idle, a view pointer was stored and a destroy listener was registered to the wlr inhibitor. As the wlr inhibitor lives longer than the view, this lead to a dangling view pointer between view unmap and inhibitor destroy. Store a pointer to the wlr inhibitor instead of to the view, and look up the view when needed, which may at any point be NULL. This also allows for an inhibitor to remain functional if a surface is re-mapped. 21 March 2021, 11:27:29 UTC
70842f4 view: Handle NULL role object when role is set wlr_(xdg|xwayland)_surface_from_wlr_surface can return NULL even though wlr_surface_is_(xdg|xwayland)_surface returned true. 21 March 2021, 11:27:29 UTC
3287b12 ci: Update alpine xwayland package name 20 March 2021, 12:25:14 UTC
6271bd0 swaybar: Use position from wl_pointer.enter Only wl_pointer.motion was used to update pointer position, which would cause issues if the pointer was not moved prior to wl_pointer.button. This also fixes touch input through wl_pointer emulation, which fires wl_pointer.button immediately after wl_pointer.enter. Copied from a similar fix made to swaynag. Closes: https://github.com/swaywm/sway/issues/6109 20 March 2021, 10:56:13 UTC
6059c74 swaybar: silence missing IconThemePath message IconThemePath is not a standard property in XDG's StatusNotifierItem specification, so missing this property should not be logged as an error. This patch changes the log level to SWAY_DEBUG when swaybar queries the value of IconThemePath so that swaybar won't log the returned message as an error if IconThemePath does not exist. Closes: https://github.com/swaywm/sway/issues/6092 17 March 2021, 08:49:04 UTC
adf7a6f build: update version to v1.6-rc1 16 March 2021, 17:04:39 UTC
e5913f8 Implement input method keyboard grab 12 March 2021, 11:18:08 UTC
585abdb xwayland: simplify override-redirect focus restoration No need to grab the xwayland surface from the wlr_surface, the parent is already an xwayland surface. 12 March 2021, 09:52:12 UTC
ba6c0eb output: simplify layer surface iteration 11 March 2021, 09:55:25 UTC
2e06403 container: Add view_container_content_at container_at checks if the position provided matches the currently focused container with view_container_at as a fast path. view_container_at checks using the main container geometry, which includes the titlebar and border area. If a tabbed container is focused, then positions over unfocused tabs are incorrectly reported as belonging to the focused container, breaking focus on click. Add view_container_content_at for use in the focused container fast path which only tests container content area, and fall back to full workspace scans for border and titlebar areas. Closes: https://github.com/swaywm/sway/issues/6074 10 March 2021, 16:50:57 UTC
837605d swaybar: use text subpixel antialias only where it would look good Closes #5605 Text Subpixel antialiasing is : - FreeType makes glyph bitmaps containing coverage percentage for each subpixel, instead of pixel - Then draw by performing the blend for each subpixel, instead of pixel (e.g. dual-source blending in opengl) And there's only one Alpha channel, so this extra coverage data can't leave Cairo to reach the compositor through there. Therefore, it can't work as intended if output text alpha != bar background alpha. Disable it for those cases, enable it elsewhere As for color emojis, they are RGBA bitmaps. If drawn with text alpha=1.0 and background alpha=1.0 (should be completely opaque bar), then with 'CAIRO_OPERATOR_SOURCE' then texels with alpha < 1.0 result in a blend with whatever's behind the bar, instead of the bar background 08 March 2021, 00:18:53 UTC
d358aab container: Limit tiled focus to container geometry container_at would maintain the current focus as long as a position was over one of the container view's surfaces. If an oversized surface was being clipped, this lead to weird focus behavior. Instead, use view_container_at for this test, which intersects the container box before looking at surfaces. 01 March 2021, 15:14:10 UTC
a6544f5 render: Clip surfaces to container bounds If a surface is associated with a sway container, we limit the destination box to the container dimensions. Floating views and popups are exempt from this clipping. 01 March 2021, 15:14:10 UTC
1afedcb Fix for_window criteria and mouse button bindings Previously, the special case handling of scratchpad and unmark commands was (probably accidentally) limited to criteria directly handled in the execute_command function. This would exclude: 1. for_window criteria, as these are handled externally for views and 2. and mouse bindings which select target the node currently under the mouse cursor. As a concrete example `for_window [app_id="foobar"] move scratchpad, scratchpad show` would show (or hide due to the toggling functionality) another window from the scratchpad, instead of showing the window with app_id "foobar". This commit replaces the "using_criteria" flag with "node_overridden" with the more general notion of signifying that the node (and container/workspace) in the current command handler context of the sway config is not defined by the currently focused node, but instead overridden by other means, i.e., criteria or mouse position. 25 February 2021, 14:48:39 UTC
c6e7cf1 focus: beyond fullscreen when focused explicitly When issuing a focus command on a specific container, users expect to proceed it even if is hidden by a fullscreen window. This matches the behavior of i3. 25 February 2021, 14:40:20 UTC
eea9c63 Automatically map built-in touchscreens/tablets to built-in panels Detect whether an output is built-in via its type. Detect whether a touchscreen or tablet tool is built-in via its ID_PATH property. 25 February 2021, 14:38:00 UTC
641b871 man: document `input XXX map_to_output *` This is useful to reset the output mapping. 25 February 2021, 14:38:00 UTC
e01a3c8 render: handle containers without output when rendering titles In e0a94bee8da3271f942c0881ee18a7e2d4138063, it was believed that if the container is being rendered, it must have an output. This turned out not to be the case. When rendering a container, all its children are rendered, even if the children is positioned off screen and thus not having any output. This is the cause of the crash in #6061. This commit introduces a null-check, which fixes #6061. 25 February 2021, 05:43:02 UTC
bb41b7b output: Reconfigure xcursor when applying output config Before this commit, when an output had its scale dynamically changed, Sway would not load a cursor theme with the new scale. This results in stale cursor images when moving the cursor into an area controlled by the compositor, like the background or resize areas. To reproduce: - Using IPC, set an output scale to a value that isn't currently used - Move the cursor into a compositor-controlled area - The cursor will not change 24 February 2021, 19:54:48 UTC
307b26a build: stop cargo-culting assignment alignment The Sway style guide says we shouldn't align assignments. 23 February 2021, 19:32:11 UTC
de471e6 build: Add dependency on libdrm As of 66343839b146a54505b746784cd42a8efb844963, sway now uses a libdrm header. Add this dependency to the build system so headers from it can be used on systems where pkg-config is required to find them. 23 February 2021, 19:27:38 UTC
95901d9 shells: Update comment about size change on commit 23 February 2021, 18:38:05 UTC
1989b18 transaction: Remove unused ready_immediately 23 February 2021, 18:38:05 UTC
35b9a41 transaction: Note if instructions are server requests On server request, we need to send configure events to inform the client of the new intended size. If the client changes size itself, sending a configure event will only cause problems. Use transaction_commit_dirty_client to distinguish between the two transaction causes. 23 February 2021, 18:38:05 UTC
6634383 Fix wl_shm_format passed to wlr_texture_from_pixels See https://github.com/swaywm/wlroots/pull/2744 23 February 2021, 16:42:04 UTC
8f2eeae grimshot: document support for piping to STDOUT. 23 February 2021, 16:07:53 UTC
aac1582 Fix #5643, #5064: rounding issues in floating-point -> integer conversions Currently, various floating-point expressions involving the coordinates of borders, titlebars and content surfaces are directly assigned to integers, and so they are rounded towards zero. This results in off-by-one distances between these elements when the signs of their coordinates differ. Fixed by wrapping these expressions with a call to floor before the assignment. 23 February 2021, 02:23:35 UTC
1a6471b view: Set parent for view_child subsurfaces on init view_child_init was calling view_init_subsurfaces, which did not set the parent attribute for the subchildren. This lead to the subchildren acting as standalone children. If the parent was an xdg_popup, this would make the subchild unaware of the popup position. Introduce view_child_init_subsurfaces for view_child_init to use instead. Closes: https://github.com/swaywm/sway/issues/6038 22 February 2021, 23:17:32 UTC
79e43b1 view: Mark subchildren as unmapped in view_child_destroy The subchildren lose their parent association at this point, so they will not be able to see that the parent is unmapped. Instead, just set the subchildren to be unmapped directly. 22 February 2021, 23:17:32 UTC
e7af5b6 view: Recursively check mapped of view_child tree A subsurface may be set to mapped without its parent. 22 February 2021, 23:17:32 UTC
2c917a8 container: Add container_is_current_floating Needed to check if containers are currently floating from render code, as container_is_floating checks pending state. 22 February 2021, 22:55:22 UTC
e0a94be render: scale titlebars correctly when straddling outputs When a container straddles multiple outputs, the title bar is only rendered at the scale of the "effective" output. If the title bar straddles onto another output with a different scale factor, it was drawn at the wrong size. In this commit, we take into consideration the scale the title was rendered at and scale it accordingly so that it appears at the right size on the other outputs. This fixes #6054. 22 February 2021, 07:08:37 UTC
f58f054 Fix incorrect damage being applied on popups To reproduce: - Open a floating window and a popup that hangs over the bottom or right - Move the window in the direction of the popup overhang - The previous position of the popup is damaged, not the new one 21 February 2021, 22:30:49 UTC
b4950e2 build: use wlroots dependency variables Instead of manually parsing header files and having two different code-paths depending on whether a subproject is used, use dependency variables which can come from either the subproject or pkg-config. References: https://github.com/swaywm/wlroots/pull/2734 21 February 2021, 22:16:14 UTC
4e02a59 Fix typo in README.dk.md 18 February 2021, 11:47:14 UTC
2ad14b3 Update Russian translation 17 February 2021, 08:21:08 UTC
35342d8 render: Use current instead of pending fullscreen 17 February 2021, 03:05:00 UTC
a047b5e container: Move pending state to state struct Pending state is currently inlined directly in the container struct, while the current state is in a state struct. A side-effect of this is that it is not immediately obvious that pending double-buffered state is accessed, nor is it obvious what state is double-buffered. Instead, use the state struct for both current and pending. 17 February 2021, 03:05:00 UTC
28cadf5 Add missing transaction commits to seatop_default Every seat_set_focus* should be followed by a transaction_commit_dirty. In cases where the focus change is followed by a seatop_begin* this is not needed, as transaction_commit_dirty is then called by the seatop_begin* function. Fixes #6034 16 February 2021, 14:35:48 UTC
a3d45c3 Prevent inactive-windows-transparency.py to crash on lockscreen 16 February 2021, 10:45:10 UTC
42cbaf2 text_input: Add support for focusing layer-shell surfaces 15 February 2021, 23:24:47 UTC
c8bf84c transactions: Amend pending transactions The transaction system contains a necessary optimization where a popped transaction is combined with later, similar transactions. This breaks the chronological order of states, and can lead to desynchronized geometries. To fix this, we replace the queue with only 2 transactions: current and pending. If a pending transaction exists, it is updated with new state instead of creating additional transactions. As we never have more than a single waiting transaction, we no longer need the queue optimization that is causing problems. Closes: https://github.com/swaywm/sway/issues/6012 15 February 2021, 23:18:26 UTC
b944735 Align ordering of core node properties with i3 Try to better mimic JSON node structure produced by i3 which might be relied on by already existing tools. In particular having "type" right after "id" is quite handy for streaming high-performance JSON parsers such as simdjson (which are handy for maintaining responsiveness on resource constrained systems). refer https://github.com/i3/i3/blob/ab2a22a78b25ad12fed2c177a34c44950795cf33/src/ipc.c#L338 15 February 2021, 23:14:27 UTC
37d7bc6 transaction: Only wait for ack from visible views Transactions currently wait for all configures to be acked, regardless fo what they were sent to. This includes views that are hidden in tabbed or stacked containers. If these views do not ack the configure in response to a single frame callback, they can cause transaction timeouts. Check if a container is hidden before registering the configure serial and saving any view buffers. Closes: https://github.com/swaywm/sway/issues/6023 15 February 2021, 21:58:19 UTC
c88f7ad text_input: Only send surrounding_text and content_type if supported 15 February 2021, 21:45:35 UTC
b0e8f4a text_input: Ignore text_input disable from unfocused windows Before this commit, there would be cases where focus changes from one window to another, the new window activates text_input, then the old window sends a deactivate request, making text_input unfocused completely. 15 February 2021, 21:44:15 UTC
31a01bb input: Commit transactions in seatop_default This is needed for focus_follows_mouse, and was accidentally omitted in the previous transaction commit shuffle. 15 February 2021, 18:49:47 UTC
b5b628c input: Only commit transactions when necessary There is no need to check for transactions at the end of every user input, as the vast majority of input will not issue transactions. This implementation can also hide where changes are made without an appropriate transaction commit, as a future unrelated input would issue the commit instead. Instead, commit transactions in places where changes are made or are likely to be made. 14 February 2021, 18:19:08 UTC
b1b1041 readme: update French translation Update to latest English README and improve wording. 10 February 2021, 08:44:38 UTC
63a6635 view: Read geometry directly in view_update_size 09 February 2021, 08:37:10 UTC
82b1019 shells: Align geometry change commit handling xdg_shell and xwayland handled geometry changes differently despite needing mostly identical behavior. The xwayland implementation has been changed to match that of xdg_shell. 09 February 2021, 08:37:10 UTC
90fa695 shells: Only center tiled views on size change The size of a tiled container cannot change in response to new buffer sizes, so there is no need to commit a new transaction. Instead, simply recenter the view with the new geometry, leaving the full transaction flow for floating containers. 09 February 2021, 08:37:10 UTC
50205ad transaction: Move centering to view_center_surface This will allow us to reuse it for centering elsewhere. 09 February 2021, 08:37:10 UTC
cf1e3be view: Save surface x and y on saved buffers We need to use surface_x and surface_y when rendering and damaging saved buffers as these compensate for views that have been centered due to being smaller than their container. Add them to the surface positions on the saved buffer so we have the values from the time the buffer was saved. 09 February 2021, 08:37:10 UTC
63420a2 swaynag: Use position from wl_pointer.enter Only wl_pointer.motion was used to update pointer position, which would cause issues if the pointer was not moved prior to wl_pointer.button. This also fixes touch input through wl_pointer emulation, which fires wl_pointer.button immediately after wl_pointer.enter. Closes: https://github.com/swaywm/sway/issues/5991 08 February 2021, 01:18:53 UTC
169b90f Make command line option lists const 04 February 2021, 08:49:06 UTC
8f2cd32 Make Wayland request listeners static const when possible 04 February 2021, 08:49:06 UTC
cb3c727 Declare all struct cmd_handler arrays const And make the functions handling these arrays use const types. 04 February 2021, 08:49:06 UTC
89b4bc4 xdg-foreign: add v1 and v2 implementations Co-authored-by: Jason Francis <cycl0ps@tuta.io> 02 February 2021, 08:32:49 UTC
8b7008a Check the output state for recorded workspaces Sway records pid, workspace, and output for every new process. However, if the output gets disabled and the workspace disappears, the workspace is still re-created on the disabled output. This commit adds a check for the enabled flag, so that NULL will be passed to workspace_create() in this case. 30 January 2021, 10:24:43 UTC
f8c6fc1 desktop/layer_shell: Fix allocation type mismatch 30 January 2021, 07:28:39 UTC
4d43f1d desktop/output: Disable head if mode is NULL wlr_output_configuration_head_v1_create normally fills out the head "enabled" field to match the wlr_output state. We overwrite this to also set the head as enabled if it is only turned off with DPMS. However, in some cases we may not have a mode for this display, in which case setting it as enabled will lead to a segfault later on. Therefore, enabled conditional on the presence of a mode. 26 January 2021, 09:26:37 UTC
ac7c81e Fix typo in bug reporting template 26 January 2021, 08:08:00 UTC
241ce2a Implement foreign toplevel fullscreen output hints 25 January 2021, 18:54:44 UTC
62ec528 Adhere to ICCCM focus specification For certain applications (e.g. JetBrains) the parent window controls input. We need to adhere to the ICCCM input focus specification to properly handle these cases. Relates to swaywm/wlroots#2604 20 January 2021, 09:50:04 UTC
back to top