Merge pull request #457 from acrisci/feature/wl-shell-commit

wl-shell: add commit event
This commit is contained in:
Tony Crisci 2017-12-03 14:06:43 -05:00 committed by GitHub
commit aa7efa1564
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 2 deletions

View file

@ -77,6 +77,7 @@ struct wlr_wl_shell_surface {
struct { struct {
struct wl_signal destroy; struct wl_signal destroy;
struct wl_signal commit;
struct wl_signal ping_timeout; struct wl_signal ping_timeout;
struct wl_signal request_move; struct wl_signal request_move;

View file

@ -150,8 +150,7 @@ void handle_wl_shell_surface(struct wl_listener *listener, void *data) {
roots_surface->set_state.notify = handle_set_state; roots_surface->set_state.notify = handle_set_state;
wl_signal_add(&surface->events.set_state, &roots_surface->set_state); wl_signal_add(&surface->events.set_state, &roots_surface->set_state);
roots_surface->surface_commit.notify = handle_surface_commit; roots_surface->surface_commit.notify = handle_surface_commit;
wl_signal_add(&surface->surface->events.commit, wl_signal_add(&surface->events.commit, &roots_surface->surface_commit);
&roots_surface->surface_commit);
struct roots_view *view = calloc(1, sizeof(struct roots_view)); struct roots_view *view = calloc(1, sizeof(struct roots_view));
if (!view) { if (!view) {

View file

@ -459,6 +459,8 @@ static void handle_wlr_surface_committed(struct wl_listener *listener,
surface->popup_state->seat); surface->popup_state->seat);
shell_pointer_grab_maybe_end(&grab->pointer_grab); shell_pointer_grab_maybe_end(&grab->pointer_grab);
} }
wl_signal_emit(&surface->events.commit, surface);
} }
static int shell_surface_ping_timeout(void *user_data) { static int shell_surface_ping_timeout(void *user_data) {
@ -509,6 +511,7 @@ static void shell_protocol_get_shell_surface(struct wl_client *client,
wl_surface->resource); wl_surface->resource);
wl_signal_init(&wl_surface->events.destroy); wl_signal_init(&wl_surface->events.destroy);
wl_signal_init(&wl_surface->events.commit);
wl_signal_init(&wl_surface->events.ping_timeout); wl_signal_init(&wl_surface->events.ping_timeout);
wl_signal_init(&wl_surface->events.request_move); wl_signal_init(&wl_surface->events.request_move);
wl_signal_init(&wl_surface->events.request_resize); wl_signal_init(&wl_surface->events.request_resize);