swc

Unnamed repository; edit this file 'description' to name the repository.
git clone git://git.nihaljere.xyz/swc
Log | Files | Refs | README | LICENSE

commit 7e7f05696b2e452fc9e46f1aec64aa2ec09f12ce
parent 971f2ecf426f343a835bf69c90565c4205e21ed1
Author: Michael Forney <mforney@mforney.org>
Date:   Sat, 23 Nov 2013 21:20:06 -0800

Allow user to specify event loop to use

Diffstat:
Mlibswc/compositor.c | 6++----
Mlibswc/compositor.h | 3++-
Mlibswc/private.h | 2++
Mlibswc/swc.c | 4+++-
Mlibswc/swc.h | 1+
5 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/libswc/compositor.c b/libswc/compositor.c @@ -313,9 +313,9 @@ static void bind_compositor(struct wl_client * client, void * data, } bool swc_compositor_initialize(struct swc_compositor * compositor, - struct wl_display * display) + struct wl_display * display, + struct wl_event_loop * event_loop) { - struct wl_event_loop * event_loop; struct wl_list * outputs; struct swc_output * output; pixman_region32_t pointer_region; @@ -338,8 +338,6 @@ bool swc_compositor_initialize(struct swc_compositor * compositor, goto error_base; } - event_loop = wl_display_get_event_loop(display); - /* TODO: configurable seat */ if (!swc_seat_initialize(&compositor->seat, compositor->udev, default_seat)) { diff --git a/libswc/compositor.h b/libswc/compositor.h @@ -46,7 +46,8 @@ struct swc_compositor }; bool swc_compositor_initialize(struct swc_compositor * compositor, - struct wl_display * display); + struct wl_display * display, + struct wl_event_loop * event_loop); void swc_compositor_finish(struct swc_compositor * compositor); diff --git a/libswc/private.h b/libswc/private.h @@ -25,12 +25,14 @@ #define SWC_PRIVATE_H struct wl_display; +struct wl_event_loop; struct swc_manager; struct swc_compositor; struct swc { struct wl_display * display; + struct wl_event_loop * event_loop; const struct swc_manager * manager; struct swc_compositor * compositor; diff --git a/libswc/swc.c b/libswc/swc.c @@ -43,9 +43,11 @@ static void setup_compositor() EXPORT bool swc_initialize(struct wl_display * display, + struct wl_event_loop * event_loop, const struct swc_manager * manager) { swc.display = display; + swc.event_loop = event_loop ?: wl_display_get_event_loop(display); swc.manager = manager; if (!swc_bindings_initialize()) @@ -54,7 +56,7 @@ bool swc_initialize(struct wl_display * display, goto error0; } - if (!swc_compositor_initialize(&compositor, display)) + if (!swc_compositor_initialize(&compositor, display, swc.event_loop)) { fprintf(stderr, "Could not initialize compositor\n"); goto error1; diff --git a/libswc/swc.h b/libswc/swc.h @@ -125,6 +125,7 @@ struct swc_manager }; bool swc_initialize(struct wl_display * display, + struct wl_event_loop * event_loop, const struct swc_manager * manager); void swc_finalize();