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

Reply via email to