X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=recipes-graphics%2Fwayland%2Fwayland-ivi-extension%2F0003-ivi-controller-add-resize-setting-suit-to-surface-si.patch;fp=recipes-graphics%2Fwayland%2Fwayland-ivi-extension%2F0003-ivi-controller-add-resize-setting-suit-to-surface-si.patch;h=d2d0272569fc9f6a9d95c49376c1517927b131b5;hb=b6852864508358930586e083e72cd2912af68674;hp=0000000000000000000000000000000000000000;hpb=fab778caff2041794814df54b51893965381aa66;p=AGL%2Fmeta-agl-demo.git diff --git a/recipes-graphics/wayland/wayland-ivi-extension/0003-ivi-controller-add-resize-setting-suit-to-surface-si.patch b/recipes-graphics/wayland/wayland-ivi-extension/0003-ivi-controller-add-resize-setting-suit-to-surface-si.patch new file mode 100644 index 000000000..d2d027256 --- /dev/null +++ b/recipes-graphics/wayland/wayland-ivi-extension/0003-ivi-controller-add-resize-setting-suit-to-surface-si.patch @@ -0,0 +1,62 @@ +From 525b5bf65303d661f44c01b11bafd5ba90976850 Mon Sep 17 00:00:00 2001 +From: Wataru Mizuno +Date: Wed, 6 Dec 2017 19:35:51 +0900 +Subject: [PATCH] ivi-controller: add resize setting suit to surface size + +The ivi-controller resizes surface size like desktop usecase. + +When window manager swicths the half size window to full size, +resize was not working correctly. +This patch fixs this issue by changing surface source region at +the same timing of destination region is changed. + +This patch is not necessary later version of wayland-ivi-extension +2.0 since this resize function has already been implemented by +appropriate manner. + +Signed-off-by: Wataru Mizuno +--- + weston-ivi-shell/src/ivi-controller.c | 17 ++++++++++++++--- + 1 file changed, 14 insertions(+), 3 deletions(-) + +diff --git a/weston-ivi-shell/src/ivi-controller.c b/weston-ivi-shell/src/ivi-controller.c +index 312a978..9450cf2 100644 +--- a/weston-ivi-shell/src/ivi-controller.c ++++ b/weston-ivi-shell/src/ivi-controller.c +@@ -1334,7 +1334,7 @@ surface_event_configure(struct wl_listener *listener, void *data) + struct ivisurface *ivisurf = NULL; + struct ivi_layout_surface *layout_surface = + (struct ivi_layout_surface *) data; +- const struct ivi_layout_surface_properties *prop; ++ struct weston_surface *w_surface; + + ivisurf = get_surface(&shell->list_surface, layout_surface); + if (ivisurf == NULL) { +@@ -1342,11 +1342,22 @@ surface_event_configure(struct wl_listener *listener, void *data) + return; + } + +- prop = lyt->get_properties_of_surface(layout_surface); ++ w_surface = lyt->surface_get_weston_surface(layout_surface); ++ lyt->surface_set_destination_rectangle(layout_surface, ++ ivisurf->prop->dest_x, ++ ivisurf->prop->dest_y, ++ w_surface->width, ++ w_surface->height); ++ lyt->surface_set_source_rectangle(layout_surface, ++ 0, ++ 0, ++ w_surface->width, ++ w_surface->height); ++ lyt->commit_changes(); + + wl_resource_for_each(resource, &ivisurf->resource_list) { + send_surface_event(resource, ivisurf, +- prop, IVI_NOTIFICATION_CONFIGURE); ++ ivisurf->prop, IVI_NOTIFICATION_CONFIGURE); + } + } + +-- +2.7.4 +