swc

Unnamed repository; edit this file 'description' to name the repository.
git clone git://git.nihaljere.xyz/swc
Log | Files | Refs | README | LICENSE

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:
Mlibswc/compositor.c | 16----------------
Mlibswc/swc.c | 17+++++++++++++++++
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