<div dir="ltr">2013/8/30 Kristian Høgsberg <span dir="ltr"><<a href="mailto:hoegsberg@gmail.com" target="_blank">hoegsberg@gmail.com</a>></span><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Sun, Aug 25, 2013 at 11:18:20AM +0200, Giulio Camuffo wrote:<br>
> The signal will be emitted after the pointer is moved. A shell plugin<br>
> can listen to the signal and activate certain effects when the pointer<br>
> touches the screen corners, for instance.<br>
<br>
</div>I wonder how we would implement something like the X barrier feature<br>
in weston.  GNOME Shell uses hot corners too and in case you have a<br>
setup like this:<br>
<br>
   ┌─────────────────────────┬─────────────────┐<br>
   │                         │ ↖ Panel         │<br>
   │                         ├─────────────────┤<br>
   │                         │                 │<br>
   │                         │                 │<br>
   │                         │                 │<br>
   │                         │                 │<br>
   │                         ├─────────────────┘<br>
   │                         │<br>
   └─────────────────────────┘<br>
<br>
with the hot corner in the panel marked by the arrow.  When you throw<br>
the cursor into the hot corner you don't want it to continue onto the<br>
left-side output but if you move under the panel you do.  I think the<br>
best way may be to let a shell provide a custom default_grab in that<br>
case.<br>
<br>
I think the motion signal may be useful on its own still.  What do you<br>
think?<br></blockquote><div><br></div><div>I never thought of using a overriding the default_grab for this. It's a nice idea but more</div><div>complex than just listening to a signal. Besides, it's different, because the</div>
<div>signal here is emitted whatever the current grab, so i think the two approaches</div><div>are a bit orthogonal.</div><div><br></div><div>Giulio</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
Kristian<br>
<div><div class="h5"><br>
> ---<br>
>  src/compositor.h | 1 +<br>
>  src/input.c      | 2 ++<br>
>  2 files changed, 3 insertions(+)<br>
><br>
> diff --git a/src/compositor.h b/src/compositor.h<br>
> index ee7853b..a2f8073 100644<br>
> --- a/src/compositor.h<br>
> +++ b/src/compositor.h<br>
> @@ -307,6 +307,7 @@ struct weston_pointer {<br>
>       struct wl_listener focus_listener;<br>
>       uint32_t focus_serial;<br>
>       struct wl_signal focus_signal;<br>
> +     struct wl_signal motion_signal;<br>
><br>
>       struct weston_surface *sprite;<br>
>       struct wl_listener sprite_destroy_listener;<br>
> diff --git a/src/input.c b/src/input.c<br>
> index ad21be1..1aba210 100644<br>
> --- a/src/input.c<br>
> +++ b/src/input.c<br>
> @@ -315,6 +315,7 @@ weston_pointer_create(void)<br>
>       pointer->default_grab.pointer = pointer;<br>
>       pointer->grab = &pointer->default_grab;<br>
>       wl_signal_init(&pointer->focus_signal);<br>
> +     wl_signal_init(&pointer->motion_signal);<br>
><br>
>       pointer->sprite_destroy_listener.notify = pointer_handle_sprite_destroy;<br>
><br>
> @@ -630,6 +631,7 @@ notify_motion(struct weston_seat *seat,<br>
><br>
>       pointer->grab->interface->focus(pointer->grab);<br>
>       pointer->grab->interface->motion(pointer->grab, time);<br>
> +     wl_signal_emit(&pointer->motion_signal, pointer);<br>
>  }<br>
><br>
>  WL_EXPORT void<br>
> --<br>
> 1.8.4<br>
><br>
</div></div>> _______________________________________________<br>
> wayland-devel mailing list<br>
> <a href="mailto:wayland-devel@lists.freedesktop.org">wayland-devel@lists.freedesktop.org</a><br>
> <a href="http://lists.freedesktop.org/mailman/listinfo/wayland-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/wayland-devel</a><br>
</blockquote></div><br></div></div>