commit 44c47d5ae0855aff5465adf4793376e72fdd88d2
parent 516f9e79ae9aebdf840478282312a3aebd97885b
Author: Michael Forney <mforney@mforney.org>
Date: Tue, 3 Dec 2013 20:55:56 -0800
Move pointer region calculation to swc.c:setup_compositor()
Diffstat:
2 files changed, 17 insertions(+), 16 deletions(-)
diff --git a/libswc/compositor.c b/libswc/compositor.c
@@ -305,8 +305,6 @@ bool swc_compositor_initialize(struct swc_compositor * compositor,
struct wl_event_loop * event_loop)
{
struct wl_list * outputs;
- struct swc_output * output;
- pixman_region32_t pointer_region;
uint32_t keysym;
compositor->display = display;
@@ -352,20 +350,6 @@ bool swc_compositor_initialize(struct swc_compositor * compositor,
goto error2;
}
- /* Calculate pointer region */
- pixman_region32_init(&pointer_region);
-
- wl_list_for_each(output, &compositor->outputs, link)
- {
- pixman_region32_union_rect(&pointer_region, &pointer_region,
- output->geometry.x, output->geometry.y,
- output->geometry.width,
- output->geometry.height);
- }
-
- swc_pointer_set_region(swc.seat->pointer, &pointer_region);
- pixman_region32_fini(&pointer_region);
-
pixman_region32_init(&compositor->damage);
pixman_region32_init(&compositor->opaque);
wl_list_init(&compositor->surfaces);
diff --git a/libswc/swc.c b/libswc/swc.c
@@ -49,12 +49,29 @@ struct swc swc = {
static void setup_compositor()
{
+ pixman_region32_t pointer_region;
+ struct swc_output * output;
+
swc.seat->keyboard->handler = swc.bindings->keyboard_handler;
swc.seat->pointer->handler = &compositor.pointer_handler;
wl_signal_add(&swc.seat->pointer->focus.event_signal,
swc_window_enter_listener);
wl_signal_add(&swc.seat->pointer->event_signal,
&compositor.pointer_listener);
+
+ /* Calculate pointer region */
+ pixman_region32_init(&pointer_region);
+
+ wl_list_for_each(output, &compositor.outputs, link)
+ {
+ pixman_region32_union_rect(&pointer_region, &pointer_region,
+ output->geometry.x, output->geometry.y,
+ output->geometry.width,
+ output->geometry.height);
+ }
+
+ swc_pointer_set_region(swc.seat->pointer, &pointer_region);
+ pixman_region32_fini(&pointer_region);
}
EXPORT