[PATCH v3 weston] compositor-drm: update internal cursor plane location when disabling cursor

Bryce Harrington bryce at osg.samsung.com
Tue Feb 9 21:06:28 UTC 2016


On Sat, Feb 06, 2016 at 11:24:34AM +0200, Pekka Paalanen wrote:
> On Fri,  5 Feb 2016 15:55:20 -0600
> Derek Foreman <derekf at osg.samsung.com> wrote:
> 
> > When the cursor plane is disabled the kernel can lose its location.
> > If we don't update our internal idea of where the plane is at that time,
> > the next time we set a cursor it can show up at 0,0.
> > 
> > This can show up when an application is put in the cursor plane, removed
> > from the plane, then put back at the same location.  It might show up at
> > 0,0 when it's reinstated.
> > 
> > We now use INT32_MIN as a location for disabled cursors so enabling the
> > plane will always cause an update.
> > 
> > Reviewed-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
> > Signed-off-by: Derek Foreman <derekf at osg.samsung.com>
> > ---
> > Changes from v1:
> > use INT32_MIN instead of 0
> > 
> > Changes from v2:
> > actually init the cursor plane to INT32_MIN, INT32_MIN
> > 
> >  src/compositor-drm.c | 5 ++++-
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> > 
> > diff --git a/src/compositor-drm.c b/src/compositor-drm.c
> > index 8b9882e..7666862 100644
> > --- a/src/compositor-drm.c
> > +++ b/src/compositor-drm.c
> > @@ -1174,6 +1174,8 @@ drm_output_set_cursor(struct drm_output *output)
> >  	output->cursor_view = NULL;
> >  	if (ev == NULL) {
> >  		drmModeSetCursor(b->drm.fd, output->crtc_id, 0, 0, 0);
> > +		output->cursor_plane.x = INT32_MIN;
> > +		output->cursor_plane.y = INT32_MIN;
> >  		return;
> >  	}
> >  
> > @@ -2430,7 +2432,8 @@ create_output_for_connector(struct drm_backend *b,
> >  	output->base.gamma_size = output->original_crtc->gamma_size;
> >  	output->base.set_gamma = drm_output_set_gamma;
> >  
> > -	weston_plane_init(&output->cursor_plane, b->compositor, 0, 0);
> > +	weston_plane_init(&output->cursor_plane, b->compositor,
> > +			  INT32_MIN, INT32_MIN);
> >  	weston_plane_init(&output->fb_plane, b->compositor, 0, 0);
> >  
> >  	weston_compositor_stack_plane(b->compositor, &output->cursor_plane, NULL);
> > -- 
> > 2.7.0
> > 
> 
> Hi,
> 
> yup, this is what I meant. I'd be happy to see this and the other
> compositor-drm cursor plane patch to be in 1.10. Bryce?

Thanks, pushed for rc1:

To ssh://git.freedesktop.org/git/wayland/weston
   345b4f5..b042756  master -> master

Bryce


More information about the wayland-devel mailing list