On 7/13/07, Gustavo Sverzut Barbieri <[EMAIL PROTECTED]> wrote: > Guys, I spent the whole afternoon trying to find a non-hackish (or > less hackish) way to solve this problem: > > click on one object and then move to other, this other should also > receive events. > > my current problem actually is: I'm trying to write a virtual keyboard > for maemo, I'm basing my work on iPhone keyboard [1]. When you > mouse,down,1 some key, you get a feedback of which key was pressed, if > you see it was the wrong key, then just move over the right key and > release, this new key will emit the signal to application. > Problem is: if mouse,down,1 is done on key "Q", when you move to > key "W", you don't get anything with source="W". You can set keys to > repeat_events, then you'll get the same event on "background", but > still nothing on "W". > > 1) I cannot use evas_object_callback_* directly because my goal is to > NOT know what keys exist in keyboard, in other words: I don't know the > parts of my edje beforehand. > 2) I cannot use evas_object_top_at_xy_get() in order to get edje > parts. Actually I don't get even the edje itself, I get nothing, nada, > zap... Is this correct? [I do get some object created by myself, like > a rectangle] > > This problem will appear a lot for our use with touchscreen devices, > many actions are gesture-like and will be hard or impossible to do > with current design. Example: we want some buttons to be > combobox-like, you click-and-hold and it will slide another edje-group > with buttons there, move your finger over it and release: it will > execute. > > I know this is not the usual behavior on desktops and that's because > it's like that, but any solutions to this? Where I should look? > > Nathan (RbdPngn) told me to use ecore's event filter and check there > for mouse-down events, intercept them and do it own my own. I think it > may work, yes, but it's far from easy to use :-/ > > I don't expect any ready-to-use edje syntax or so, but at least some > option to allow parts to still emit events when the other is clicked. > This way I could capture "down", set a flag and start to listen for > "in" or "out" events, on "up" I'd do the right thing and stop > listening these signals. > > I guess this is a problem with edje, but maybe it's about evas? Hints? Ideas?
Ok, reading evas docs it's really the expected behavior, at least it's documented: * EVAS_CALLBACK_MOUSE_OUT: event_info = pointer to Evas_Event_Mouse_Out * * ... Note that no out events will be * reported if the mouse pointer is implicitly grabbed to an object (the * mouse buttons are down at all and any were pressed on that object). An * out event will be reported as soon as the mouse is no longer grabbed (no * mouse buttons are depressed). Out events will be reported once all buttons * are released, if the mouse has left the object. So, how to solve it without brake every existent thing that depends on this? -- Gustavo Sverzut Barbieri -------------------------------------- Jabber: [EMAIL PROTECTED] MSN: [EMAIL PROTECTED] ICQ#: 17249123 Skype: gsbarbieri Mobile: +55 (81) 9927 0010 ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel