diff --git a/ThunkLibs/libwayland-client/Guest.cpp b/ThunkLibs/libwayland-client/Guest.cpp index 869e87f0f..2f887a6a3 100644 --- a/ThunkLibs/libwayland-client/Guest.cpp +++ b/ThunkLibs/libwayland-client/Guest.cpp @@ -120,6 +120,8 @@ extern "C" int wl_proxy_add_listener(wl_proxy* proxy, void (**callback)(void), v } else if (signature == "a") { // E.g. xdg_toplevel::wm_capabilities host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'a'>(callback[i]); + } else if (signature == "f") { + host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'f'>(callback[i]); } else if (signature == "hu") { // E.g. zwp_linux_dmabuf_feedback_v1::format_table host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'h', 'u'>(callback[i]); @@ -140,6 +142,8 @@ extern "C" int wl_proxy_add_listener(wl_proxy* proxy, void (**callback)(void), v } else if (signature == "iia") { // E.g. xdg_toplevel::configure host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'i', 'i', 'a'>(callback[i]); + } else if (signature == "iiii") { + host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'i', 'i', 'i', 'i'>(callback[i]); } else if (signature == "iiiiissi") { // E.g. wl_output_listener::geometry host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'i', 'i', 'i', 'i', 'i', 's', 's', 'i'>(callback[i]); @@ -183,6 +187,8 @@ extern "C" int wl_proxy_add_listener(wl_proxy* proxy, void (**callback)(void), v } else if (signature == "uoffo") { // E.g. wl_data_device_listener::enter host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'u', 'o', 'f', 'f', 'o'>(callback[i]); + } else if (signature == "uoo") { + host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'u', 'o', 'o'>(callback[i]); } else if (signature == "us") { host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'u', 's'>(callback[i]); } else if (signature == "uss") { diff --git a/ThunkLibs/libwayland-client/Host.cpp b/ThunkLibs/libwayland-client/Host.cpp index 41bca8a52..68c2ded33 100644 --- a/ThunkLibs/libwayland-client/Host.cpp +++ b/ThunkLibs/libwayland-client/Host.cpp @@ -337,6 +337,8 @@ fexfn_impl_libwayland_client_wl_proxy_add_listener(struct wl_proxy* proxy, guest // E.g. xdg_toplevel::wm_capabilities FEX::HLE::FinalizeHostTrampolineForGuestFunction((FEX::HLE::HostToGuestTrampolinePtr*)callback, (void*)CallGuestPtrWithWaylandArray); + } else if (signature == "f") { + WaylandFinalizeHostTrampolineForGuestListener<'f'>(callback); } else if (signature == "hu") { // E.g. zwp_linux_dmabuf_feedback_v1::format_table WaylandFinalizeHostTrampolineForGuestListener<'h', 'u'>(callback); @@ -358,6 +360,8 @@ fexfn_impl_libwayland_client_wl_proxy_add_listener(struct wl_proxy* proxy, guest // E.g. xdg_toplevel::configure FEX::HLE::FinalizeHostTrampolineForGuestFunction((FEX::HLE::HostToGuestTrampolinePtr*)callback, (void*)CallGuestPtrWithWaylandArray); + } else if (signature == "iiii") { + WaylandFinalizeHostTrampolineForGuestListener<'i', 'i', 'i', 'i'>(callback); } else if (signature == "iiiiissi") { // E.g. wl_output_listener::geometry WaylandFinalizeHostTrampolineForGuestListener<'i', 'i', 'i', 'i', 'i', 's', 's', 'i'>(callback); @@ -402,6 +406,8 @@ fexfn_impl_libwayland_client_wl_proxy_add_listener(struct wl_proxy* proxy, guest } else if (signature == "uoffo") { // E.g. wl_data_device_listener::enter WaylandFinalizeHostTrampolineForGuestListener<'u', 'o', 'f', 'f', 'o'>(callback); + } else if (signature == "uoo") { + WaylandFinalizeHostTrampolineForGuestListener<'u', 'o', 'o'>(callback); } else if (signature == "us") { WaylandFinalizeHostTrampolineForGuestListener<'u', 's'>(callback); } else if (signature == "uss") {