[PATCH 1/2 v4] shell: enable moving and resizing of a surface when clicking on a subsurface
Giulio Camuffo
giuliocamuffo at gmail.com
Tue Feb 26 07:25:21 PST 2013
Great, thanks. :)
Giulio
2013/2/26 Pekka Paalanen <ppaalanen at gmail.com>:
> On Tue, 26 Feb 2013 15:59:57 +0100
> Giulio Camuffo <giuliocamuffo at gmail.com> wrote:
>
>> ---
>> src/shell.c | 8 ++++++--
>> 1 file changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/shell.c b/src/shell.c
>> index c8f20ec..da41efa 100644
>> --- a/src/shell.c
>> +++ b/src/shell.c
>> @@ -1092,10 +1092,12 @@ shell_surface_move(struct wl_client *client, struct wl_resource *resource,
>> {
>> struct weston_seat *ws = seat_resource->data;
>> struct shell_surface *shsurf = resource->data;
>> + struct weston_surface *surface = weston_surface_get_parent(
>> + container_of(ws->seat.pointer->focus, struct weston_surface, surface));
>>
>> if (ws->seat.pointer->button_count == 0 ||
>> ws->seat.pointer->grab_serial != serial ||
>> - ws->seat.pointer->focus != &shsurf->surface->surface)
>> + surface != shsurf->surface)
>> return;
>>
>> if (surface_move(shsurf, ws) < 0)
>> @@ -1215,13 +1217,15 @@ shell_surface_resize(struct wl_client *client, struct wl_resource *resource,
>> {
>> struct weston_seat *ws = seat_resource->data;
>> struct shell_surface *shsurf = resource->data;
>> + struct weston_surface *surface = weston_surface_get_parent(
>> + container_of(ws->seat.pointer->focus, struct weston_surface, surface));
>>
>> if (shsurf->type == SHELL_SURFACE_FULLSCREEN)
>> return;
>>
>> if (ws->seat.pointer->button_count == 0 ||
>> ws->seat.pointer->grab_serial != serial ||
>> - ws->seat.pointer->focus != &shsurf->surface->surface)
>> + surface != shsurf->surface)
>> return;
>>
>> if (surface_resize(shsurf, ws, edges) < 0)
>
> I have this patch now in my subsurface-wip branch. :-)
>
> Thanks,
> pq
More information about the wayland-devel
mailing list