summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Wiederhake <twied@gmx.net>2011-04-11 13:16:33 -0400
committerKristian Høgsberg <krh@bitplanet.net>2011-04-11 13:16:33 -0400
commitb4b67344f044518ddf6539f63fdc7ae25f0498a9 (patch)
tree1205005543113f7c9332e82c64f36c0624773d54
parent20798291ca32b17acd757e54ef479b2d6905c84e (diff)
Define global handler on display creation
Otherwise the initial announcement of interfaces gets lost.
-rw-r--r--clients/dnd.c4
-rw-r--r--clients/eventdemo.c2
-rw-r--r--clients/flower.c2
-rw-r--r--clients/gears.c2
-rw-r--r--clients/image.c2
-rw-r--r--clients/resizor.c2
-rw-r--r--clients/smoke.c2
-rw-r--r--clients/terminal.c2
-rw-r--r--clients/view.c2
-rw-r--r--clients/window.c12
-rw-r--r--clients/window.h17
11 files changed, 20 insertions, 29 deletions
diff --git a/clients/dnd.c b/clients/dnd.c
index a842b682..c4db9c4c 100644
--- a/clients/dnd.c
+++ b/clients/dnd.c
@@ -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);
diff --git a/clients/eventdemo.c b/clients/eventdemo.c
index 8de620a9..3a0fd0dd 100644
--- a/clients/eventdemo.c
+++ b/clients/eventdemo.c
@@ -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;
diff --git a/clients/flower.c b/clients/flower.c
index a87e20fc..0828fae1 100644
--- a/clients/flower.c
+++ b/clients/flower.c
@@ -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;
diff --git a/clients/gears.c b/clients/gears.c
index e64ff3e2..fb5e1176 100644
--- a/clients/gears.c
+++ b/clients/gears.c
@@ -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;
diff --git a/clients/image.c b/clients/image.c
index 3eada1eb..f7d040fa 100644
--- a/clients/image.c
+++ b/clients/image.c
@@ -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;
diff --git a/clients/resizor.c b/clients/resizor.c
index 0ac02f6e..9788d256 100644
--- a/clients/resizor.c
+++ b/clients/resizor.c
@@ -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;
diff --git a/clients/smoke.c b/clients/smoke.c
index 0710b3a1..e132229a 100644
--- a/clients/smoke.c
+++ b/clients/smoke.c
@@ -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;
diff --git a/clients/terminal.c b/clients/terminal.c
index 35733826..0d41226b 100644
--- a/clients/terminal.c
+++ b/clients/terminal.c
@@ -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;
diff --git a/clients/view.c b/clients/view.c
index 05edf3fe..40614c03 100644
--- a/clients/view.c
+++ b/clients/view.c
@@ -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;
diff --git a/clients/window.c b/clients/window.c
index 6e7ef9b2..25a5ab52 100644
--- a/clients/window.c
+++ b/clients/window.c
@@ -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;
-}
diff --git a/clients/window.h b/clients/window.h
index 538ff07e..f45a2818 100644
--- a/clients/window.h
+++ b/clients/window.h
@@ -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);