On 10/17/2015 08:59 AM, Michael Catanzaro wrote:
On Fri, 2015-10-16 at 18:43 -0700, Bill Spitzak wrote:
I think you misunderstood. The *destination* (if the cursor is still
pointing at it) is what sets the cursor.

To clarify: you mean the destination sets the cursor as soon as the
drop completes, correct? (Currently the source controls the cursor
until the drop is performed.) I don't see any disagreement on that
point: Carlos says that in drop_performed, the source "should reset its
internal current cursor to the regular one for the next time the
pointer enters the surface."

Did not see the word "internal" before, I misread the statement.

It does sound like you are relying on a client responding to an Enter event to change the cursor from whatever the DnD left it as to a normal pointer. This is (imho) correct.

Not sure if this should be mentioned as the statement is misleading. I don't think it is how a lot of clients will work, they will instead calculate the desired cursor at the moment they get the mouse-enter event. There is no "current cursor" to be "reset".

It seems you are assuming clients are written like this:

   static current_cursor;
   startDnD() { current_cursor = dnd_cursor; }
   endDnD() { current_cursor = normal_cursor; }
   on_mouse_enter() { wl_set_cursor(current_cursor); }

I expect it to work more like this:

   on_mouse_enter() {
     wl_set_cursor(is_dnd_running ? dnd_cursor : normal_cursor);
   }


_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to