MetaWaylandPointerConstraint: Ignore requests on defunct resource
The constraint may be destroyed before the client destroyes the protocol object, for example if a oneshot constraint was disabled by alt-tab. Therefore we need to NULL check the constraint in request handlers and ignore any requests to defunct objects.
This commit is contained in:
parent
5001aa76d7
commit
b01926dbfa
@ -604,7 +604,7 @@ locked_pointer_set_cursor_position_hint (struct wl_client *client,
|
||||
|
||||
/* Ignore a set cursor hint that was already sent after the constraint
|
||||
* was cancelled. */
|
||||
if (!constraint->resource || constraint->resource != resource)
|
||||
if (!constraint || !constraint->resource || constraint->resource != resource)
|
||||
return;
|
||||
|
||||
constraint->hint_set = TRUE;
|
||||
@ -622,6 +622,9 @@ locked_pointer_set_region (struct wl_client *client,
|
||||
MetaWaylandRegion *region =
|
||||
region_resource ? wl_resource_get_user_data (region_resource) : NULL;
|
||||
|
||||
if (!constraint)
|
||||
return;
|
||||
|
||||
meta_wayland_pointer_constraint_set_pending_region (constraint, region);
|
||||
}
|
||||
|
||||
@ -735,6 +738,9 @@ confined_pointer_set_region (struct wl_client *client,
|
||||
MetaWaylandRegion *region =
|
||||
region_resource ? wl_resource_get_user_data (region_resource) : NULL;
|
||||
|
||||
if (!constraint)
|
||||
return;
|
||||
|
||||
meta_wayland_pointer_constraint_set_pending_region (constraint, region);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user