aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* Render saved buffers with the surface's dimensionsLibravatar Ryan Dwyer2018-06-29
|
* Merge remote-tracking branch 'upstream/master' into atomicLibravatar Ryan Dwyer2018-06-29
|\
| * Merge pull request #2172 from apreiml/fix-keybinding-modifier-handlingLibravatar Drew DeVault2018-06-28
| |\ | | | | | | fix handling key modifiers if not pressed at first
| | * fix handling key modifiers if not pressed at firstLibravatar Armin Preiml2018-06-28
| | | | | | | | | | | | fixes #2169
| * | Merge pull request #2170 from apreiml/masterLibravatar emersion2018-06-27
| |\| | | | | | | fix accidently removing borders on XCB_CONFIGURE_REQUEST
| | * fix accidently removing borders on XCB_CONFIGURE_REQUESTLibravatar Armin Preiml2018-06-27
| |/ | | | | | | | | | | | | The view was configured with the container coordinates. Although they were right on the first configure, they changed after a XCB_CONFIGURE_REQUEST, when the border was already drawn.
| * Merge pull request #2168 from BlueGone/input-cmd-arg-nbLibravatar emersion2018-06-27
| |\ | | | | | | Check if command input has at least 2 arguments
| | * Check if command input has at least 2 argumentsLibravatar Thomas Plaçais2018-06-27
| |/
| * Merge pull request #2145 from emersion/xwayland-wants-floatLibravatar Drew DeVault2018-06-26
| |\ | | | | | | Automatically float xwayland windows
| | * Merge branch 'master' into xwayland-wants-floatLibravatar Ryan Dwyer2018-06-27
| | |\ | | |/ | |/|
| * | Merge pull request #2162 from martinetd/float_xdg_shellLibravatar Drew DeVault2018-06-26
| |\ \ | | | | | | | | xdg_shell: make view floating if a parent has been set
| | * \ Merge branch 'master' into float_xdg_shellLibravatar emersion2018-06-26
| | |\ \ | | |/ / | |/| |
| * | | Merge pull request #2164 from ael-code/background_fixesLibravatar Drew DeVault2018-06-26
| |\ \ \ | | | | | | | | | | output bg command: fix memleak and refactoring
| | * | | cleanup output-background subcommand handlingLibravatar ael-code2018-06-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - fixes a double-free error when access() failed. - refactor code to make memory managment (alloc/free) more straightforward - do not bring the temporary wordexp_t struct around - do not postpone errors handling
| | * | | fix memleak on background cmd errorLibravatar ael-code2018-06-26
| |/ / / | | | | | | | | | | | | | | | | - src must be free after join_args() - wordfree must bee used after wordexp
| * | | Merge pull request #2163 from martinetd/use-after-freeLibravatar Ryan Dwyer2018-06-26
| |\ \ \ | | | | | | | | | | layer shell: fix some use after free on destroy
| | * | | layer_shell: order destroying before sway_outputLibravatar Dominique Martinet2018-06-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Both sway_output and sway_layer_shell listen to wlr's output destroy event, but sway_layer_shell needs to access into sway_output's data strucure and needs to be destroyed first. Resolve this by making sway_layer_shell listen to a new event that happens at start of sway_output's destroy handler
| | * | | layer_shell: cleanup output link on output destroyLibravatar Dominique Martinet2018-06-26
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes this kind of use-after-free: ==1795==ERROR: AddressSanitizer: heap-use-after-free on address 0x612000191ef0 at pc 0x00000048c388 bp 0x7ffe308f0410 sp 0x7ffe308f0400 WRITE of size 8 at 0x612000191ef0 thread T0 #0 0x48c387 in wl_list_remove ../common/list.c:157 #1 0x42196b in handle_destroy ../sway/desktop/layer_shell.c:275 #2 0x7f55cc2549fa in wlr_signal_emit_safe ../util/signal.c:29 #3 0x7f55cc22cf68 in layer_surface_destroy ../types/wlr_layer_shell.c:182 #4 0x7f55cc22d084 in layer_surface_resource_destroy ../types/wlr_layer_shell.c:196 #5 0x7f55cc4ca025 in destroy_resource src/wayland-server.c:688 #6 0x7f55cc4ca091 in wl_resource_destroy src/wayland-server.c:705 #7 0x7f55cc22c3a2 in resource_handle_destroy ../types/wlr_layer_shell.c:18 #8 0x7f55c8ef103d in ffi_call_unix64 (/lib64/libffi.so.6+0x603d) #9 0x7f55c8ef09fe in ffi_call (/lib64/libffi.so.6+0x59fe) #10 0x7f55cc4cdf2c (/lib64/libwayland-server.so.0+0xbf2c) #11 0x7f55cc4ca3de in wl_client_connection_data src/wayland-server.c:420 #12 0x7f55cc4cbf01 in wl_event_loop_dispatch src/event-loop.c:641 #13 0x7f55cc4ca601 in wl_display_run src/wayland-server.c:1260 #14 0x40bb1e in server_run ../sway/server.c:141 #15 0x40ab2f in main ../sway/main.c:432 #16 0x7f55cb97318a in __libc_start_main ../csu/libc-start.c:308 #17 0x408d29 in _start (/opt/wayland/bin/sway+0x408d29) 0x612000191ef0 is located 48 bytes inside of 312-byte region [0x612000191ec0,0x612000191ff8) freed by thread T0 here: #0 0x7f55ce3bb880 in __interceptor_free (/lib64/libasan.so.5+0xee880) #1 0x42f1db in handle_destroy ../sway/desktop/output.c:1275 #2 0x7f55cc2549fa in wlr_signal_emit_safe ../util/signal.c:29 #3 0x7f55cc23b4c2 in wlr_output_destroy ../types/wlr_output.c:284 #4 0x7f55cc1ddc20 in xdg_toplevel_handle_close ../backend/wayland/output.c:235 #5 0x7f55c8ef103d in ffi_call_unix64 (/lib64/libffi.so.6+0x603d) previously allocated by thread T0 here: #0 0x7f55ce3bbe50 in calloc (/lib64/libasan.so.5+0xeee50) #1 0x42f401 in handle_new_output ../sway/desktop/output.c:1308 #2 0x7f55cc2549fa in wlr_signal_emit_safe ../util/signal.c:29 #3 0x7f55cc1d6cbf in new_output_reemit ../backend/multi/backend.c:113 #4 0x7f55cc2549fa in wlr_signal_emit_safe ../util/signal.c:29 #5 0x7f55cc1deac7 in wlr_wl_output_create ../backend/wayland/output.c:327 #6 0x7f55cc1db353 in backend_start ../backend/wayland/backend.c:55 #7 0x7f55cc1bad55 in wlr_backend_start ../backend/backend.c:35 #8 0x7f55cc1d67a0 in multi_backend_start ../backend/multi/backend.c:24 #9 0x7f55cc1bad55 in wlr_backend_start ../backend/backend.c:35 #10 0x40ba8a in server_run ../sway/server.c:136 #11 0x40ab2f in main ../sway/main.c:432 #12 0x7f55cb97318a in __libc_start_main ../csu/libc-start.c:308
| | * / xdg_shell: make view floating if a parent has been setLibravatar Dominique Martinet2018-06-26
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prompts e.g. authentication request from firefox-wayland ought to be floating. This is a bit coarse but just fixed size is not enough, here is what firefox does: [1285461.363] -> xdg_wm_base@18.get_xdg_surface(new id xdg_surface@68, wl_surface@71) [1285461.508] -> xdg_surface@68.get_toplevel(new id xdg_toplevel@67) [1285461.571] -> xdg_toplevel@67.set_parent(xdg_toplevel@37) [1285461.630] -> xdg_toplevel@67.set_title("Authentication Required") [1285461.736] -> xdg_toplevel@67.set_app_id("firefox") ... [1285476.549] xdg_toplevel@67.configure(0, 0, array) ... [1285502.080] -> xdg_toplevel@67.set_min_size(299, 187) [1285502.140] -> xdg_toplevel@67.set_max_size(1920, 32767) This can also be observed with e.g. the open window of gedit (gedit->open->other documents)
| * | Merge pull request #2159 from acrisci/focus-dont-follow-keyboard-grabLibravatar Drew DeVault2018-06-24
| |\ \ | | | | | | | | dont focus-follow-mouse when keyboard grab
| | * | dont focus-follow-mouse when keyboard grabLibravatar Tony Crisci2018-06-24
| |/ /
| | * xwayland: accept configure requests from floating viewsLibravatar emersion2018-06-24
| | |
| | * Automatically float xwayland windowsLibravatar emersion2018-06-18
| | |
* | | Add comment about usage to arrange_windows declarationLibravatar Ryan Dwyer2018-06-29
| | |
* | | Replace list_empty with a simple alternativeLibravatar Ryan Dwyer2018-06-29
| | |
* | | Fix crash when moving last child of a container to workspace or outputLibravatar Ryan Dwyer2018-06-29
| | | | | | | | | | | | | | | | | | | | | | | | We were arranging a parent which may have been deleted by the reaper, which meant the `current` children list of the surviving parent had a dangling pointer. Instead, we now reap the workspace.
* | | Allow views to skip configuresLibravatar Ryan Dwyer2018-06-27
| | | | | | | | | | | | | | | To do this properly, the transaction queue will only be processed if it can be completely processed.
* | | Move unsetting of view->surface into view_unmapLibravatar Ryan Dwyer2018-06-27
| | |
* | | Fix memleak in container_get_boxLibravatar Ryan Dwyer2018-06-27
| | | | | | | | | | | | | | | | | | | | | Rather than allocate a structure and expect callers to free it, take a pointer to an existing struct as an argument. This function is no longer called anywhere though.
* | | Remove transaction_add_damageLibravatar Ryan Dwyer2018-06-27
| | | | | | | | | | | | Instead, damage each container when applying the transaction.
* | | Fix nitpicksLibravatar Ryan Dwyer2018-06-27
| | |
* | | Remove incorrect assertion and supporting codeLibravatar Ryan Dwyer2018-06-26
| | | | | | | | | | | | | | | Children can exist when destroying a container, such as when destroying the last output. Sway is not terminating in that case.
* | | Fix crash when closing output window from outer sessionLibravatar Ryan Dwyer2018-06-26
| | | | | | | | | | | | | | | | | | Emitting the close event needs to happen before container_output_destroy, because container_output_destroy sets the sway_output to NULL and sway_output is used in IPC.
* | | Fix crash when disconnecting outputLibravatar Ryan Dwyer2018-06-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We were freeing the sway_output immediately upon disconnect which left a dangling pointer in the output's container. It then tried to use the pointer when the container is freed. We don't need to store the sway_output in an output's container which is destroying, so the fix is to set the pointer to NULL and remove the use in container_free. Also added an arrange when the output is disconnected for good measure.
* | | Remove timer when transaction destroysLibravatar Ryan Dwyer2018-06-26
| | |
* | | Damage output when views toggle fullscreenLibravatar Ryan Dwyer2018-06-26
| | | | | | | | | | | | | | | Also add workspace to the transaction when a view maps in fullscreen mode.
* | | Rename view's free callback to destroyLibravatar Ryan Dwyer2018-06-26
| | |
* | | Damage output when a fullscreen view unmapsLibravatar Ryan Dwyer2018-06-26
| | | | | | | | | | | | | | | Also moved the arranging into view_unmap to avoid excessive code duplication.
* | | Rename progress_queue to transaction_progress_queueLibravatar Ryan Dwyer2018-06-25
| | |
* | | Fix potential crash when fullscreen view unmapsLibravatar Ryan Dwyer2018-06-25
| | | | | | | | | | | | | | | | | | It happened when a view is a grandchild or deeper of the workspace, is fullscreen, and unmaps. The workspace would not be included in the transaction and its pointer to the fullscreen view was left dangling.
* | | Implement per-configure debug timingsLibravatar Ryan Dwyer2018-06-25
| | |
* | | Implement transaction timings debugLibravatar Ryan Dwyer2018-06-25
| | | | | | | | | | | | Launch sway with SWAY_DEBUG=txn_timings to enable it.
* | | Fix another crash when moving out of stacks or tabsLibravatar Ryan Dwyer2018-06-24
| | |
* | | Implement atomic layout updates for xwayland viewsLibravatar Ryan Dwyer2018-06-24
| | |
* | | Fix crash when running move <direction> in an empty workspaceLibravatar Ryan Dwyer2018-06-24
| | |
* | | Fix crash when unmapping a view with reapable parentsLibravatar Ryan Dwyer2018-06-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | container_destroy was calling container_reap_empty, which calls container_destroy and so on. Eventually the original container_destroy would return a NULL pointer to the caller which caused a crash. This also fixes an arrange on the wrong container when moving views in and out of stacks.
* | | Fix crash related to stacks and tabsLibravatar Ryan Dwyer2018-06-24
| | |
* | | Force transactions to complete in orderLibravatar Ryan Dwyer2018-06-24
| | | | | | | | | | | | | | | This forces transactions to complete in order by using a singly linked list stored in the sway server.
* | | Fix crash when deleting last child in a tabbed or stacked containerLibravatar Ryan Dwyer2018-06-23
| | | | | | | | | | | | | | | There was no `current` child because the container was destroyed. This makes it fall back to looking in the parent's current children list.
* | | Merge remote-tracking branch 'upstream/master' into atomicLibravatar Ryan Dwyer2018-06-23
|\| |