e_fm2: avoid invalid mouse-up.
authorGustavo Sverzut Barbieri <barbieri@gmail.com>
Sat, 20 Jun 2009 15:54:52 +0000 (15:54 +0000)
committerGustavo Sverzut Barbieri <barbieri@gmail.com>
Sat, 20 Jun 2009 15:54:52 +0000 (15:54 +0000)
commit00aa72ef4792934539d00546967e5ac302f1c350
treec2a5726dbf2dac4d14d0e98b3694dbc6aad8d3cf
parentcfb2df2f11f9bcaa9565d517f61cd91a24bbc7a4
e_fm2: avoid invalid mouse-up.

Here's another patch I've made for efm2 to fix an issue that I've
often experienced using it (in Illume) with a touch-screen
device (Freerunner).  It often happens a very strange thing: I
try to finger-scroll a bottom icon (it must be on the latest row)
moving my thumb up, well... The the scroller doesn't scroll, but
wherever and whenever I release my finger, the selected icon is
executed!

I don't really know to what is this due (the touchscreen seems to
perform correctly by the way), but I've never been able to
replicate it using a mouse in my PC.

Anyway to fix this issue, that could be specific, I've used a
workaround that I think that could be applied for all: it
basically checks if the mouse has been released in the area where
the clicked icon is, before sending a "selected" callback.

It needs the previously attached
e_fm2-single-click-delay-support.patch to be applied correctly.

Going deeply into the real issue I've made some tests, and I got
that this seems mostly due to an evas issue (I figure), since the
e_fm2's scrollframe never sets the evas event flag to:
EVAS_EVENT_FLAG_ON_HOLD
(that would avoid the un-wanted click).
After some debugging there, I've also seen that in this very
particular buggy case the _e_smart_event_mouse_up() and
_e_smart_event_mouse_move() callback functions are never
called (so I figure that evas doesn't add the callbacks at all
for the scrollframe, while they are added in the e_fm2).

Let me know what you think about this... I thing that the Om
users would need a fix like this.

By: Marco Trevisan (TreviƱo)

SVN revision: 41129
src/bin/e_fm.c