gamma-control-v1: add wlr_gamma_control_manager_v1_get_control()

This commit is contained in:
Simon Ser 2023-03-06 16:01:57 +01:00 committed by Alexander Orzechowski
parent 70c1a57248
commit 6e635d2fd3
2 changed files with 16 additions and 6 deletions

View File

@ -39,5 +39,7 @@ struct wlr_gamma_control_v1 {
struct wlr_gamma_control_manager_v1 *wlr_gamma_control_manager_v1_create(
struct wl_display *display);
struct wlr_gamma_control_v1 *wlr_gamma_control_manager_v1_get_control(
struct wlr_gamma_control_manager_v1 *manager, struct wlr_output *output);
#endif

View File

@ -207,12 +207,9 @@ static void gamma_control_manager_get_gamma_control(struct wl_client *client,
return;
}
struct wlr_gamma_control_v1 *gc;
wl_list_for_each(gc, &manager->controls, link) {
if (gc->output == output) {
zwlr_gamma_control_v1_send_failed(resource);
return;
}
if (wlr_gamma_control_manager_v1_get_control(manager, output) != NULL) {
zwlr_gamma_control_v1_send_failed(resource);
return;
}
struct wlr_gamma_control_v1 *gamma_control =
@ -299,3 +296,14 @@ struct wlr_gamma_control_manager_v1 *wlr_gamma_control_manager_v1_create(
return manager;
}
struct wlr_gamma_control_v1 *wlr_gamma_control_manager_v1_get_control(
struct wlr_gamma_control_manager_v1 *manager, struct wlr_output *output) {
struct wlr_gamma_control_v1 *gamma_control;
wl_list_for_each(gamma_control, &manager->controls, link) {
if (gamma_control->output == output) {
return gamma_control;
}
}
return NULL;
}