On Wed, Jun 03, 2015 at 03:53:30PM -0500, Derek Foreman wrote: > Normally we need to check if a seat's [device_type]_count is > 0 before > we can use the associated pointer. However, in a binding you're > guaranteed that the seat has a device of that type. If we pass in > that type instead of the seat, it's obvious we don't have to test it. > > The bindings can still get the seat pointer via whatever->seat if they > need it. > > This is preparation for a follow up patch that prevents direct access > to seat->device_type pointers, and this will save us a few tests at > that point. > > Signed-off-by: Derek Foreman <der...@osg.samsung.com> > --- > desktop-shell/exposay.c | 4 +- > desktop-shell/shell.c | 125 > +++++++++++++++++++++++---------------------- > desktop-shell/shell.h | 2 +- > ivi-shell/ivi-shell.c | 4 +- > src/bindings.c | 19 +++---- > src/compositor-drm.c | 15 +++--- > src/compositor-fbdev.c | 3 +- > src/compositor-rpi.c | 3 +- > src/compositor-wayland.c | 6 +-- > src/compositor.c | 2 +- > src/compositor.h | 10 ++-- > src/gl-renderer.c | 8 +-- > src/pixman-renderer.c | 2 +- > src/screenshooter.c | 14 ++--- > tests/surface-screenshot.c | 3 +- > 15 files changed, 116 insertions(+), 104 deletions(-) > > diff --git a/desktop-shell/exposay.c b/desktop-shell/exposay.c > index 4916b39..ec65e7d 100644 > --- a/desktop-shell/exposay.c > +++ b/desktop-shell/exposay.c > @@ -652,10 +652,10 @@ exposay_set_state(struct desktop_shell *shell, enum > exposay_target_state state, > } >
<snip> > > static void > -renderer_switch_binding(struct weston_seat *seat, uint32_t time, uint32_t > key, > - void *data) > +renderer_switch_binding(struct weston_keyboard *keyboard, uint32_t time, > + uint32_t key, void *data) > { > - struct drm_compositor *c = (struct drm_compositor *) seat->compositor; > + struct drm_compositor *c = > + (struct drm_compositor *)keyboard->seat->compositor; nit: Same comment as a previous patch regarding style. Disregarding that... Reviewed-by: Jonas Ådahl <jad...@gmail.com> > > switch_to_gl_renderer(c); > } > diff --git a/src/compositor-fbdev.c b/src/compositor-fbdev.c > index 3f3394f..582ce47 100644 > --- a/src/compositor-fbdev.c > +++ b/src/compositor-fbdev.c > @@ -797,7 +797,8 @@ fbdev_restore(struct weston_compositor *compositor) > } > > static void > -switch_vt_binding(struct weston_seat *seat, uint32_t time, uint32_t key, > void *data) > +switch_vt_binding(struct weston_keyboard *keyboard, uint32_t time, > + uint32_t key, void *data) > { > struct weston_compositor *compositor = data; > > diff --git a/src/compositor-rpi.c b/src/compositor-rpi.c > index 1c0a783..a7d763b 100644 > --- a/src/compositor-rpi.c > +++ b/src/compositor-rpi.c > @@ -442,7 +442,8 @@ rpi_restore(struct weston_compositor *compositor) > } > > static void > -switch_vt_binding(struct weston_seat *seat, uint32_t time, uint32_t key, > void *data) > +switch_vt_binding(struct weston_keyboard *keyboard, uint32_t time, > + uint32_t key, void *data) > { > struct weston_compositor *compositor = data; > > diff --git a/src/compositor-wayland.c b/src/compositor-wayland.c > index 935701a..15f58b7 100644 > --- a/src/compositor-wayland.c > +++ b/src/compositor-wayland.c > @@ -1920,14 +1920,14 @@ create_cursor(struct wayland_compositor *c, struct > weston_config *config) > } > > static void > -fullscreen_binding(struct weston_seat *seat_base, uint32_t time, uint32_t > key, > - void *data) > +fullscreen_binding(struct weston_keyboard *keyboard, uint32_t time, > + uint32_t key, void *data) > { > struct wayland_compositor *c = data; > struct wayland_input *input = NULL; > > wl_list_for_each(input, &c->input_list, link) > - if (&input->base == seat_base) > + if (&input->base == keyboard->seat) > break; > > if (!input || !input->output) > diff --git a/src/compositor.c b/src/compositor.c > index 8f02b4d..041c03f 100644 > --- a/src/compositor.c > +++ b/src/compositor.c > @@ -4485,7 +4485,7 @@ weston_environment_get_fd(const char *env) > } > > static void > -timeline_key_binding_handler(struct weston_seat *seat, uint32_t time, > +timeline_key_binding_handler(struct weston_keyboard *keyboard, uint32_t time, > uint32_t key, void *data) > { > struct weston_compositor *compositor = data; > diff --git a/src/compositor.h b/src/compositor.h > index 867f8c4..4d9e1a0 100644 > --- a/src/compositor.h > +++ b/src/compositor.h > @@ -1150,7 +1150,7 @@ weston_compositor_pick_view(struct weston_compositor > *compositor, > > > struct weston_binding; > -typedef void (*weston_key_binding_handler_t)(struct weston_seat *seat, > +typedef void (*weston_key_binding_handler_t)(struct weston_keyboard > *keyboard, > uint32_t time, uint32_t key, > void *data); > struct weston_binding * > @@ -1160,7 +1160,7 @@ weston_compositor_add_key_binding(struct > weston_compositor *compositor, > weston_key_binding_handler_t binding, > void *data); > > -typedef void (*weston_modifier_binding_handler_t)(struct weston_seat *seat, > +typedef void (*weston_modifier_binding_handler_t)(struct weston_keyboard > *keyboard, > enum weston_keyboard_modifier > modifier, > void *data); > struct weston_binding * > @@ -1169,7 +1169,7 @@ weston_compositor_add_modifier_binding(struct > weston_compositor *compositor, > weston_modifier_binding_handler_t > binding, > void *data); > > -typedef void (*weston_button_binding_handler_t)(struct weston_seat *seat, > +typedef void (*weston_button_binding_handler_t)(struct weston_pointer > *pointer, > uint32_t time, uint32_t button, > void *data); > struct weston_binding * > @@ -1179,7 +1179,7 @@ weston_compositor_add_button_binding(struct > weston_compositor *compositor, > weston_button_binding_handler_t binding, > void *data); > > -typedef void (*weston_touch_binding_handler_t)(struct weston_seat *seat, > +typedef void (*weston_touch_binding_handler_t)(struct weston_touch *touch, > uint32_t time, > void *data); > struct weston_binding * > @@ -1188,7 +1188,7 @@ weston_compositor_add_touch_binding(struct > weston_compositor *compositor, > weston_touch_binding_handler_t binding, > void *data); > > -typedef void (*weston_axis_binding_handler_t)(struct weston_seat *seat, > +typedef void (*weston_axis_binding_handler_t)(struct weston_pointer *pointer, > uint32_t time, uint32_t axis, > wl_fixed_t value, void *data); > struct weston_binding * > diff --git a/src/gl-renderer.c b/src/gl-renderer.c > index d18e124..d28f0fc 100644 > --- a/src/gl-renderer.c > +++ b/src/gl-renderer.c > @@ -2425,8 +2425,8 @@ compile_shaders(struct weston_compositor *ec) > } > > static void > -fragment_debug_binding(struct weston_seat *seat, uint32_t time, uint32_t key, > - void *data) > +fragment_debug_binding(struct weston_keyboard *keyboard, uint32_t time, > + uint32_t key, void *data) > { > struct weston_compositor *ec = data; > struct gl_renderer *gr = get_renderer(ec); > @@ -2451,8 +2451,8 @@ fragment_debug_binding(struct weston_seat *seat, > uint32_t time, uint32_t key, > } > > static void > -fan_debug_repaint_binding(struct weston_seat *seat, uint32_t time, uint32_t > key, > - void *data) > +fan_debug_repaint_binding(struct weston_keyboard *keyboard, uint32_t time, > + uint32_t key, void *data) > { > struct weston_compositor *compositor = data; > struct gl_renderer *gr = get_renderer(compositor); > diff --git a/src/pixman-renderer.c b/src/pixman-renderer.c > index c650d55..74a9416 100644 > --- a/src/pixman-renderer.c > +++ b/src/pixman-renderer.c > @@ -800,7 +800,7 @@ pixman_renderer_surface_copy_content(struct > weston_surface *surface, > } > > static void > -debug_binding(struct weston_seat *seat, uint32_t time, uint32_t key, > +debug_binding(struct weston_keyboard *keyboard, uint32_t time, uint32_t key, > void *data) > { > struct weston_compositor *ec = data; > diff --git a/src/screenshooter.c b/src/screenshooter.c > index fc648a1..fd9571f 100644 > --- a/src/screenshooter.c > +++ b/src/screenshooter.c > @@ -282,8 +282,8 @@ screenshooter_sigchld(struct weston_process *process, int > status) > } > > static void > -screenshooter_binding(struct weston_seat *seat, uint32_t time, uint32_t key, > - void *data) > +screenshooter_binding(struct weston_keyboard *keyboard, uint32_t time, > + uint32_t key, void *data) > { > struct screenshooter *shooter = data; > char *screenshooter_exe; > @@ -556,9 +556,10 @@ weston_recorder_destroy(struct weston_recorder *recorder) > } > > static void > -recorder_binding(struct weston_seat *seat, uint32_t time, uint32_t key, void > *data) > +recorder_binding(struct weston_keyboard *keyboard, uint32_t time, > + uint32_t key, void *data) > { > - struct weston_compositor *ec = seat->compositor; > + struct weston_compositor *ec = keyboard->seat->compositor; > struct weston_output *output; > struct wl_listener *listener = NULL; > struct weston_recorder *recorder; > @@ -582,9 +583,8 @@ recorder_binding(struct weston_seat *seat, uint32_t time, > uint32_t key, void *da > recorder->destroying = 1; > weston_output_schedule_repaint(recorder->output); > } else { > - if (seat->keyboard && seat->keyboard->focus && > - seat->keyboard->focus->output) > - output = seat->keyboard->focus->output; > + if (keyboard->focus && keyboard->focus->output) > + output = keyboard->focus->output; > else > output = container_of(ec->output_list.next, > struct weston_output, link); > diff --git a/tests/surface-screenshot.c b/tests/surface-screenshot.c > index 57ec925..8badcf2 100644 > --- a/tests/surface-screenshot.c > +++ b/tests/surface-screenshot.c > @@ -128,13 +128,14 @@ unpremultiply_and_swap_a8b8g8r8_to_PAMrgba(void > *pixels, size_t size) > } > > static void > -trigger_binding(struct weston_seat *seat, uint32_t time, uint32_t key, > +trigger_binding(struct weston_keyboard *keyboard, uint32_t time, uint32_t > key, > void *data) > { > const char *prefix = "surfaceshot-"; > const char *suffix = ".pam"; > char fname[1024]; > struct weston_surface *surface; > + struct weston_seat *seat = keyboard->seat; > int width, height; > char desc[512]; > void *pixels; > -- > 2.1.4 > > _______________________________________________ > wayland-devel mailing list > wayland-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/wayland-devel _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel