On Mon, Jul 22, 2013 at 05:31:38PM +0100, Rob Bradford wrote:
> From: Rob Bradford <r...@linux.intel.com>
> 
> This removes the use of wl_client_get_display() where the client is
> derived from the focussed resource. This starts the removal of the
> assumption of a single resource on a client that would be notified about
> events on the focussed surface.

Makes sense, applied.

Kristian

> ---
>  src/bindings.c    |  5 +----
>  src/data-device.c |  3 +--
>  src/input.c       | 20 ++++++--------------
>  src/shell.c       |  9 +++------
>  4 files changed, 11 insertions(+), 26 deletions(-)
> 
> diff --git a/src/bindings.c b/src/bindings.c
> index 3194414..a871c26 100644
> --- a/src/bindings.c
> +++ b/src/bindings.c
> @@ -155,11 +155,10 @@ binding_key(struct weston_keyboard_grab *grab,
>       struct binding_keyboard_grab *b =
>               container_of(grab, struct binding_keyboard_grab, grab);
>       struct wl_resource *resource;
> -     struct wl_client *client;
> -     struct wl_display *display;
>       enum wl_keyboard_key_state state = state_w;
>       uint32_t serial;
>       struct weston_keyboard *keyboard = grab->keyboard;
> +     struct wl_display *display = keyboard->seat->compositor->wl_display;
>  
>       resource = grab->keyboard->focus_resource;
>       if (key == b->key) {
> @@ -170,8 +169,6 @@ binding_key(struct weston_keyboard_grab *grab,
>                       free(b);
>               }
>       } else if (resource) {
> -             client = wl_resource_get_client(resource);
> -             display = wl_client_get_display(client);
>               serial = wl_display_next_serial(display);
>               wl_keyboard_send_key(resource, serial, time, key, state);
>       }
> diff --git a/src/data-device.c b/src/data-device.c
> index c89379c..f6f90b5 100644
> --- a/src/data-device.c
> +++ b/src/data-device.c
> @@ -204,7 +204,7 @@ weston_drag_set_focus(struct weston_drag *drag, struct 
> weston_surface *surface,
>  {
>       struct weston_pointer *pointer = drag->grab.pointer;
>       struct wl_resource *resource, *offer = NULL;
> -     struct wl_display *display;
> +     struct wl_display *display = pointer->seat->compositor->wl_display;
>       uint32_t serial;
>  
>       if (drag->focus_resource) {
> @@ -226,7 +226,6 @@ weston_drag_set_focus(struct weston_drag *drag, struct 
> weston_surface *surface,
>       if (!resource)
>               return;
>  
> -     display = wl_client_get_display(wl_resource_get_client(resource));
>       serial = wl_display_next_serial(display);
>  
>       if (drag->data_source)
> diff --git a/src/input.c b/src/input.c
> index 1887e7f..8757097 100644
> --- a/src/input.c
> +++ b/src/input.c
> @@ -137,12 +137,11 @@ default_grab_button(struct weston_pointer_grab *grab,
>       struct wl_resource *resource;
>       uint32_t serial;
>       enum wl_pointer_button_state state = state_w;
> -     struct wl_display *display;
> +     struct wl_display *display = compositor->wl_display;
>       wl_fixed_t sx, sy;
>  
>       resource = pointer->focus_resource;
>       if (resource) {
> -             display = 
> wl_client_get_display(wl_resource_get_client(resource));
>               serial = wl_display_next_serial(display);
>               wl_pointer_send_button(resource, serial, time, button, state_w);
>       }
> @@ -170,11 +169,10 @@ default_grab_touch_down(struct weston_touch_grab *grab, 
> uint32_t time,
>                       int touch_id, wl_fixed_t sx, wl_fixed_t sy)
>  {
>       struct weston_touch *touch = grab->touch;
> -     struct wl_display *display;
> +     struct wl_display *display = touch->seat->compositor->wl_display;
>       uint32_t serial;
>  
>       if (touch->focus_resource && touch->focus) {
> -             display = 
> wl_client_get_display(wl_resource_get_client(touch->focus_resource));
>               serial = wl_display_next_serial(display);
>               wl_touch_send_down(touch->focus_resource, serial, time,
>                                  touch->focus->resource,
> @@ -187,11 +185,10 @@ default_grab_touch_up(struct weston_touch_grab *grab,
>                     uint32_t time, int touch_id)
>  {
>       struct weston_touch *touch = grab->touch;
> -     struct wl_display *display;
> +     struct wl_display *display = touch->seat->compositor->wl_display;
>       uint32_t serial;
>  
>       if (touch->focus_resource) {
> -             display = 
> wl_client_get_display(wl_resource_get_client(touch->focus_resource));
>               serial = wl_display_next_serial(display);
>               wl_touch_send_up(touch->focus_resource, serial, time, touch_id);
>       }
> @@ -221,12 +218,11 @@ default_grab_key(struct weston_keyboard_grab *grab,
>  {
>       struct weston_keyboard *keyboard = grab->keyboard;
>       struct wl_resource *resource;
> -     struct wl_display *display;
> +     struct wl_display *display = keyboard->seat->compositor->wl_display;
>       uint32_t serial;
>  
>       resource = keyboard->focus_resource;
>       if (resource) {
> -             display = 
> wl_client_get_display(wl_resource_get_client(resource));
>               serial = wl_display_next_serial(display);
>               wl_keyboard_send_key(resource, serial, time, key, state);
>       }
> @@ -426,12 +422,11 @@ weston_pointer_set_focus(struct weston_pointer *pointer,
>  {
>       struct weston_keyboard *kbd = pointer->seat->keyboard;
>       struct wl_resource *resource, *kr;
> -     struct wl_display *display;
> +     struct wl_display *display = pointer->seat->compositor->wl_display;
>       uint32_t serial;
>  
>       resource = pointer->focus_resource;
>       if (resource && pointer->focus != surface) {
> -             display = 
> wl_client_get_display(wl_resource_get_client(resource));
>               serial = wl_display_next_serial(display);
>               wl_pointer_send_leave(resource, serial,
>                                     pointer->focus->resource);
> @@ -443,7 +438,6 @@ weston_pointer_set_focus(struct weston_pointer *pointer,
>       if (resource &&
>           (pointer->focus != surface ||
>            pointer->focus_resource != resource)) {
> -             display = 
> wl_client_get_display(wl_resource_get_client(resource));
>               serial = wl_display_next_serial(display);
>               if (kbd) {
>                       kr = find_resource_for_surface(&kbd->resource_list,
> @@ -474,12 +468,11 @@ weston_keyboard_set_focus(struct weston_keyboard 
> *keyboard,
>                         struct weston_surface *surface)
>  {
>       struct wl_resource *resource;
> -     struct wl_display *display;
> +     struct wl_display *display = keyboard->seat->compositor->wl_display;
>       uint32_t serial;
>  
>       if (keyboard->focus_resource && keyboard->focus != surface) {
>               resource = keyboard->focus_resource;
> -             display = 
> wl_client_get_display(wl_resource_get_client(resource));
>               serial = wl_display_next_serial(display);
>               wl_keyboard_send_leave(resource, serial,
>                                      keyboard->focus->resource);
> @@ -491,7 +484,6 @@ weston_keyboard_set_focus(struct weston_keyboard 
> *keyboard,
>       if (resource &&
>           (keyboard->focus != surface ||
>            keyboard->focus_resource != resource)) {
> -             display = 
> wl_client_get_display(wl_resource_get_client(resource));
>               serial = wl_display_next_serial(display);
>               wl_keyboard_send_modifiers(resource, serial,
>                                          keyboard->modifiers.mods_depressed,
> diff --git a/src/shell.c b/src/shell.c
> index 7e98831..e4d5a5e 100644
> --- a/src/shell.c
> +++ b/src/shell.c
> @@ -2060,13 +2060,12 @@ popup_grab_button(struct weston_pointer_grab *grab,
>       struct wl_resource *resource;
>       struct shell_seat *shseat =
>           container_of(grab, struct shell_seat, popup_grab.grab);
> -     struct wl_display *display;
> +     struct wl_display *display = shseat->seat->compositor->wl_display;
>       enum wl_pointer_button_state state = state_w;
>       uint32_t serial;
>  
>       resource = grab->pointer->focus_resource;
>       if (resource) {
> -             display = 
> wl_client_get_display(wl_resource_get_client(resource));
>               serial = wl_display_get_serial(display);
>               wl_pointer_send_button(resource, serial, time, button, state);
>       } else if (state == WL_POINTER_BUTTON_STATE_RELEASED &&
> @@ -4129,8 +4128,9 @@ debug_binding_key(struct weston_keyboard_grab *grab, 
> uint32_t time,
>                 uint32_t key, uint32_t state)
>  {
>       struct debug_binding_grab *db = (struct debug_binding_grab *) grab;
> +     struct weston_compositor *ec = db->seat->compositor;
> +     struct wl_display *display = ec->wl_display;
>       struct wl_resource *resource;
> -     struct wl_display *display;
>       uint32_t serial;
>       int send = 0, terminate = 0;
>       int check_binding = 1;
> @@ -4165,8 +4165,6 @@ debug_binding_key(struct weston_keyboard_grab *grab, 
> uint32_t time,
>       }
>  
>       if (check_binding) {
> -             struct weston_compositor *ec = db->seat->compositor;
> -
>               if (weston_compositor_run_debug_binding(ec, db->seat, time,
>                                                       key, state)) {
>                       /* We ran a binding so swallow the press and keep the
> @@ -4186,7 +4184,6 @@ debug_binding_key(struct weston_keyboard_grab *grab, 
> uint32_t time,
>               resource = grab->keyboard->focus_resource;
>  
>               if (resource) {
> -                     display = 
> wl_client_get_display(wl_resource_get_client(resource));
>                       serial = wl_display_next_serial(display);
>                       wl_keyboard_send_key(resource, serial, time, key, 
> state);
>               }
> -- 
> 1.8.3.1
> 
> _______________________________________________
> 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