migrate clipboard bridge from wlr-data-control to ext-data-control
The wlr-data-control unstable protocol is deprecated; its superseding staging protocol ext-data-control-v1 ships in wayland-protocols. Migrate the host-side clipboard/primary bridge to it: - bind ext_data_control_manager_v1 version 1 instead of zwlr_manager (ext-data-control v1 always supports primary selection, so the dc_primary_supported gate is dropped and the registry bind is plain) - rename all zwlr_data_control_* to ext_data_control_* types/calls - generate ext-data-control-v1 from wayland-protocols and drop the bundled wlr-data-control-unstable-v1.xml - update README and test log-message expectations wltest --screencopy is unaffected; the screencopy migration is separate.
This commit is contained in:
parent
0dc782a5d3
commit
592a2a036e
5 changed files with 98 additions and 383 deletions
|
|
@ -1822,7 +1822,7 @@ def test_standalone_headless_gestures_roundtrip(tmp_path):
|
|||
def test_nested_primary_selection_bridged(tmp_path):
|
||||
"""Nested mode: a tab's primary selection is fanned out to a second tab
|
||||
exactly as standalone, and the host-side bridge publishes it over
|
||||
wlr-data-control (when the host implements v2) without echo-looping."""
|
||||
ext-data-control (when the host implements it) without echo-looping."""
|
||||
if not os.environ.get("WAYLAND_DISPLAY"):
|
||||
pytest.skip("needs a live host Wayland session (WAYLAND_DISPLAY)")
|
||||
out = tmp_path / "primary.out"
|
||||
|
|
@ -1867,9 +1867,9 @@ def test_nested_host_primary_to_kick(tmp_path):
|
|||
payload* because a live host may already hold its own primary selection at
|
||||
boot, which kick faithfully mirrors first.
|
||||
|
||||
Skipped on hosts without wlr-data-control v2 (e.g. GNOME/mutter): the
|
||||
Skipped on hosts without ext-data-control (e.g. GNOME/mutter): the
|
||||
host->nested primary mirror only exists on that backend, so this test
|
||||
needs a data-control host -- run it on a compositor like labwc/sway."""
|
||||
needs an ext-data-control host -- run it on a compositor like labwc/sway."""
|
||||
if not os.environ.get("WAYLAND_DISPLAY"):
|
||||
pytest.skip("needs a live host Wayland session (WAYLAND_DISPLAY)")
|
||||
token = f"kick-h2n-{os.getpid()}-{time.monotonic_ns()}"
|
||||
|
|
@ -1881,12 +1881,12 @@ def test_nested_host_primary_to_kick(tmp_path):
|
|||
s.wait_any_active()
|
||||
s.wait_active_frame()
|
||||
assert s.proc.poll() is None
|
||||
# The host->nested primary bridge only exists over wlr-data-control
|
||||
# v2 (a focus-based wl_data_device host has no primary channel at
|
||||
# The host->nested primary bridge only exists over ext-data-control
|
||||
# (a focus-based wl_data_device host has no primary channel at
|
||||
# all), which is decided at bridge_init before any client maps.
|
||||
s.wait_for(r"clipboard bridge:")
|
||||
if "clipboard bridge: host data-control backend" not in s.read_log():
|
||||
pytest.skip("host compositor lacks wlr-data-control v2; "
|
||||
pytest.skip("host compositor lacks ext-data-control; "
|
||||
"host->nested primary selection is not bridged here")
|
||||
# Primary offers only reach the *focused* tab (wlroots delivers
|
||||
# device selection events to the focused client), so crown the
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue