fix decorations on wayland backend

This commit is contained in:
Tony Crisci 2018-01-23 07:11:54 -05:00
parent 9d87d4e336
commit fc627afd18
3 changed files with 8 additions and 3 deletions

View file

@ -115,7 +115,7 @@ static void roots_cursor_update_position(struct roots_cursor *cursor,
seat_view_deco_leave(cursor->pointer_view);
cursor->pointer_view = NULL;
}
bool set_compositor_cursor = !view && cursor->cursor_client;
bool set_compositor_cursor = !view && !surface && cursor->cursor_client;
if (view && surface) {
struct wl_client *view_client =
wl_resource_get_client(view->wlr_surface->resource);
@ -211,7 +211,7 @@ static void roots_cursor_press_button(struct roots_cursor *cursor,
struct roots_desktop *desktop = seat->input->server->desktop;
bool is_touch = device->type == WLR_INPUT_DEVICE_TOUCH;
struct wlr_surface *surface;
struct wlr_surface *surface = NULL;
double sx, sy;
struct roots_view *view =
desktop_view_at(desktop, lx, ly, &surface, &sx, &sy);

View file

@ -400,7 +400,8 @@ static bool view_at(struct roots_view *view, double lx, double ly,
if (view_get_deco_part(view, view_sx, view_sy)) {
*sx = view_sx;
*sy = view_sy;
return view;
*surface = NULL;
return true;
}
if (wlr_box_contains_point(&box, view_sx, view_sy) &&

View file

@ -573,6 +573,10 @@ static void seat_view_destroy(struct roots_seat_view *seat_view) {
seat->cursor->mode = ROOTS_CURSOR_PASSTHROUGH;
}
if (seat_view == seat->cursor->pointer_view) {
seat->cursor->pointer_view = NULL;
}
wl_list_remove(&seat_view->view_destroy.link);
wl_list_remove(&seat_view->link);
free(seat_view);