Fix cursor role name, fix segfault when surface->resource is NULL

This commit is contained in:
emersion 2017-10-14 12:21:36 +02:00
parent 29abf93bb6
commit 8fd4ae5de8
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48
3 changed files with 4 additions and 4 deletions

View file

@ -306,8 +306,8 @@ static void handle_request_set_cursor(struct wl_listener *listener,
struct wlr_surface *focused_surface =
event->seat_handle->wlr_seat->pointer_state.focused_surface;
bool ok = focused_surface != NULL;
if (focused_surface != NULL) {
bool ok = focused_surface != NULL && focused_surface->resource != NULL;
if (ok) {
struct wl_client *focused_client =
wl_resource_get_client(focused_surface->resource);
ok = event->client == focused_client;

View file

@ -231,7 +231,7 @@ static void handle_cursor_surface_destroy(struct wl_listener *listener,
void wlr_output_set_cursor_surface(struct wlr_output *output,
struct wlr_surface *surface, int32_t hotspot_x, int32_t hotspot_y) {
if (surface && strcmp(surface->role, "cursor") != 0) {
if (surface && strcmp(surface->role, "wl_pointer-cursor") != 0) {
return;
}

View file

@ -28,7 +28,7 @@ static void wl_pointer_set_cursor(struct wl_client *client,
if (surface_resource != NULL) {
surface = wl_resource_get_user_data(surface_resource);
if (wlr_surface_set_role(surface, "cursor", resource,
if (wlr_surface_set_role(surface, "wl_pointer-cursor", resource,
WL_POINTER_ERROR_ROLE) < 0) {
return;
}