Commit Graph

1123 Commits

Author SHA1 Message Date
i509VCB fdaf1859b0 anvil: Pass window and output maps using dispatch data AnvilState 2021-10-16 13:14:46 +02:00
Victor Brekenfeld 60fdbaebc5
Merge pull request #398 from i509VCB/anvil/mutex-log
anvil: Passing `ANVIL_MUTEX_LOG` uses Mutex logging drain
2021-10-14 18:21:01 +02:00
i509VCB f5bf204454 anvil: Passing `ANVIL_MUTEX_LOG` uses Mutex logging drain
fmt...
2021-10-14 10:54:43 -05:00
Victor Brekenfeld dd6919dd5f
Merge pull request #385 from Smithay/feature/dmabuf_filter 2021-09-30 21:47:57 +02:00
Victor Brekenfeld bafc378181 wayland/dmabuf: Allow global creation with a client filter 2021-09-30 18:37:54 +02:00
Victor Berger 3842b78979 wayland.compositor: fix leak of surface data
The subsurface logic holds a self-reference to the WlSurface to
track stacking orders of the children relative to the parent. This
self-reference needs be dropped during cleanup to avoid reference
cycles.

This was not the case, and caused every surface user data to be
leaked as it kept a reference to itself (and all of its children).
2021-09-28 16:30:46 +02:00
i509VCB 70c11e6c62 docs: Update calloop in CLI
This should hopefully fix the builds failing.
2021-09-23 10:08:39 +02:00
Victor Brekenfeld 7f0687cfc9
Merge pull request #380 from Smithay/feature/xcb_variants 2021-09-22 18:48:26 +02:00
Victor Brekenfeld 55eb73cb9e wayland/seat: add return value to `KeyboardHandle::input` 2021-09-19 17:10:08 +02:00
Victor Brekenfeld 90dd28c910 wayland/seat: Add `KeysymHandle` to allow for keycode conversions.
Currently keycodes are always converted using xkbcommons
`State::key_get_one_sym` function. This may be not what the compositor
wants, e.g. if it represents keybindings with explicit modifiers.
Applying Shift in this case changes the sym, making it necessary for
the compositor to *undo* this transformation, which is hard or even
impossible and very unnecessary, when we have all the necessary
information in smithay.

