commit 7e7f056
Michael Forney
·
2013-11-24 05:20:06 +0000 UTC
parent 971f2ec
Allow user to specify event loop to use
5 files changed,
+10,
-6
+2,
-4
1@@ -313,9 +313,9 @@ static void bind_compositor(struct wl_client * client, void * data,
2 }
3
4 bool swc_compositor_initialize(struct swc_compositor * compositor,
5- struct wl_display * display)
6+ struct wl_display * display,
7+ struct wl_event_loop * event_loop)
8 {
9- struct wl_event_loop * event_loop;
10 struct wl_list * outputs;
11 struct swc_output * output;
12 pixman_region32_t pointer_region;
13@@ -338,8 +338,6 @@ bool swc_compositor_initialize(struct swc_compositor * compositor,
14 goto error_base;
15 }
16
17- event_loop = wl_display_get_event_loop(display);
18-
19 /* TODO: configurable seat */
20 if (!swc_seat_initialize(&compositor->seat, compositor->udev, default_seat))
21 {
+2,
-1
1@@ -46,7 +46,8 @@ struct swc_compositor
2 };
3
4 bool swc_compositor_initialize(struct swc_compositor * compositor,
5- struct wl_display * display);
6+ struct wl_display * display,
7+ struct wl_event_loop * event_loop);
8
9 void swc_compositor_finish(struct swc_compositor * compositor);
10
+2,
-0
1@@ -25,12 +25,14 @@
2 #define SWC_PRIVATE_H
3
4 struct wl_display;
5+struct wl_event_loop;
6 struct swc_manager;
7 struct swc_compositor;
8
9 struct swc
10 {
11 struct wl_display * display;
12+ struct wl_event_loop * event_loop;
13 const struct swc_manager * manager;
14
15 struct swc_compositor * compositor;
+3,
-1
1@@ -43,9 +43,11 @@ static void setup_compositor()
2
3 EXPORT
4 bool swc_initialize(struct wl_display * display,
5+ struct wl_event_loop * event_loop,
6 const struct swc_manager * manager)
7 {
8 swc.display = display;
9+ swc.event_loop = event_loop ?: wl_display_get_event_loop(display);
10 swc.manager = manager;
11
12 if (!swc_bindings_initialize())
13@@ -54,7 +56,7 @@ bool swc_initialize(struct wl_display * display,
14 goto error0;
15 }
16
17- if (!swc_compositor_initialize(&compositor, display))
18+ if (!swc_compositor_initialize(&compositor, display, swc.event_loop))
19 {
20 fprintf(stderr, "Could not initialize compositor\n");
21 goto error1;
+1,
-0
1@@ -125,6 +125,7 @@ struct swc_manager
2 };
3
4 bool swc_initialize(struct wl_display * display,
5+ struct wl_event_loop * event_loop,
6 const struct swc_manager * manager);
7 void swc_finalize();
8