wl_mouse: Account properly for the lack of zwp_pointer_constraints and relative mouse interface
This commit is contained in:
@@ -79,6 +79,10 @@ static void
|
||||
display_global_remove(void *data, struct wl_registry *wl_registry, uint32_t name)
|
||||
{
|
||||
plat_mouse_capture(0);
|
||||
zwp_relative_pointer_manager_v1_destroy(rel_manager);
|
||||
zwp_pointer_constraints_v1_destroy(conf_pointer_interface);
|
||||
rel_manager = nullptr;
|
||||
conf_pointer_interface = nullptr;
|
||||
}
|
||||
|
||||
static const struct wl_registry_listener registry_listener = {
|
||||
@@ -102,9 +106,11 @@ void wl_init()
|
||||
|
||||
void wl_mouse_capture(QWindow *window)
|
||||
{
|
||||
rel_pointer = zwp_relative_pointer_manager_v1_get_relative_pointer(rel_manager, (wl_pointer*)QGuiApplication::platformNativeInterface()->nativeResourceForIntegration("wl_pointer"));
|
||||
zwp_relative_pointer_v1_add_listener(rel_pointer, &rel_listener, nullptr);
|
||||
conf_pointer = zwp_pointer_constraints_v1_lock_pointer(conf_pointer_interface, (wl_surface*)QGuiApplication::platformNativeInterface()->nativeResourceForWindow("surface", window), (wl_pointer*)QGuiApplication::platformNativeInterface()->nativeResourceForIntegration("wl_pointer"), nullptr, ZWP_POINTER_CONSTRAINTS_V1_LIFETIME_PERSISTENT);
|
||||
if (rel_manager) {
|
||||
rel_pointer = zwp_relative_pointer_manager_v1_get_relative_pointer(rel_manager, (wl_pointer*)QGuiApplication::platformNativeInterface()->nativeResourceForIntegration("wl_pointer"));
|
||||
zwp_relative_pointer_v1_add_listener(rel_pointer, &rel_listener, nullptr);
|
||||
}
|
||||
if (conf_pointer_interface) conf_pointer = zwp_pointer_constraints_v1_lock_pointer(conf_pointer_interface, (wl_surface*)QGuiApplication::platformNativeInterface()->nativeResourceForWindow("surface", window), (wl_pointer*)QGuiApplication::platformNativeInterface()->nativeResourceForIntegration("wl_pointer"), nullptr, ZWP_POINTER_CONSTRAINTS_V1_LIFETIME_PERSISTENT);
|
||||
}
|
||||
|
||||
void wl_mouse_uncapture()
|
||||
|
Reference in New Issue
Block a user