Therefor this commit replaces the `Keysym` argument of the filter
closure with a `KeysymHandle`, which allows for different variants of
keysyms to be received. Modified (as previously), unmodified or even
as a raw keycode.
2021-09-17 17:12:26 +02:00
Victor Berger d0ee7d831e
Merge pull request #367 from PolyMeilex/fix-2
backend.libseat: Fix dispatch double borrow
2021-08-31 10:34:24 +02:00
Poly 8967a7eb1c Make libloading optional 2021-08-31 10:33:23 +02:00
i509VCB b07f1af494
Implement Coordinate for all numerical types (#372)
This allows Size, Point and Rectangle to be made with any numeric type
2021-08-30 22:02:00 +02:00
Poly 4a54130ad2 CHANGELOG 2021-08-26 01:00:31 +02:00
Poly 10cab4eab9 backend.libseat: Fix dispatch double borrow 2021-08-26 01:00:31 +02:00
Victor Berger cc48759338
Merge pull request #369 from i509VCB/anvil_render_fn
anvil: Split out logic for drawing layers and windows from backends
2021-08-24 14:26:22 +02:00
Victor Berger f4ba6f5bea
Merge pull request #366 from psychon/x11-event-thread
Anvil: Use a dedicated X11 event thread for event reading
2021-08-24 11:31:02 +02:00
Poly b458893cda doc: Fix crates.io badge 2021-08-23 15:51:00 +02:00
i509VCB 5d2e601426 Fence the module I guess 2021-08-21 17:18:54 -05:00
i509VCB e020347c6b anvil: Split out logic for drawing layers and windows
At the moment also splitting our Drag and Drop requires unraveling some backend specific stuff.
2021-08-21 16:55:32 -05:00
Victor Berger daef0a11df
Merge pull request #361 from cmeissl/feature/xdg_v3
support for xdg-shell v3
2021-08-15 22:50:54 +02:00
Uli Schlachter 9af64eb0b3 rustfmt
Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-08-14 17:53:32 +02:00
Uli Schlachter 05e5036584 Exit the worker thread when X11Source is dropped
The previous commit added a new worker thread. This thread might sit in
wait_for_event() indefinitely even after the X11Source was dropped. This
is because nothing guarantees that an X11 event will come in "soonish".
And only then would the thread notice that its main thread is gone.

This commit cleans that up by having X11Source explicitly wake up the
event thread and wait for it to exit in its Drop implementation.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-08-14 17:37:26 +02:00
Uli Schlachter 6004ecdc14 Anvil: Move X11 event reading to a thread
x11rb caches X11 events internally. This cache is used when waiting for
the reply of a request and an event is received first.  This cache is
however also used when sending a request, because the X11 client may
never block and stop reading while writing a request. Doing so could
cause a deadlock with the X11 server.

Thus, this commit changes X11Source to spawn a thread internally. This
thread calls wait_for_event() in a loop and uses a calloop channel to
forward these events to the main loop. x11rb's RustConnection internally
uses a ConditionVariable to make sure this thread will wake up when
needed.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-08-14 17:25:51 +02:00
Christian Meissl eedca681fe bump xdg_wm_base in wlcs supported extensions 2021-08-04 23:28:48 +02:00
Christian Meissl 0aad6db558 Updated the changelog 2021-08-04 23:12:22 +02:00
Christian Meissl 85fa46ad2c Add example for setting the initial popup geometry 2021-08-04 23:12:22 +02:00
Christian Meissl 6d3d5f7933 implement popup protocol checks 2021-08-04 23:12:22 +02:00
Christian Meissl 477f737b95 filter tiled toplevel states if not supported 2021-08-04 23:12:16 +02:00
Christian Meissl b36cfbb392 add v3 positioner fields and handle requests
add support for xdg_popup reposition
increment supported wm_base version to 3
2021-08-03 15:57:22 +02:00
Victor Berger dbd03567ff
Merge pull request #358 from PolyMeilex/xdg-activate
XDG activation support
2021-08-01 11:42:42 +02:00
Poly 47718e188c Merge remote-tracking branch 'PolyMeilex/xdg-activate' into xdg-activate 2021-07-31 22:39:01 +02:00
Poly ea59b2f522
wayland.xdg-activation: fix `retain_requests` typo
Co-authored-by: Victor Berger <vberger@users.noreply.github.com>
2021-07-31 22:38:42 +02:00
Poly 524501b2e8 anvil: split `bring_nth_window_to_top` to separate fn 2021-07-31 22:36:55 +02:00
Poly 3721b515f7 Update CHANGELOG 2021-07-31 21:16:39 +02:00
Poly f0cdb235d7 anvil: implement xdg-activation 2021-07-31 21:16:39 +02:00
Poly f24332f4b4 wayland.xdg-activation: Initial implementaion 2021-07-31 21:16:39 +02:00
Victor Berger 663b591641 CI: structure for running WLCS tests 2021-07-31 20:35:27 +02:00
Victor Berger 01ac0f135b
Merge pull request #354 from PolyMeilex/layer-v3
WLR Layer Shell Support
2021-07-31 13:56:53 +02:00
Poly 1c6db1e7ee wayland.shell.layer: change role static to constant 2021-07-31 13:45:57 +02:00
Poly e4c7822476 Update CHANGELOG 2021-07-31 13:45:57 +02:00
Poly 115403633b anvil: Implement wlr_layer_shell 2021-07-31 13:44:04 +02:00
Poly 84d3d6e609 wayland.shell: implement wlr_layer_shell 2021-07-31 13:44:04 +02:00
i509VCB 23a8af399d xdg-foreign
This is very much incomplete, but it implements the import and export of surfaces. However functions related to setting and imported surface the parent of another surface is not done.

importer destructor destroys all imports made from the same client 


Implement SetParentOf, no undoing yet


Add inner import type


Destroy child surface relationships when importing


A note


move init function upwards


use 0.29.0 crate


Move role string constants into the public


Use toplevel_like for surface checks in foreign


add methods to get the parent surface


Make sure ZXDG roles are public api


Consistent ordering of parameters on xdg_foreign impl methods


Let's update the changelog


Document how to use xdg_foreign


wl_shell_surface is likely invalid, so it cannot be imported or exported


Changelog suggestions


remove redundant inner ref cell


Remove all uses of the refcell like behavior


Allow compositor to export surfaces on server



Appease new clippy lints


then


Use string references and iterate in reverse to simplify removals


heed request for order
2021-07-31 11:40:24 +02:00
Victor Berger 963f742e74 Rework CI flow 2021-07-30 19:29:05 +02:00
Poly 217b63f106 Fix Clippy for Anvil 2021-07-30 18:10:48 +02:00
Poly df9be985ca Fix Clippy 2021-07-30 18:10:48 +02:00
Alyssa Ross 88dc5c182f Update Anvil logind documentation
The logind feature is enabled by default.  It doesn't need to be
manually enabled.  ConsoleKit support is no longer planned.
2021-07-30 10:26:36 +02:00
Poly e3522dfb34
backend.egl: Early return on dead buffers (#352) 2021-07-28 23:31:43 +02:00
Poly c136cd5f34 wayland.data_device: Early return on protocol error 2021-07-27 09:32:34 +02:00