Define global handler on display creation
authorTim Wiederhake <twied@gmx.net>
Mon, 11 Apr 2011 17:16:33 +0000 (13:16 -0400)
committerKristian Høgsberg <krh@bitplanet.net>
Mon, 11 Apr 2011 17:16:33 +0000 (13:16 -0400)
Otherwise the initial announcement of interfaces gets lost.

clients/dnd.c
clients/eventdemo.c
clients/flower.c
clients/gears.c
clients/image.c
clients/resizor.c
clients/smoke.c
clients/terminal.c
clients/view.c
clients/window.c
clients/window.h

index a842b68..c4db9c4 100644 (file)
@@ -679,14 +679,12 @@ main(int argc, char *argv[])
 {
        struct display *d;
 
-       d = display_create(&argc, &argv, option_entries);
+       d = display_create(&argc, &argv, option_entries, global_handler);
        if (d == NULL) {
                fprintf(stderr, "failed to create display: %m\n");
                return -1;
        }
 
-       display_set_global_handler(d, global_handler);
-
        dnd_create(d);
 
        display_run(d);
index 8de620a..3a0fd0d 100644 (file)
@@ -377,7 +377,7 @@ main(int argc, char *argv[])
        struct eventdemo *e;
 
        /* Connect to the display and have the arguments parsed */
-       d = display_create(&argc, &argv, option_entries);
+       d = display_create(&argc, &argv, option_entries, NULL);
        if (d == NULL) {
                fprintf(stderr, "failed to create display: %m\n");
                return -1;
index a87e20f..0828fae 100644 (file)
@@ -129,7 +129,7 @@ int main(int argc, char *argv[])
        struct display *d;
        struct timeval tv;
 
-       d = display_create(&argc, &argv, NULL);
+       d = display_create(&argc, &argv, NULL, NULL);
        if (d == NULL) {
                fprintf(stderr, "failed to create display: %m\n");
                return -1;
index e64ff3e..fb5e117 100644 (file)
@@ -372,7 +372,7 @@ int main(int argc, char *argv[])
 {
        struct display *d;
 
-       d = display_create(&argc, &argv, NULL);
+       d = display_create(&argc, &argv, NULL, NULL);
        if (d == NULL) {
                fprintf(stderr, "failed to create display: %m\n");
                return -1;
index 3eada1e..f7d040f 100644 (file)
@@ -244,7 +244,7 @@ main(int argc, char *argv[])
        struct display *d;
        int i;
 
-       d = display_create(&argc, &argv, option_entries);
+       d = display_create(&argc, &argv, option_entries, NULL);
        if (d == NULL) {
                fprintf(stderr, "failed to create display: %m\n");
                return -1;
index 0ac02f6..9788d25 100644 (file)
@@ -220,7 +220,7 @@ main(int argc, char *argv[])
 {
        struct display *d;
 
-       d = display_create(&argc, &argv, NULL);
+       d = display_create(&argc, &argv, NULL, NULL);
        if (d == NULL) {
                fprintf(stderr, "failed to create display: %m\n");
                return -1;
index 0710b3a..e132229 100644 (file)
@@ -249,7 +249,7 @@ int main(int argc, char *argv[])
        struct display *d;
        int size;
 
-       d = display_create(&argc, &argv, NULL);
+       d = display_create(&argc, &argv, NULL, NULL);
        if (d == NULL) {
                fprintf(stderr, "failed to create display: %m\n");
                return -1;
index 3573382..0d41226 100644 (file)
@@ -2382,7 +2382,7 @@ int main(int argc, char *argv[])
        struct display *d;
        struct terminal *terminal;
 
-       d = display_create(&argc, &argv, option_entries);
+       d = display_create(&argc, &argv, option_entries, NULL);
        if (d == NULL) {
                fprintf(stderr, "failed to create display: %m\n");
                return -1;
index 05edf3f..40614c0 100644 (file)
@@ -253,7 +253,7 @@ main(int argc, char *argv[])
        struct display *d;
        int i;
 
-       d = display_create(&argc, &argv, option_entries);
+       d = display_create(&argc, &argv, option_entries, NULL);
        if (d == NULL) {
                fprintf(stderr, "failed to create display: %m\n");
                return -1;
index 6e7ef9b..25a5ab5 100644 (file)
@@ -1769,7 +1769,8 @@ init_egl(struct display *d)
 }
 
 struct display *
-display_create(int *argc, char **argv[], const GOptionEntry *option_entries)
+display_create(int *argc, char **argv[], const GOptionEntry *option_entries,
+              display_global_handler_t handler)
 {
        struct display *d;
        GOptionContext *context;
@@ -1802,6 +1803,8 @@ display_create(int *argc, char **argv[], const GOptionEntry *option_entries)
 
         memset(d, 0, sizeof *d);
 
+       d->global_handler = handler;
+
        d->display = wl_display_connect(NULL);
        if (d->display == NULL) {
                fprintf(stderr, "failed to create display: %m\n");
@@ -1906,10 +1909,3 @@ display_run(struct display *d)
 {
        g_main_loop_run(d->loop);
 }
-
-void
-display_set_global_handler(struct display *display,
-                          display_global_handler_t handler)
-{
-       display->global_handler = handler;
-}
index 538ff07..f45a281 100644 (file)
@@ -40,8 +40,14 @@ struct rectangle {
 struct display;
 struct input;
 
+typedef void (*display_global_handler_t)(struct display *display,
+                                        const char *interface,
+                                        uint32_t id,
+                                        uint32_t version);
+
 struct display *
-display_create(int *argc, char **argv[], const GOptionEntry *option_entries);
+display_create(int *argc, char **argv[], const GOptionEntry *option_entries,
+              display_global_handler_t handler);
 
 struct wl_display *
 display_get_display(struct display *display);
@@ -134,11 +140,6 @@ typedef int (*window_motion_handler_t)(struct window *window,
                                       int32_t x, int32_t y,
                                       int32_t sx, int32_t sy, void *data);
 
-typedef void (*display_global_handler_t)(struct display *display,
-                                        const char *interface,
-                                        uint32_t id,
-                                        uint32_t version);
-
 struct window *
 window_create(struct display *display, int32_t width, int32_t height);
 struct window *
@@ -234,10 +235,6 @@ window_set_title(struct window *window, const char *title);
 const char *
 window_get_title(struct window *window);
 
-void
-display_set_global_handler(struct display *display,
-                          display_global_handler_t handler);
-
 struct wl_drag *
 window_create_drag(struct window *window);