Subject: Re: bug#35492: 27.0.50; set-mouse-color nop

From: Alan Third <[email-masked]>
Date: Thu, 2 May 2019 19:46:35 +0100

On Wed, May 01, 2019 at 05:49:16PM -0400, Devon Sean McCullough wrote:
> 
> > On May 1, 2019, at 5:11 PM, Alan Third <[email-masked]> wrote:
> > 
> > On Wed, May 01, 2019 at 07:07:53AM -0400, Devon Sean McCullough wrote:
> >>> 	On Apr 30, 2019, at 4:22 PM, Alan Third <[email-masked]> wrote:
> >>> On Mon, Apr 29, 2019 at 02:18:42PM -0400, Devon Sean McCullough wrote:
> >>>> The following have no effect:
> >>>> 	(set-mouse-color "red")
> >>>> 	(set-mouse-color “yellow")
> >>>> 	(set-mouse-color "windowBackgroundColor")
> >>>> The mouse color should change.
> >> 
> >>> I don’t think the NS port supports modifying the mouse pointer. It
> >>> looks like it could probably be handled with custom NSCursors.
> >> 
> >> I see NS allows us to both read and write cursor images
> >> so a possible solution might involve (mouse-cursor-image nil)
> >> to get the current cursor image and (mouse-cursor-image nil image)
> >> to set it, either as a new primitive or an existing one I’m ignorant of.
> >> Lisp code thus replaces the cursor colors according to some heuristic;
> >> this notion struck me after giving image.c & image.el a cursory glance.
> > 
> > It looks like it’s possible to get a copy of the image for the current
> > cursor, so it’s possible we could just modify that.
> 
> Yes, that’s what I said.

Sorry, I misunderstood you.

The biggest stumbling block I can see is that we don’t have any way to
convert from an NSImage, which is what NSCursor returns, to something
we can edit from lisp (XPM, I assume?). So we’d have to implement
that.

The alternative, I suppose, would be to provide a custom set of
cursors that we can edit before using them.

> P.S. I would be foolish to do in C
> and it would be wise to allow Lisp
> to generate custom cursors too.

-- 
Alan Third