Re: [Further-devel] mouse_out()

From: Evan Martin (
Date: Thu Sep 20 2001 - 13:11:03 PDT

(Oops, forgot to send this back to the mailing list. I like sending
everything to the ML so it can be archived.)

On Thu, Sep 20, 2001 at 05:03:02PM +0100, Tom Insam wrote:
> I'm playing with an alternate launcher (based off the included launcher
> plugin)that behaves like the new macos dock - icons near the cursor grow,
> the size tails off to the left & right, etc. Problem is, the images don't
> get mouse_out messages if I don't touch the further desktop before moving
> into a window. How would I make a 'mouse leaving domain of further' call the
> mouse_out function?

Hm... I'm pretty sure evas does call the mouse_out function when the
mouse leaves the desktop.
further.c, line 94:
        case LeaveNotify:
                debug printf("leave\n");

That's an X event, if the mouse leaves the further window.

Then, in evas_events.c:
evas_event_leave(Evas e)
   if (!e) return;
   e-> = 0;
   if ((e->mouse.object) && (!e->mouse.button_object))
        _evas_callback_call(e, e->mouse.object, CALLBACK_MOUSE_MOVE,
                            e->mouse.buttons, e->mouse.x, e->mouse.y);
        _evas_callback_call(e, e->mouse.object, CALLBACK_MOUSE_OUT,
                            e->mouse.buttons, e->mouse.x, e->mouse.y);
        e->mouse.object = NULL;

It calls the MOUSE_OUT callback.

As a simple test: slide a window halfway over an icon on the
existing launcher and then move the mouse between the window and the

Let me know if I can help any more. I'm eager to see what you've done.

It's particularly difficult to get all of the timing code right.
See furtherp_fade_full in plugin.c; that's my fifth attempt at it, and
it's that complicated because it needs to be.

    Evan Martin

_______________________________________________ Further-devel mailing list

This archive was generated by hypermail 2.1.2 : Sun Nov 11 2001 - 14:16:15 PST