aboutsummaryrefslogtreecommitdiff
path: root/rootston/layer_shell.c
AgeCommit message (Collapse)Author
2018-09-11rootston: Keep older anchored layers near anchor pointsDorota Czaplejewicz
Layer surfaces are attached to edges of the screen starting with the youngest, causing new ones to always displace existing ones. This changes the order to oldest first, keeping the positions more often.
2018-08-23rootston/layer_shell: fix clicking after surface moved/resizedDorota Czaplejewicz
Layer surfaces are not notified of cursor position changes if the surface moves, only if the cursor moves. This workaround emits a cursor position event every time a cursor ends up over a newly resized layer surface to make sure the following clicks land in the right place. This change doesn't address sending leave events when a cursor previously present over the surface becomes away. There are 2 separate mechanisms in play, because a layer surface gets resized in 2 steps: 1. Layer surface resize & rearrange. 2. Underlying surface resize. The first step may affect all layer surfaces. The cursor events are sent to cursors placed over all layer surfaces which have moved (not been resized). The second step affects any layer surface whose surface changed size. The cursor event is sent only to that surface. Together, these events cover all surfaces: those which moves, and those which changed size, as long as each layer surface resize is accompanied by an immediate surface resize.
2018-07-29rootston: focus newly-created surfacesIlia Bozhinov
Whenever a new surface is created, we have to update the cursor focus, even if there's no input event. So, we generate one motion event, and reuse the code to update the proper cursor focus. We need to do this for all surface roles - toplevels, popups, subsurfaces. Fixes #1162
2018-07-09util: add wlr_ prefix to log symbolsemersion
2018-06-30rootston: fix leak in handle_layer_shell_surfaceDominique Martinet
Found through static analysis
2018-04-26layer-shell: Fix crash when cursor is intially outside any outputGuido Günther
On the X11 backend the cursor position might be outside the output window so no output is returned leading to the assert to trigger. Use sane fallback instead of crashing.
2018-04-24layer-shell: use output_damage_{whole,from}_local_surface on map/unmapGuido Günther
These handle rotation and scaling
2018-04-24layer-shell: use output_damage_{whole,from}_local_surface for popupsGuido Günther
Reuse what already handles rotation and scaling. This unbreaks popups on rotated or scaled outputs.
2018-04-23rootston: Damage layer-shell popupsGuido Günther
2018-04-22Implement output auto-selection in rootstonDrew DeVault
2018-04-16rootston: don't crash on shutdownGuido Günther
When e.g. running rootston under X11 it would otherwise crash when closing rootston like: #0 0x00007f0197da7327 in wl_list_remove () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0 #1 0x000056306fcee7fb in handle_destroy (listener=0x5630723a2948, data=0x5630723a5d20) at ../rootston/layer_shell.c:273 #2 0x00007f019800a552 in wlr_signal_emit_safe (signal=0x5630723a5e30, data=0x5630723a5d20) at ../util/signal.c:29 #3 0x00007f0197fef808 in layer_surface_destroy (surface=0x5630723a5d20) at ../types/wlr_layer_shell.c:169 #4 0x00007f0197ff0001 in client_handle_destroy (resource=0x56307229c4c0) at ../types/wlr_layer_shell.c:371 #5 0x00007f0197da2f30 in () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0 #6 0x00007f0197da77f9 in () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0 #7 0x00007f0197da301d in wl_client_destroy () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0 #8 0x00007f0197da30d8 in () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0 #9 0x00007f0197da4c12 in wl_event_loop_dispatch () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0 #10 0x00007f0197da344a in wl_display_run () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0 #11 0x000056306fcef069 in main (argc=3, argv=0x7ffd22032528) at ../rootston/main.c:83 since the output_destroy got already removed in handle_output_destroy.
2018-04-03rootston: send enter event for layer surfacesemersion
2018-04-02Address review feedbackDrew DeVault
2018-04-02Handle layer surfaces below shell surfacesDrew DeVault
2018-04-02Always give keyboard focus to the topmost layerDrew DeVault
2018-04-02Identify topmost interactive layer surfaceDrew DeVault
2018-04-02Don't reset exclusive between layer shell passesDrew DeVault
This is not the intended behavior of exclusive zones, the second pass is meant to respect the usable area.
2018-03-29Fix maximized windows interaction with layer shellDrew DeVault
If there were no layer surfaces the usable area of the output would be an empty box.
2018-03-27Address further review feedbackDrew DeVault
2018-03-27Address some more feedbackDrew DeVault
2018-03-27Address @emersion's feedbackDrew DeVault
2018-03-27Fix surface layer damage trackingDrew DeVault
2018-03-27Add margin animation to the example demoDrew DeVault
2018-03-27Fix layer rendering/layout bugsDrew DeVault
2018-03-27Handle usable area for maximized windowsDrew DeVault
Also fixes some bugs
2018-03-27Reset exclusivity after shell layerDrew DeVault
Also fixes an issue which was applying exclusivity to all edges
2018-03-27Fix rebase issues; rearrange layers on destroyDrew DeVault
2018-03-27Use 0 for default width/height (rather than -1)Drew DeVault
2018-03-27Add layer_surface.closeDrew DeVault
2018-03-27Fix exclusive zone among other layersDrew DeVault
2018-03-27Gracefully deal with outputs being removedDrew DeVault
2018-03-27Implement layer surface damageDrew DeVault
2018-03-27Arrange & render layer surfacesDrew DeVault
2018-03-27Add broken test client and rootston stubsDrew DeVault