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