commit 971f2ecf426f343a835bf69c90565c4205e21ed1
parent eeb95f5d0c302670f849795f546685b60bd9d722
Author: Michael Forney <mforney@mforney.org>
Date: Sat, 23 Nov 2013 21:13:14 -0800
Expose internal struct for swc globals
Diffstat:
3 files changed, 26 insertions(+), 18 deletions(-)
diff --git a/libswc/private.h b/libswc/private.h
@@ -24,11 +24,19 @@
#ifndef SWC_PRIVATE_H
#define SWC_PRIVATE_H
+struct wl_display;
struct swc_manager;
struct swc_compositor;
-extern const struct swc_manager * swc_manager;
-extern struct swc_compositor * compositor;
+struct swc
+{
+ struct wl_display * display;
+ const struct swc_manager * manager;
+
+ struct swc_compositor * compositor;
+};
+
+extern struct swc swc;
#endif
diff --git a/libswc/swc.c b/libswc/swc.c
@@ -22,23 +22,22 @@
*/
#include "swc.h"
+#include "private.h"
#include "binding.h"
#include "compositor.h"
#include "shell.h"
#include "window.h"
-static struct
-{
- struct swc_compositor compositor;
-} swc;
+static struct swc_compositor compositor;
-struct swc_compositor * compositor = &swc.compositor;
-const struct swc_manager * swc_manager;
+struct swc swc = {
+ .compositor = &compositor
+};
static void setup_compositor()
{
- swc.compositor.seat.keyboard.handler = swc_binding_handler;
- wl_signal_add(&swc.compositor.seat.pointer.focus.event_signal,
+ compositor.seat.keyboard.handler = swc_binding_handler;
+ wl_signal_add(&compositor.seat.pointer.focus.event_signal,
swc_window_enter_listener);
}
@@ -46,7 +45,8 @@ EXPORT
bool swc_initialize(struct wl_display * display,
const struct swc_manager * manager)
{
- swc_manager = manager;
+ swc.display = display;
+ swc.manager = manager;
if (!swc_bindings_initialize())
{
@@ -54,13 +54,13 @@ bool swc_initialize(struct wl_display * display,
goto error0;
}
- if (!swc_compositor_initialize(&swc.compositor, display))
+ if (!swc_compositor_initialize(&compositor, display))
{
fprintf(stderr, "Could not initialize compositor\n");
goto error1;
}
- swc_compositor_add_globals(&swc.compositor, display);
+ swc_compositor_add_globals(&compositor, display);
if (!swc_shell_initialize(display))
{
@@ -73,7 +73,7 @@ bool swc_initialize(struct wl_display * display,
return true;
error2:
- swc_compositor_finish(&swc.compositor);
+ swc_compositor_finish(&compositor);
error1:
swc_bindings_finalize();
error0:
@@ -84,7 +84,7 @@ EXPORT
void swc_finalize()
{
swc_shell_finalize();
- swc_compositor_finish(&swc.compositor);
+ swc_compositor_finish(&compositor);
swc_bindings_finalize();
}
diff --git a/libswc/window.c b/libswc/window.c
@@ -69,7 +69,7 @@ void swc_window_focus(struct swc_window * window)
if (INTERNAL(window)->impl->focus)
INTERNAL(window)->impl->focus(window);
- swc_keyboard_set_focus(&compositor->seat.keyboard,
+ swc_keyboard_set_focus(&swc.compositor->seat.keyboard,
INTERNAL(window)->surface);
}
@@ -117,9 +117,9 @@ bool swc_window_initialize(struct swc_window * window,
wl_resource_add_destroy_listener
(surface->resource, &INTERNAL(window)->surface_destroy_listener);
- swc_surface_set_class(surface, &compositor->compositor_class);
+ swc_surface_set_class(surface, &swc.compositor->compositor_class);
- swc_manager->new_window(window);
+ swc.manager->new_window(window);
return true;
}