123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- commit bf539e39c15e9a4ef4479d03c52263a3f020ef4a
- Author: Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
- Date: Mon Feb 3 16:57:27 2014 +0100
- compositor-rpi: Fix input initialization
-
- The input initialization code assumes the outputs have already
- been initialized; thus create the outputs first. This fixes a
- segfault upon startup. It is also what the drm and fbdev backends
- do.
- diff --git a/src/compositor-rpi.c b/src/compositor-rpi.c
- index 399090d..e7c0e0d 100644
- --- a/src/compositor-rpi.c
- +++ b/src/compositor-rpi.c
- @@ -527,13 +527,6 @@ rpi_compositor_create(struct wl_display *display, int *argc, char *argv[],
- weston_log("Dispmanx planes are %s buffered.\n",
- compositor->single_buffer ? "single" : "double");
-
- - if (udev_input_init(&compositor->input,
- - &compositor->base,
- - compositor->udev, "seat0") != 0) {
- - weston_log("Failed to initialize udev input.\n");
- - goto out_launcher;
- - }
- -
- for (key = KEY_F1; key < KEY_F9; key++)
- weston_compositor_add_key_binding(&compositor->base, key,
- MODIFIER_CTRL | MODIFIER_ALT,
- @@ -549,19 +542,23 @@ rpi_compositor_create(struct wl_display *display, int *argc, char *argv[],
- bcm_host_init();
-
- if (rpi_renderer_create(&compositor->base, ¶m->renderer) < 0)
- - goto out_udev_input;
- + goto out_launcher;
-
- if (rpi_output_create(compositor, param->output_transform) < 0)
- goto out_renderer;
-
- + if (udev_input_init(&compositor->input,
- + &compositor->base,
- + compositor->udev, "seat0") != 0) {
- + weston_log("Failed to initialize udev input.\n");
- + goto out_renderer;
- + }
- +
- return &compositor->base;
-
- out_renderer:
- compositor->base.renderer->destroy(&compositor->base);
-
- -out_udev_input:
- - udev_input_destroy(&compositor->input);
- -
- out_launcher:
- weston_launcher_destroy(compositor->base.launcher);
-
|