aboutsummaryrefslogtreecommitdiffstats
path: root/sway/desktop/xdg_shell_v6.c
Commit message (Collapse)AuthorAge
...
* xdg_shell: listen to fullscreen request on mapLibravatar Dominique Martinet2018-06-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | That event comes from the toplevel and not the surface, so would cause a use-after-free on destroy if the toplevel got destroyed first: ==5454==ERROR: AddressSanitizer: heap-use-after-free on address 0x6110001ed198 at pc 0x000000472d10 bp 0x7ffc19070a80 sp 0x7ffc19070a70 WRITE of size 8 at 0x6110001ed198 thread T0 #0 0x472d0f in wl_list_remove ../common/list.c:157 #1 0x42e159 in handle_destroy ../sway/desktop/xdg_shell_v6.c:243 #2 0x7fa9e5b28ce8 in wlr_signal_emit_safe ../util/signal.c:29 #3 0x7fa9e5afd6b1 in destroy_xdg_surface_v6 ../types/xdg_shell_v6/wlr_xdg_surface_v6.c:101 #4 0x7fa9e5d98025 in destroy_resource src/wayland-server.c:688 #5 0x7fa9e5d98091 in wl_resource_destroy src/wayland-server.c:705 #6 0x7fa9e27f103d in ffi_call_unix64 (/lib64/libffi.so.6+0x603d) #7 0x7fa9e27f09fe in ffi_call (/lib64/libffi.so.6+0x59fe) #8 0x7fa9e5d9bf2c (/lib64/libwayland-server.so.0+0xbf2c) #9 0x7fa9e5d983de in wl_client_connection_data src/wayland-server.c:420 #10 0x7fa9e5d99f01 in wl_event_loop_dispatch src/event-loop.c:641 #11 0x7fa9e5d98601 in wl_display_run src/wayland-server.c:1260 #12 0x40a2f4 in main ../sway/main.c:433 #13 0x7fa9e527318a in __libc_start_main ../csu/libc-start.c:308 #14 0x40b749 in _start (/opt/wayland/bin/sway+0x40b749) 0x6110001ed198 is located 152 bytes inside of 240-byte region [0x6110001ed100,0x6110001ed1f0) freed by thread T0 here: #0 0x7fa9e7c89880 in __interceptor_free (/lib64/libasan.so.5+0xee880) #1 0x7fa9e5affce9 in destroy_xdg_toplevel_v6 ../types/xdg_shell_v6/wlr_xdg_toplevel_v6.c:23 #2 0x7fa9e5d98025 in destroy_resource src/wayland-server.c:688 previously allocated by thread T0 here: #0 0x7fa9e7c89e50 in calloc (/lib64/libasan.so.5+0xeee50) #1 0x7fa9e5b00eea in create_xdg_toplevel_v6 ../types/xdg_shell_v6/wlr_xdg_toplevel_v6.c:427 #2 0x7fa9e27f103d in ffi_call_unix64 (/lib64/libffi.so.6+0x603d) The toplevel only notifies the compositor on destroy if it was mapped, so only listen to events at map time.
* sway views: add helpers to get view and layer from wlr_surfaceLibravatar Dominique Martinet2018-06-30
|
* Merge remote-tracking branch 'upstream/master' into atomicLibravatar Ryan Dwyer2018-06-30
|\
| * Revert "Don't unmaximize floating views"Libravatar Rostislav Pehlivanov2018-06-30
| | | | | | | | This reverts commit 97672295ed50d1d6272876c4a3b6b5607cab05c6.
* | Merge remote-tracking branch 'upstream/master' into atomicLibravatar Ryan Dwyer2018-06-29
|\|
| * 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)
* | Move unsetting of view->surface into view_unmapLibravatar Ryan Dwyer2018-06-27
| |
* | Remove transaction_add_damageLibravatar Ryan Dwyer2018-06-27
| | | | | | | | Instead, damage each container when applying the transaction.
* | 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.
* | Implement atomic layout updates for tree operationsLibravatar Ryan Dwyer2018-06-23
| | | | | | | | | | This implements atomic layout updates for when views map, reparent or unmap.
* | Refactor everything that needs to arrange windowsLibravatar Ryan Dwyer2018-06-09
| | | | | | | | | | | | | | | | | | | | * The arrange_foo functions are now replaced with arrange_and_commit, or with manually created transactions and arrange_windows x2. * The arrange functions are now only called from the highest level functions rather than from both high level and low level functions. * Due to the previous point, view_set_fullscreen_raw and view_set_fullscreen are both merged into one function again. * Floating and fullscreen are now working with transactions.
* | WIP: Atomic layout updates ground workLibravatar Ryan Dwyer2018-06-09
|/
* Don't auto float xdg views if their dimensions are not setLibravatar Ryan Dwyer2018-06-01
|
* Fix floating position when view is floated when mappedLibravatar Ryan Dwyer2018-06-01
|
* Don't unmaximize floating viewsLibravatar Ryan Dwyer2018-06-01
|
* Use surface size if xdg shell's geometry isn't setLibravatar Ryan Dwyer2018-06-01
|
* Implement wants_floating for xdg_shell and xdg_shell_v6Libravatar Ryan Dwyer2018-06-01
|
* Store swayc coordinates as layout-localLibravatar Ryan Dwyer2018-06-01
|
* Rename set_maximized functions to set_tiledLibravatar Ryan Dwyer2018-06-01
|
* Replace is_floating boolean with functionLibravatar Ryan Dwyer2018-06-01
|
* Implement floatingLibravatar Ryan Dwyer2018-06-01
|
* Revert "Revert "Merge pull request #1943 from RyanDwyer/criteria-improvements""Libravatar Ryan Dwyer2018-05-14
| | | | | | | This reverts commit 32a572cecfd0f6072a78ce0a381a2f8365f9010a. This reimplements the criteria overhaul in preparation for fixing a known bug.
* Don't destroy view child on xdg-popup unmapLibravatar emersion2018-05-12
|
* Revert "Merge pull request #1943 from RyanDwyer/criteria-improvements"Libravatar Drew DeVault2018-05-12
| | | | | This reverts commit 3e1bf721c69cb6df70c3dc3d3d4933e987339676, reversing changes made to 2217518bd554d0f11dafa7ec4e8f35f2e4762fbd.
* Overhaul criteria implementationLibravatar Ryan Dwyer2018-05-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The criteria struct now uses properties for each token type rather than the list_t list of tokens. The reason for this is that different token types have different data types: pcre, string and number to name a few. This solution should be more flexible moving forward. A bonus of this is that criteria is now easier to understand when looking at the struct definition. The criteria parser has been rewritten because the previous one didn't support valueless pairs (eg. [class="foo" floating]). Criteria now has types. Types at the moment are CT_COMMAND, CT_ASSIGN_WORKSPACE and CT_ASSIGN_OUTPUT. i3 uses types as well. Previously the assign command was creating a criteria with 'move to workspace <name>' as its command, but this caused the window to appear briefly on the focused workspace before being moved to the assigned workspace. It now creates the view directly in the assigned workspace. Each view will only execute a given criteria once. This is achieved by storing a list of executed criteria in the view. This is the same strategy used by i3. Escaping now works properly. Previously you could do things like [class="Fire\"fox"] and the stored value would be 'Fire\"fox', but it should be (and now is) 'Fire"fox'. The public functions in criteria.c are now all prefixed with criteria_. Xwayland views now listen to the set_title, set_class and set_window_type events and criteria will be run when these happen. XDG shell has none of these events so it continues to update the title in handle_commit. Each view type's get_prop function has been split into get_string_prop and get_int_prop because some properties like the X11 window ID and window type are numeric. The following new criteria tokens are now supported: * id (X11 window ID) * instance * tiling * workspace
* Damage borders when damaging viewLibravatar emersion2018-05-10
|
* Implement title_formatLibravatar Ryan Dwyer2018-05-05
| | | | | | | | | | This implements the title_format command, with a new placeholder %shell which gets substituted with the view type (xwayland, xdg_shell_v6 or wl_shell). Example config: for_window [title=".*"] title_format %title (class=%class instance=%instance shell=%shell)
* Update titles when surfaces are committedLibravatar Ryan Dwyer2018-05-03
|
* Implement bordersLibravatar Ryan Dwyer2018-04-30
| | | | | | | | | | | | | Implements rendering of borders. Title text is still to do. Implements the following configuration directives: * client.focused * client.focused_inactive * client.unfocused * client.urgent * border * default_border
* Don't call view_set_fullscreen on unmapped xwayland viewsLibravatar emersion2018-04-28
|
* Ignore xdg_shell_v6 request_fullscreen if not mappedLibravatar Ryan Dwyer2018-04-20
|
* xdg_shell_v6: Use client_pending state instead of currentLibravatar Ryan Dwyer2018-04-19
| | | | It appears client_pending is the state that should be used here.
* Fullscreen fixes.Libravatar Ryan Dwyer2018-04-18
|
* Handle fullscreen flag when mapping a surface.Libravatar Ryan Dwyer2018-04-17
|
* Implement fullscreen.Libravatar Ryan Dwyer2018-04-16
|
* Don't damage the whole outputLibravatar emersion2018-04-06
|
* Simplify damage tracking functions, use them in layer shellLibravatar emersion2018-04-06
|
* Send surface enter/leave events to view childrenLibravatar emersion2018-04-06
|
* Fix xwayland unmanaged surfacesLibravatar emersion2018-04-05
|
* Track damage of xdg-shell-v6 popupsLibravatar emersion2018-04-05
|
* Implement shell viewsLibravatar emersion2018-04-05
|
* Remove unused SWAY_VIEW_TYPESLibravatar emersion2018-04-04
|
* Address review commentsLibravatar emersion2018-04-02
|
* Add sway_view_implLibravatar emersion2018-03-31
|
* Introduce common functions to create, map, unmap, destroy viewsLibravatar emersion2018-03-31
|
* Handle map/unmap events in xdg-shell-v6Libravatar emersion2018-03-30
|
* Add lite damage trackingLibravatar emersion2018-03-30
| | | | | This skips the renderer if nothing has changed, and renders everything otherwise.
* Fix workspace deletion edge casesLibravatar Drew DeVault2018-03-30
|