mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-23 05:15:58 +01:00
Merge pull request #1166 from emersion/cleanup-example-simple
examples: cleanup simple
This commit is contained in:
commit
f572bc065e
1 changed files with 21 additions and 14 deletions
|
@ -37,8 +37,8 @@ struct sample_keyboard {
|
||||||
};
|
};
|
||||||
|
|
||||||
void output_frame_notify(struct wl_listener *listener, void *data) {
|
void output_frame_notify(struct wl_listener *listener, void *data) {
|
||||||
wlr_log(WLR_DEBUG, "Output removed");
|
struct sample_output *sample_output =
|
||||||
struct sample_output *sample_output = wl_container_of(listener, sample_output, frame);
|
wl_container_of(listener, sample_output, frame);
|
||||||
struct sample_state *sample = sample_output->sample;
|
struct sample_state *sample = sample_output->sample;
|
||||||
struct timespec now;
|
struct timespec now;
|
||||||
clock_gettime(CLOCK_MONOTONIC, &now);
|
clock_gettime(CLOCK_MONOTONIC, &now);
|
||||||
|
@ -66,7 +66,9 @@ void output_frame_notify(struct wl_listener *listener, void *data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void output_remove_notify(struct wl_listener *listener, void *data) {
|
void output_remove_notify(struct wl_listener *listener, void *data) {
|
||||||
struct sample_output *sample_output = wl_container_of(listener, sample_output, destroy);
|
struct sample_output *sample_output =
|
||||||
|
wl_container_of(listener, sample_output, destroy);
|
||||||
|
wlr_log(WLR_DEBUG, "Output removed");
|
||||||
wl_list_remove(&sample_output->frame.link);
|
wl_list_remove(&sample_output->frame.link);
|
||||||
wl_list_remove(&sample_output->destroy.link);
|
wl_list_remove(&sample_output->destroy.link);
|
||||||
free(sample_output);
|
free(sample_output);
|
||||||
|
@ -74,10 +76,13 @@ void output_remove_notify(struct wl_listener *listener, void *data) {
|
||||||
|
|
||||||
void new_output_notify(struct wl_listener *listener, void *data) {
|
void new_output_notify(struct wl_listener *listener, void *data) {
|
||||||
struct wlr_output *output = data;
|
struct wlr_output *output = data;
|
||||||
struct sample_state *sample = wl_container_of(listener, sample, new_output);
|
struct sample_state *sample =
|
||||||
struct sample_output *sample_output = calloc(1, sizeof(struct sample_output));
|
wl_container_of(listener, sample, new_output);
|
||||||
|
struct sample_output *sample_output =
|
||||||
|
calloc(1, sizeof(struct sample_output));
|
||||||
if (!wl_list_empty(&output->modes)) {
|
if (!wl_list_empty(&output->modes)) {
|
||||||
struct wlr_output_mode *mode = wl_container_of(output->modes.prev, mode, link);
|
struct wlr_output_mode *mode =
|
||||||
|
wl_container_of(output->modes.prev, mode, link);
|
||||||
wlr_output_set_mode(output, mode);
|
wlr_output_set_mode(output, mode);
|
||||||
}
|
}
|
||||||
sample_output->output = output;
|
sample_output->output = output;
|
||||||
|
@ -105,7 +110,8 @@ void keyboard_key_notify(struct wl_listener *listener, void *data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void keyboard_destroy_notify(struct wl_listener *listener, void *data) {
|
void keyboard_destroy_notify(struct wl_listener *listener, void *data) {
|
||||||
struct sample_keyboard *keyboard = wl_container_of(listener, keyboard, destroy);
|
struct sample_keyboard *keyboard =
|
||||||
|
wl_container_of(listener, keyboard, destroy);
|
||||||
wl_list_remove(&keyboard->destroy.link);
|
wl_list_remove(&keyboard->destroy.link);
|
||||||
wl_list_remove(&keyboard->key.link);
|
wl_list_remove(&keyboard->key.link);
|
||||||
free(keyboard);
|
free(keyboard);
|
||||||
|
@ -116,7 +122,8 @@ void new_input_notify(struct wl_listener *listener, void *data) {
|
||||||
struct sample_state *sample = wl_container_of(listener, sample, new_input);
|
struct sample_state *sample = wl_container_of(listener, sample, new_input);
|
||||||
switch (device->type) {
|
switch (device->type) {
|
||||||
case WLR_INPUT_DEVICE_KEYBOARD:;
|
case WLR_INPUT_DEVICE_KEYBOARD:;
|
||||||
struct sample_keyboard *keyboard = calloc(1, sizeof(struct sample_keyboard));
|
struct sample_keyboard *keyboard =
|
||||||
|
calloc(1, sizeof(struct sample_keyboard));
|
||||||
keyboard->device = device;
|
keyboard->device = device;
|
||||||
keyboard->sample = sample;
|
keyboard->sample = sample;
|
||||||
wl_signal_add(&device->events.destroy, &keyboard->destroy);
|
wl_signal_add(&device->events.destroy, &keyboard->destroy);
|
||||||
|
@ -152,19 +159,19 @@ int main(void) {
|
||||||
.last_frame = { 0 },
|
.last_frame = { 0 },
|
||||||
.display = display
|
.display = display
|
||||||
};
|
};
|
||||||
struct wlr_backend *wlr = wlr_backend_autocreate(display, NULL);
|
struct wlr_backend *backend = wlr_backend_autocreate(display, NULL);
|
||||||
if (!wlr) {
|
if (!backend) {
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
wl_signal_add(&wlr->events.new_output, &state.new_output);
|
wl_signal_add(&backend->events.new_output, &state.new_output);
|
||||||
state.new_output.notify = new_output_notify;
|
state.new_output.notify = new_output_notify;
|
||||||
wl_signal_add(&wlr->events.new_input, &state.new_input);
|
wl_signal_add(&backend->events.new_input, &state.new_input);
|
||||||
state.new_input.notify = new_input_notify;
|
state.new_input.notify = new_input_notify;
|
||||||
clock_gettime(CLOCK_MONOTONIC, &state.last_frame);
|
clock_gettime(CLOCK_MONOTONIC, &state.last_frame);
|
||||||
|
|
||||||
if (!wlr_backend_start(wlr)) {
|
if (!wlr_backend_start(backend)) {
|
||||||
wlr_log(WLR_ERROR, "Failed to start backend");
|
wlr_log(WLR_ERROR, "Failed to start backend");
|
||||||
wlr_backend_destroy(wlr);
|
wlr_backend_destroy(backend);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
wl_display_run(display);
|
wl_display_run(display);
|
||||||
|
|
Loading…
Reference in a new issue