mirror of
https://gitlab.freedesktop.org/libinput/libei.git
synced 2026-05-07 01:48:00 +02:00
eis: send missing ei_text interface version
The protocol test we had was broken, it would assume that any interface
we send was present instead of only taking the ones the server replied
with. Fix this so this triggers next time.
Fixes: 1f9be0fd0a ("Add a new text interface for sending keysyms and utf8 text")
Part-of: <https://gitlab.freedesktop.org/libinput/libei/-/merge_requests/387>
This commit is contained in:
parent
428984ce75
commit
cea415fc40
2 changed files with 14 additions and 2 deletions
|
|
@ -136,6 +136,7 @@ client_msg_finish(struct eis_handshake *setup)
|
|||
SEND_INTERFACE_VERSION(EIS_SCROLL, ei_scroll);
|
||||
SEND_INTERFACE_VERSION(EIS_KEYBOARD, ei_keyboard);
|
||||
SEND_INTERFACE_VERSION(EIS_TOUCHSCREEN, ei_touchscreen);
|
||||
SEND_INTERFACE_VERSION(EIS_TEXT, ei_text);
|
||||
|
||||
#undef SEND_INTERFACE_VERSION
|
||||
|
||||
|
|
|
|||
|
|
@ -171,16 +171,18 @@ class Ei:
|
|||
self.send(setup.ContextType(EiHandshake.EiContextType.SENDER))
|
||||
self.send(setup.Name("test client"))
|
||||
|
||||
requested_versions = {}
|
||||
|
||||
def on_interface_version(_, name, version):
|
||||
logger.debug(f"Interface {name} v{version}")
|
||||
assert version <= self.interface_versions[name]
|
||||
assert version <= requested_versions[name]
|
||||
self.interface_versions[name] = version
|
||||
|
||||
self.handshake.connect("InterfaceVersion", on_interface_version)
|
||||
|
||||
for iname in filter(lambda i: i != InterfaceName.EI_HANDSHAKE, InterfaceName):
|
||||
version = interface_versions.get(iname, VERSION_V(1))
|
||||
self.interface_versions[iname] = version
|
||||
requested_versions[iname] = version
|
||||
self.send(setup.InterfaceVersion(iname, version))
|
||||
|
||||
self.send(setup.Finish())
|
||||
|
|
@ -419,6 +421,12 @@ class TestEiProtocol:
|
|||
|
||||
assert ei.interface_versions[InterfaceName.EI_CALLBACK] == VERSION_V(1)
|
||||
|
||||
# Make sure we get all interfaces
|
||||
for iname in filter(
|
||||
lambda iname: iname != InterfaceName.EI_HANDSHAKE, InterfaceName
|
||||
):
|
||||
assert iname in ei.interface_versions
|
||||
|
||||
# Right now all our versions are 1, so let's ensure that's true
|
||||
for name, version in ei.interface_versions.items():
|
||||
print(name, version)
|
||||
|
|
@ -445,6 +453,7 @@ class TestEiProtocol:
|
|||
|
||||
# Right now all our EIS versions are 1, despite whatever we announce
|
||||
for name, version in ei.interface_versions.items():
|
||||
print(name, version)
|
||||
assert version == VERSION_V(1), f"For interface {name}"
|
||||
|
||||
eis.terminate()
|
||||
|
|
@ -573,6 +582,7 @@ class TestEiProtocol:
|
|||
InterfaceName.EI_TOUCHSCREEN,
|
||||
InterfaceName.EI_SCROLL,
|
||||
InterfaceName.EI_BUTTON,
|
||||
InterfaceName.EI_TEXT,
|
||||
]:
|
||||
ei.send(
|
||||
setup.InterfaceVersion(interface, VERSION_V(1))
|
||||
|
|
@ -614,6 +624,7 @@ class TestEiProtocol:
|
|||
InterfaceName.EI_SCROLL,
|
||||
InterfaceName.EI_KEYBOARD,
|
||||
InterfaceName.EI_TOUCHSCREEN,
|
||||
InterfaceName.EI_TEXT,
|
||||
)
|
||||
]
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue