From f633cff40a23a12f72f9a915644d921d05f4360e Mon Sep 17 00:00:00 2001 From: Taekyun Kim Date: Wed, 2 Sep 2015 14:26:39 +0900 Subject: [PATCH] pepper: Emit missed object events Change-Id: I28da05146738f78b30b4049c7f133dc70b13078e --- src/lib/pepper/compositor.c | 2 +- src/lib/pepper/input.c | 6 +++--- src/lib/pepper/output.c | 12 +++++------- src/lib/pepper/pepper-internal.h | 1 - src/lib/pepper/plane.c | 3 ++- src/lib/pepper/surface.c | 9 ++++----- src/lib/pepper/view.c | 5 ++++- 7 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/lib/pepper/compositor.c b/src/lib/pepper/compositor.c index 12fe88c..4b7bf19 100644 --- a/src/lib/pepper/compositor.c +++ b/src/lib/pepper/compositor.c @@ -132,9 +132,9 @@ pepper_compositor_destroy(pepper_compositor_t *compositor) { /* TODO: Data device manager fini. */ + pepper_object_fini(&compositor->base); wl_global_destroy(compositor->global); wl_display_destroy(compositor->display); - pepper_object_fini(&compositor->base); pepper_free(compositor); } diff --git a/src/lib/pepper/input.c b/src/lib/pepper/input.c index ade297d..98ad9d1 100644 --- a/src/lib/pepper/input.c +++ b/src/lib/pepper/input.c @@ -323,8 +323,8 @@ seat_update_pointer_cap(pepper_seat_t *seat) else if (!(seat->caps & WL_SEAT_CAPABILITY_POINTER) && seat->pointer.active) { seat->pointer.active = PEPPER_FALSE; - pepper_object_fini(&seat->pointer.base); pepper_object_emit_event(&seat->base, PEPPER_EVENT_SEAT_POINTER_REMOVE, &seat->pointer); + pepper_object_fini(&seat->pointer.base); } } @@ -341,8 +341,8 @@ seat_update_keyboard_cap(pepper_seat_t *seat) else if (!(seat->caps & WL_SEAT_CAPABILITY_KEYBOARD) && seat->keyboard.active) { seat->keyboard.active = PEPPER_FALSE; - pepper_object_fini(&seat->keyboard.base); pepper_object_emit_event(&seat->base, PEPPER_EVENT_SEAT_KEYBOARD_REMOVE, &seat->keyboard); + pepper_object_fini(&seat->keyboard.base); } } @@ -359,8 +359,8 @@ seat_update_touch_cap(pepper_seat_t *seat) else if (!(seat->caps & WL_SEAT_CAPABILITY_TOUCH) && seat->touch.active) { seat->touch.active = PEPPER_FALSE; - pepper_object_fini(&seat->touch.base); pepper_object_emit_event(&seat->base, PEPPER_EVENT_SEAT_TOUCH_REMOVE, &seat->touch); + pepper_object_fini(&seat->touch.base); } } diff --git a/src/lib/pepper/output.c b/src/lib/pepper/output.c index 35f499f..15904ae 100644 --- a/src/lib/pepper/output.c +++ b/src/lib/pepper/output.c @@ -288,7 +288,7 @@ pepper_compositor_add_output(pepper_compositor_t *compositor, pepper_list_insert(&compositor->output_list, &output->link); pepper_list_init(&output->plane_list); - pepper_object_emit_event(&compositor->base, PEPPER_EVENT_COMPOSITOR_OUTPUT_ADD, NULL); + pepper_object_emit_event(&compositor->base, PEPPER_EVENT_COMPOSITOR_OUTPUT_ADD, output); return output; } @@ -302,17 +302,15 @@ pepper_output_get_compositor(pepper_output_t *output) PEPPER_API void pepper_output_destroy(pepper_output_t *output) { + pepper_object_emit_event(&output->compositor->base, + PEPPER_EVENT_COMPOSITOR_OUTPUT_REMOVE, output); + pepper_object_fini(&output->base); + output->compositor->output_id_allocator &= ~(1 << output->id); pepper_list_remove(&output->link); - output->backend->destroy(output->data); - wl_global_destroy(output->global); - pepper_object_fini(&output->base); - pepper_object_emit_event(&output->compositor->base, - PEPPER_EVENT_COMPOSITOR_OUTPUT_REMOVE, output); - free(output->name); pepper_free(output); } diff --git a/src/lib/pepper/pepper-internal.h b/src/lib/pepper/pepper-internal.h index 24c0e32..d617a9b 100644 --- a/src/lib/pepper/pepper-internal.h +++ b/src/lib/pepper/pepper-internal.h @@ -161,7 +161,6 @@ struct pepper_surface pepper_surface_state_t pending; char *role; - pepper_map_t *user_data_map; pepper_list_t view_list; }; diff --git a/src/lib/pepper/plane.c b/src/lib/pepper/plane.c index 7324636..959c6f7 100644 --- a/src/lib/pepper/plane.c +++ b/src/lib/pepper/plane.c @@ -90,6 +90,8 @@ pepper_plane_destroy(pepper_plane_t *plane) { pepper_plane_entry_t *entry; + pepper_object_fini(&plane->base); + pepper_list_for_each(entry, &plane->entry_list, link) pepper_view_assign_plane(entry->base.view, plane->output, NULL); @@ -97,7 +99,6 @@ pepper_plane_destroy(pepper_plane_t *plane) pixman_region32_fini(&plane->damage_region); pixman_region32_fini(&plane->clip_region); - pepper_object_fini(&plane->base); pepper_free(plane); } diff --git a/src/lib/pepper/surface.c b/src/lib/pepper/surface.c index acdc0b7..36e04b3 100644 --- a/src/lib/pepper/surface.c +++ b/src/lib/pepper/surface.c @@ -242,7 +242,6 @@ pepper_surface_create(pepper_compositor_t *compositor, { PEPPER_ERROR("wl_resource_create failed\n"); wl_resource_post_no_memory(resource); - pepper_free(surface->user_data_map); pepper_free(surface); return NULL; } @@ -262,6 +261,7 @@ pepper_surface_create(pepper_compositor_t *compositor, wl_list_init(&surface->frame_callback_list); pepper_list_init(&surface->view_list); + pepper_object_emit_event(&compositor->base, PEPPER_EVENT_COMPOSITOR_SURFACE_ADD, surface); return surface; } @@ -271,7 +271,10 @@ pepper_surface_destroy(pepper_surface_t *surface) { struct wl_resource *callback, *next; + pepper_object_emit_event(&surface->compositor->base, + PEPPER_EVENT_COMPOSITOR_SURFACE_REMOVE, surface); pepper_surface_state_fini(&surface->pending); + pepper_object_fini(&surface->base); if (surface->buffer.buffer) pepper_buffer_unreference(surface->buffer.buffer); @@ -288,10 +291,6 @@ pepper_surface_destroy(pepper_surface_t *surface) if (surface->role) pepper_string_free(surface->role); - if (surface->user_data_map) - pepper_map_destroy(surface->user_data_map); - - pepper_object_fini(&surface->base); pepper_free(surface); } diff --git a/src/lib/pepper/view.c b/src/lib/pepper/view.c index 3fcbca9..55192ef 100644 --- a/src/lib/pepper/view.c +++ b/src/lib/pepper/view.c @@ -329,6 +329,7 @@ pepper_compositor_add_surface_view(pepper_compositor_t *compositor, pepper_surfa view->surface_destroy_listener = pepper_object_add_event_listener(&surface->base, PEPPER_EVENT_OBJECT_DESTROY, 0, view_handle_surface_destroy, view); + pepper_object_emit_event(&compositor->base, PEPPER_EVENT_COMPOSITOR_VIEW_ADD, view); return view; } @@ -339,6 +340,9 @@ pepper_view_destroy(pepper_view_t *view) int i; pepper_view_t *child, *tmp; + pepper_object_emit_event(&view->compositor->base, PEPPER_EVENT_COMPOSITOR_VIEW_REMOVE, view); + pepper_object_fini(&view->base); + for (i = 0; i < PEPPER_MAX_OUTPUT_COUNT; i++) plane_entry_set_plane(&view->plane_entries[i], NULL); @@ -359,7 +363,6 @@ pepper_view_destroy(pepper_view_t *view) pixman_region32_fini(&view->opaque_region); pixman_region32_fini(&view->bounding_region); - pepper_object_fini(&view->base); pepper_free(view); } -- 2.7.4