Remove ping_timer when destroying wlr_wl_shell_surface

This commit is contained in:
emersion 2017-09-28 13:34:22 +02:00
parent 9d405cffa7
commit 55d2462180
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48
2 changed files with 2 additions and 1 deletions

View file

@ -56,7 +56,7 @@ void handle_wl_shell_surface(struct wl_listener *listener, void *data) {
struct wlr_wl_shell_surface *surface = data; struct wlr_wl_shell_surface *surface = data;
wlr_log(L_DEBUG, "new shell surface: title=%s, class=%s", wlr_log(L_DEBUG, "new shell surface: title=%s, class=%s",
surface->title, surface->class); surface->title, surface->class);
wlr_wl_shell_surface_ping(surface); // TODO: segfaults wlr_wl_shell_surface_ping(surface);
struct roots_wl_shell_surface *roots_surface = struct roots_wl_shell_surface *roots_surface =
calloc(1, sizeof(struct roots_wl_shell_surface)); calloc(1, sizeof(struct roots_wl_shell_surface));

View file

@ -262,6 +262,7 @@ static void wl_shell_surface_destroy(struct wlr_wl_shell_surface *surface) {
wl_resource_set_user_data(surface->resource, NULL); wl_resource_set_user_data(surface->resource, NULL);
wl_list_remove(&surface->link); wl_list_remove(&surface->link);
wl_list_remove(&surface->surface_destroy_listener.link); wl_list_remove(&surface->surface_destroy_listener.link);
wl_event_source_remove(surface->ping_timer);
free(surface->transient_state); free(surface->transient_state);
free(surface->popup_state); free(surface->popup_state);
free(surface->title); free(surface->title);