On Tue, Nov 12, 2013 at 08:19:58PM -0500, Jasper St. Pierre wrote:
> It seems that this was only used by the popup menu infrastructure,
> which can handle this all on its own. Implementing e.g. transients
> in the future can be done with a simple xdg_shell_set_transient_for.

Yeah, sounds good.

Kristian

>  clients/image.c    |  2 +-
>  clients/terminal.c |  2 +-
>  clients/view.c     |  2 +-
>  clients/window.c   | 28 ++++++++++++----------------
>  clients/window.h   |  2 +-
>  5 files changed, 16 insertions(+), 20 deletions(-)
> 
> diff --git a/clients/image.c b/clients/image.c
> index c73d0c0..3a52c22 100644
> --- a/clients/image.c
> +++ b/clients/image.c
> @@ -336,7 +336,7 @@ fullscreen_handler(struct window *window, void *data)
>  }
>  
>  static void
> -close_handler(struct window *window, void *data)
> +close_handler(void *data)
>  {
>       struct image *image = data;
>  
> diff --git a/clients/terminal.c b/clients/terminal.c
> index a321a1e..d09f94b 100644
> --- a/clients/terminal.c
> +++ b/clients/terminal.c
> @@ -2212,7 +2212,7 @@ fullscreen_handler(struct window *window, void *data)
>  }
>  
>  static void
> -close_handler(struct window *window, void *data)
> +close_handler(void *data)
>  {
>       struct terminal *terminal = data;
>  
> diff --git a/clients/view.c b/clients/view.c
> index cedef08..4ac9ca5 100644
> --- a/clients/view.c
> +++ b/clients/view.c
> @@ -168,7 +168,7 @@ fullscreen_handler(struct window *window, void *data)
>  }
>  
>  static void
> -close_handler(struct window *window, void *data)
> +close_handler(void *data)
>  {
>       struct view *view = data;
>  
> diff --git a/clients/window.c b/clients/window.c
> index 0afd46b..46372d2 100644
> --- a/clients/window.c
> +++ b/clients/window.c
> @@ -221,7 +221,6 @@ struct surface {
>  
>  struct window {
>       struct display *display;
> -     struct window *parent;
>       struct wl_list window_output_list;
>       char *title;
>       struct rectangle saved_allocation;
> @@ -358,6 +357,7 @@ struct window_frame {
>  
>  struct menu {
>       struct window *window;
> +     struct window *parent;
>       struct widget *widget;
>       struct input *input;
>       struct frame *frame;
> @@ -2274,8 +2274,7 @@ frame_menu_func(struct window *window,
>       switch (index) {
>       case 0: /* close */
>               if (window->close_handler)
> -                     window->close_handler(window->parent,
> -                                           window->user_data);
> +                     window->close_handler(window->user_data);
>               else
>                       display_exit(window->display);
>               break;
> @@ -2392,8 +2391,7 @@ frame_handle_status(struct window_frame *frame, struct 
> input *input,
>  
>       if (status & FRAME_STATUS_CLOSE) {
>               if (window->close_handler)
> -                     window->close_handler(window->parent,
> -                                           window->user_data);
> +                     window->close_handler(window->user_data);
>               else
>                       display_exit(window->display);
>               return;
> @@ -2894,8 +2892,7 @@ keyboard_handle_key(void *data, struct wl_keyboard 
> *keyboard,
>                  input->modifiers == MOD_ALT_MASK &&
>                  state == WL_KEYBOARD_KEY_STATE_PRESSED) {
>               if (window->close_handler)
> -                     window->close_handler(window->parent,
> -                                           window->user_data);
> +                     window->close_handler(window->user_data);
>               else
>                       display_exit(window->display);
>       } else if (window->key_handler) {
> @@ -4230,8 +4227,7 @@ surface_create(struct window *window)
>  }
>  
>  static struct window *
> -window_create_internal(struct display *display,
> -                    struct window *parent, int type)
> +window_create_internal(struct display *display, int type)
>  {
>       struct window *window;
>       struct surface *surface;
> @@ -4239,7 +4235,6 @@ window_create_internal(struct display *display,
>       window = xzalloc(sizeof *window);
>       wl_list_init(&window->subsurface_list);
>       window->display = display;
> -     window->parent = parent;
>  
>       surface = surface_create(window);
>       window->main_surface = surface;
> @@ -4283,13 +4278,13 @@ window_create_internal(struct display *display,
>  struct window *
>  window_create(struct display *display)
>  {
> -     return window_create_internal(display, NULL, TYPE_NONE);
> +     return window_create_internal(display, TYPE_NONE);
>  }
>  
>  struct window *
>  window_create_custom(struct display *display)
>  {
> -     return window_create_internal(display, NULL, TYPE_CUSTOM);
> +     return window_create_internal(display, TYPE_CUSTOM);
>  }
>  
>  struct window *
> @@ -4374,8 +4369,8 @@ menu_button_handler(struct widget *widget,
>           (menu->release_count > 0 || time - menu->time > 500)) {
>               /* Either relase after press-drag-release or
>                * click-motion-click. */
> -             menu->func(menu->window->parent, input,
> -                        menu->current, menu->window->parent->user_data);
> +             menu->func(menu->parent, input,
> +                        menu->current, menu->parent->user_data);
>               input_ungrab(input);
>               menu_destroy(menu);
>       } else if (state == WL_POINTER_BUTTON_STATE_RELEASED) {
> @@ -4437,13 +4432,14 @@ window_show_menu(struct display *display,
>       if (!menu)
>               return;
>  
> -     window = window_create_internal(parent->display, parent, TYPE_MENU);
> +     window = window_create_internal(parent->display, TYPE_MENU);
>       if (!window) {
>               free(menu);
>               return;
>       }
>  
>       menu->window = window;
> +     menu->parent = parent;
>       menu->widget = window_add_widget(menu->window, menu);
>       window_set_buffer_scale (menu->window, window_get_buffer_scale 
> (parent));
>       window_set_buffer_transform (menu->window, window_get_buffer_transform 
> (parent));
> @@ -4477,7 +4473,7 @@ window_show_menu(struct display *display,
>       frame_interior(menu->frame, &ix, &iy, NULL, NULL);
>       wl_shell_surface_set_popup(window->shell_surface, input->seat,
>                                  display_get_serial(window->display),
> -                                window->parent->main_surface->surface,
> +                                parent->main_surface->surface,
>                                  window->x - ix, window->y - iy, 0);
>  }
>  
> diff --git a/clients/window.h b/clients/window.h
> index 59e483e..d5e40ed 100644
> --- a/clients/window.h
> +++ b/clients/window.h
> @@ -214,7 +214,7 @@ typedef void (*window_drop_handler_t)(struct window 
> *window,
>                                     struct input *input,
>                                     int32_t x, int32_t y, void *data);
>  
> -typedef void (*window_close_handler_t)(struct window *window, void *data);
> +typedef void (*window_close_handler_t)(void *data);
>  typedef void (*window_fullscreen_handler_t)(struct window *window, void 
> *data);
>  
>  typedef void (*window_output_handler_t)(struct window *window, struct output 
> *output,
> -- 
> 1.8.4.2
> 
> _______________________________________________
> 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