libweston: make wl_output point to weston_head
authorPekka Paalanen <pekka.paalanen@collabora.co.uk>
Mon, 27 Mar 2017 13:31:25 +0000 (16:31 +0300)
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>
Tue, 10 Apr 2018 11:33:59 +0000 (14:33 +0300)
The user data of a wl_resource representing a wl_output protocol object
used to be a pointer to weston_output. Now that weston_output is being
split, wl_output more accurately refers to weston_head which is a single
monitor.

Change the wl_output user data to point to weston_head.
weston_output_from_resource() is replaced with
weston_head_from_resource().

This change is not strictly necessary, but architecturally it is the
right thing to do. In the future there might appear the need to refer to
a specific head of a cloned pair, for instance.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
v5 Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Ian Ray <ian.ray@ge.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Acked-by: Derek Foreman <derekf@osg.samsung.com>
compositor/weston-screenshooter.c
desktop-shell/input-panel.c
desktop-shell/shell.c
fullscreen-shell/fullscreen-shell.c
ivi-shell/input-panel-ivi.c
libweston-desktop/wl-shell.c
libweston-desktop/xdg-shell-v6.c
libweston/compositor.c
libweston/compositor.h
tests/weston-test.c

index f0bc0e1..70afed4 100644 (file)
@@ -66,7 +66,7 @@ screenshooter_shoot(struct wl_client *client,
                    struct wl_resource *buffer_resource)
 {
        struct weston_output *output =
-               weston_output_from_resource(output_resource);
+               weston_head_from_resource(output_resource)->output;
        struct weston_buffer *buffer =
                weston_buffer_from_resource(buffer_resource);
 
index e6b1541..8292f20 100644 (file)
@@ -270,11 +270,13 @@ input_panel_surface_set_toplevel(struct wl_client *client,
        struct input_panel_surface *input_panel_surface =
                wl_resource_get_user_data(resource);
        struct desktop_shell *shell = input_panel_surface->shell;
+       struct weston_head *head;
 
        wl_list_insert(&shell->input_panel.surfaces,
                       &input_panel_surface->link);
 
-       input_panel_surface->output = weston_output_from_resource(output_resource);
+       head = weston_head_from_resource(output_resource);
+       input_panel_surface->output = head->output;
        input_panel_surface->panel = 0;
 }
 
index ceb45c7..b846e30 100644 (file)
@@ -2969,7 +2969,7 @@ desktop_shell_set_background(struct wl_client *client,
        surface->committed = background_committed;
        surface->committed_private = shell;
        weston_surface_set_label_func(surface, background_get_label);
-       surface->output = weston_output_from_resource(output_resource);
+       surface->output = weston_head_from_resource(output_resource)->output;
        view->output = surface->output;
 
        sh_output = find_shell_output_from_weston_output(shell, surface->output);
@@ -3066,7 +3066,7 @@ desktop_shell_set_panel(struct wl_client *client,
        surface->committed = panel_committed;
        surface->committed_private = shell;
        weston_surface_set_label_func(surface, panel_get_label);
-       surface->output = weston_output_from_resource(output_resource);
+       surface->output = weston_head_from_resource(output_resource)->output;
        view->output = surface->output;
 
        sh_output = find_shell_output_from_weston_output(shell, surface->output);
index 6f4565a..8988479 100644 (file)
@@ -769,7 +769,7 @@ fullscreen_shell_present_surface(struct wl_client *client,
        }
 
        if (output_res) {
-               output = weston_output_from_resource(output_res);
+               output = weston_head_from_resource(output_res)->output;
                fsout = fs_output_for_output(output);
                fs_output_set_surface(fsout, surface, method, 0, 0);
        } else {
@@ -813,7 +813,7 @@ fullscreen_shell_present_surface_for_mode(struct wl_client *client,
        struct weston_seat *seat;
        struct fs_output *fsout;
 
-       output = weston_output_from_resource(output_res);
+       output = weston_head_from_resource(output_res)->output;
        fsout = fs_output_for_output(output);
 
        if (surface_res == NULL) {
index 0008a52..219494d 100644 (file)
@@ -271,11 +271,13 @@ input_panel_surface_set_toplevel(struct wl_client *client,
        struct input_panel_surface *input_panel_surface =
                wl_resource_get_user_data(resource);
        struct ivi_shell *shell = input_panel_surface->shell;
+       struct weston_head *head;
 
        wl_list_insert(&shell->input_panel.surfaces,
                       &input_panel_surface->link);
 
-       input_panel_surface->output = weston_output_from_resource(output_resource);
+       head = weston_head_from_resource(output_resource);
+       input_panel_surface->output = head->output;
        input_panel_surface->panel = 0;
 }
 
index 8467dfb..37720ac 100644 (file)
@@ -308,7 +308,7 @@ weston_desktop_wl_shell_surface_protocol_set_fullscreen(struct wl_client *wl_cli
        struct weston_output *output = NULL;
 
        if (output_resource != NULL)
-               output = weston_output_from_resource(output_resource);
+               output = weston_head_from_resource(output_resource)->output;
 
        weston_desktop_wl_shell_change_state(surface, FULLSCREEN, NULL, 0, 0);
        weston_desktop_api_fullscreen_requested(surface->desktop, dsurface,
index 8fa01a3..ccdd193 100644 (file)
@@ -515,7 +515,7 @@ weston_desktop_xdg_toplevel_protocol_set_fullscreen(struct wl_client *wl_client,
        struct weston_output *output = NULL;
 
        if (output_resource != NULL)
-               output = weston_output_from_resource(output_resource);
+               output = weston_head_from_resource(output_resource)->output;
 
        weston_desktop_xdg_toplevel_ensure_added(toplevel);
        weston_desktop_api_fullscreen_requested(toplevel->base.desktop, dsurface,
index 6f86932..81fb5af 100644 (file)
@@ -4330,7 +4330,7 @@ bind_output(struct wl_client *client,
        }
 
        wl_list_insert(&head->resource_list, wl_resource_get_link(resource));
-       wl_resource_set_implementation(resource, &output_interface, output,
+       wl_resource_set_implementation(resource, &output_interface, head,
                                       unbind_resource);
 
        assert(output);
@@ -4364,8 +4364,8 @@ bind_output(struct wl_client *client,
  * \return The backing object (user data) of a wl_resource representing a
  * wl_output protocol object.
  */
-WL_EXPORT struct weston_output *
-weston_output_from_resource(struct wl_resource *resource)
+WL_EXPORT struct weston_head *
+weston_head_from_resource(struct wl_resource *resource)
 {
        assert(wl_resource_instance_of(resource, &wl_output_interface,
                                       &output_interface));
index 129e754..194aa74 100644 (file)
@@ -1995,8 +1995,8 @@ weston_output_disable(struct weston_output *output);
 void
 weston_pending_output_coldplug(struct weston_compositor *compositor);
 
-struct weston_output *
-weston_output_from_resource(struct wl_resource *resource);
+struct weston_head *
+weston_head_from_resource(struct wl_resource *resource);
 
 #ifdef  __cplusplus
 }
index 9a2fd28..73409ca 100644 (file)
@@ -530,7 +530,7 @@ capture_screenshot(struct wl_client *client,
                   struct wl_resource *buffer_resource)
 {
        struct weston_output *output =
-               weston_output_from_resource(output_resource);
+               weston_head_from_resource(output_resource)->output;
        struct weston_buffer *buffer =
                weston_buffer_from_resource(buffer_resource);