Age | Commit message (Collapse) | Author |
|
cursor: allow to call wlr_cursor_wrap_absolute with zero
|
|
|
|
layer-shell: use output_damage_{whole,from}_local_surface
|
|
These handle rotation and scaling
|
|
Reuse what already handles rotation and scaling. This unbreaks popups
on rotated or scaled outputs.
|
|
Fix protocol error when a client destroys and re-creates a subsurface
|
|
|
|
examples/layer-shell: take grab on the popup
|
|
This demonstrates popups can be closed by clicking on the area outside
the popup and parent.
|
|
Layer popups: work on top of PR 867
|
|
So we can the xdg_popup_destroy path.
|
|
Change the cursor when entering the popup and make mouse buttons change
the red component of the square. This makes sure we can handle input
correctly.
|
|
Thanks @emersion
|
|
|
|
|
|
This allows them to receive input as well.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Update layer shell with optional wl_output
|
|
|
|
|
|
|
|
|
|
Remove wlr_surface::subsurface, add wlr_subcompositor
|
|
xwayland: preserve the PATH variable
|
|
Some systems don't have xwayland in /usr/bin, but in other paths.
wlroots was unable to find Xwayland binaries outside of standard locations
|
|
|
|
|
|
|
|
Do not advertize *RGB8888 as supported shm formats
|
|
They're always available and supported, and are added automatically.
Adding them again just duplicates them.
|
|
Advertize supported renderer formats
|
|
Remove a few local prefixed symbols
|
|
|
|
|
|
|
|
reorder xkb state handling in wlr_keyboard
|
|
wlr_keyboard manages the xkb-common state of the compositor.
It used to update the state, update the modifiers, then notify the
compositor.
When [Shift_L] was pressed and released, this resulted in an event chain:
Modifiers: Shift
Key: Shift_L (Pressed)
Modifiers:
Key: Shift_L (Release)
The xkb-docs state that the state should be updated *after* the key was
handled [1], to prevent the new state from influencing the actual key
generated.
To achieve this, the event to the compositor is emitted, *before*
wlroots handles the xkb and internal keyboard state.
With this patch applied, the emitted events ill be:
Modifiers:
Key: Shift_L (Pressed)
Modifiers: Shift
Key: Shift_L (Release)
[1] https://xkbcommon.org/doc/current/group__state.html#gac554aa20743a621692c1a744a05e06ce
|
|
output: don't emit the mode event if it hasn't changed
|
|
This also fixes #535.
|
|
rootston: don't crash on shutdown
|
|
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.
|
|
x11 backend: Expose events mean "needs swap"
|
|
When the X11 server sends an expose event, that means that "this
rectangle here (the event contains x,y,width,height) has undefined
contents on your window; please redraw that". This means that we need a
swap. However, so far the code does not actually enforce that a swap
happens.
For example, start rootston, switch to another workspace and then switch
back. The rootston window will not be redrawn (before commit
52b058c2a31fb, it would just be fully white; after that commit it will
show whatever was visible on the old workspace). This is because the
drawing code concludes that nothing needs to be done. However, in fact a
swap is necessary.
This reverts commit e79d92458852373, because its optimisation is already
done now: wlr_output_update_needs_swap() emits a signal, which is
handled by wlr_output_damage with a call to wlr_output_schedule_frame().
This function does nothing if a frame is already pending. Thus, the
optimisation from commit e79d92458852373 now happens implicitly.
Signed-off-by: Uli Schlachter <psychon@znc.in>
|