mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2024-11-25 08:32:30 +00:00
add output resolution notify to example shared
This commit is contained in:
parent
5a9baf487e
commit
d9ebf0615a
@ -428,6 +428,15 @@ static void output_frame_notify(struct wl_listener *listener, void *data) {
|
|||||||
compositor->last_frame = now;
|
compositor->last_frame = now;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void output_resolution_notify(struct wl_listener *listener, void *data) {
|
||||||
|
struct output_state *output = wl_container_of(listener, output, resolution);
|
||||||
|
struct compositor_state *compositor = output->compositor;
|
||||||
|
|
||||||
|
if (compositor->output_resolution_cb) {
|
||||||
|
compositor->output_resolution_cb(output);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void output_add_notify(struct wl_listener *listener, void *data) {
|
static void output_add_notify(struct wl_listener *listener, void *data) {
|
||||||
struct wlr_output *output = data;
|
struct wlr_output *output = data;
|
||||||
struct compositor_state *state = wl_container_of(listener, state, output_add);
|
struct compositor_state *state = wl_container_of(listener, state, output_add);
|
||||||
@ -442,8 +451,10 @@ static void output_add_notify(struct wl_listener *listener, void *data) {
|
|||||||
ostate->output = output;
|
ostate->output = output;
|
||||||
ostate->compositor = state;
|
ostate->compositor = state;
|
||||||
ostate->frame.notify = output_frame_notify;
|
ostate->frame.notify = output_frame_notify;
|
||||||
|
ostate->resolution.notify = output_resolution_notify;
|
||||||
wl_list_init(&ostate->frame.link);
|
wl_list_init(&ostate->frame.link);
|
||||||
wl_signal_add(&output->events.frame, &ostate->frame);
|
wl_signal_add(&output->events.frame, &ostate->frame);
|
||||||
|
wl_signal_add(&output->events.resolution, &ostate->resolution);
|
||||||
wl_list_insert(&state->outputs, &ostate->link);
|
wl_list_insert(&state->outputs, &ostate->link);
|
||||||
if (state->output_add_cb) {
|
if (state->output_add_cb) {
|
||||||
state->output_add_cb(ostate);
|
state->output_add_cb(ostate);
|
||||||
@ -468,6 +479,7 @@ static void output_remove_notify(struct wl_listener *listener, void *data) {
|
|||||||
}
|
}
|
||||||
wl_list_remove(&ostate->link);
|
wl_list_remove(&ostate->link);
|
||||||
wl_list_remove(&ostate->frame.link);
|
wl_list_remove(&ostate->frame.link);
|
||||||
|
wl_list_remove(&ostate->resolution.link);
|
||||||
free(ostate);
|
free(ostate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user