aboutsummaryrefslogtreecommitdiff
path: root/sway/desktop
AgeCommit message (Collapse)Author
2018-06-27Merge branch 'master' into xwayland-wants-floatRyan Dwyer
2018-06-26Merge branch 'master' into float_xdg_shellemersion
2018-06-26layer_shell: order destroying before sway_outputDominique Martinet
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
2018-06-26layer_shell: cleanup output link on output destroyDominique Martinet
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
2018-06-26xdg_shell: make view floating if a parent has been setDominique Martinet
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)
2018-06-24xwayland: accept configure requests from floating viewsemersion
2018-06-18Automatically float xwayland windowsemersion
2018-06-16Update for swaywm/wlroots#1060emersion
2018-06-09Render drag iconsemersion
2018-06-09Fix compilation errors related to disabled outputsemersion
2018-06-06Switch output storing from list_t to wl_listBrian Ashworth
2018-06-06Address emersions comments on output re-enablingBrian Ashworth
2018-06-06Store sway_outputs so that they can be reenabledBrian Ashworth
2018-06-05Merge pull request #2095 from emersion/fullscreen-damage-only-visibleemersion
Only send frame to visible surfaces when fullscreened
2018-06-04Don't restore focus if unmapping surface wasn't focusedRyan Dwyer
2018-06-04Restore focus when unmapping layer shell surfacesRyan Dwyer
2018-06-04Restore focus when unmapping unmanaged xwayland surfacesRyan Dwyer
2018-06-02Add SWAY_DAMAGE_DEBUGemersion
Setting it to "rerender" will always re-render everything regardless of the damaged region. Setting it to "highlight" will clear the screen and render only damaged regions.
2018-06-02Only send frame to visible surfaces when fullscreenedemersion
2018-06-02Schedule a frame even if damage is emptyemersion
2018-06-02Only send frame done to visible viewsemersion
Also don't accumulate empty damage
2018-06-01Don't auto float xdg views if their dimensions are not setRyan Dwyer
2018-06-01Fix fullscreen position of xwayland viewsRyan Dwyer
2018-06-01Fix floating position when view is floated when mappedRyan Dwyer
2018-06-01Don't unmaximize floating viewsRyan Dwyer
2018-06-01Remove unfinished wants_floating implementation for xwaylandRyan Dwyer
2018-06-01Don't let xwayland views set position unless unmanagedRyan Dwyer
2018-06-01Use swayc rather than wlr_output when renderingRyan Dwyer
2018-06-01Use surface size if xdg shell's geometry isn't setRyan Dwyer
2018-06-01Implement wants_floating for xdg_shell and xdg_shell_v6Ryan Dwyer
2018-06-01Remove check for if floating view intersects outputRyan Dwyer
2018-06-01Render floating views before top layer and unmanagedRyan Dwyer
2018-06-01Store swayc coordinates as layout-localRyan Dwyer
2018-06-01Rename set_maximized functions to set_tiledRyan Dwyer
2018-06-01Fix issues with sticky containers and workspacesRyan Dwyer
* Attach sticky containers to new workspaces when switching * Fire the close event *before* we start destroying the workspace to prevent a crash Because the sticky container now follows the visible workspace, this simplifies the rendering and container_at logic.
2018-06-01Respect view's border config for floating containersRyan Dwyer
2018-06-01Replace is_floating boolean with functionRyan Dwyer
2018-06-01Use L_FLOATING instead of reapable booleanRyan Dwyer
2018-06-01Implement floatingRyan Dwyer
2018-06-01Render floating viewsDrew DeVault
2018-05-28Force fullscreen views to be fully opaqueBrian Ashworth
2018-05-27xdg-shell: make all toplevels tiledemersion
2018-05-22Use constants for titlebar dimensionsRyan Dwyer
2018-05-22Implement stacked layoutRyan Dwyer
2018-05-21Pre-multiply alpha for tab decorationsRyan Dwyer
2018-05-21Add left/right borders to tabsRyan Dwyer
2018-05-21Fix tab border issuesRyan Dwyer
2018-05-21Don't track damage for views on inactive tabsRyan Dwyer
2018-05-21Implement tabbed layoutRyan Dwyer
2018-05-20Pre-multiply alpha for non-texturesBrian Ashworth