On Sat, 30 Aug 2014 18:37:13 -0700 Jason Gerecke <killert...@gmail.com> said:

> On Fri, Aug 29, 2014 at 7:25 PM, Carsten Haitzler <ras...@rasterman.com>
> wrote:
> > On Fri, 29 Aug 2014 13:18:37 -0700 Jason Gerecke <killert...@gmail.com>
> > said:
> >
> > review below. btw. it'd be really awesome if you could use arc to land these
> > patches for review. this is part of our "getting organized" and using tools
> > to make sure patches don't vanish in an inbox. :) there is a special
> > limited sized review list for patches which allows inline code comments
> > etc. etc. see http://phab.enlightenment.org
> > http://phab.enlightenment.org/w/arcanist/
> >
> > 0001-Break-_ecore_x_input_handler-into-task-specific-sub-.patch:
> >
> > it'd be nice if it didn't have so many whitespace changes. it'd be REALLY
> > nice if you could "fix" the whitespace to match what was there before. i'm
> > sifting through it and almost all of this patch is whitespace changes (that
> > are not needed as no extra if, whole, for etc. clauses).
> >
> My editor seems to have gotten a little indent happy... I'll work on
> cleaning up that mess up :)
> 
> > 0002-Select-XI2-events-whenever-possible.patch:
> >
> > i am not sure here, but this may break multitouch support mpx-style that
> > checks for floating slaves vs slaves. (reading the diff is not fun :) it is
> > removing all the detection code and that is worrying, especially as it's
> > hard to test this support (but has been tested in the past when written).
> >
> Basically this patch has the X server send Button, Motion, and Touch
> events without regard to if the device is floating. A driver with MPX
> multitouch that uses a floating device per finger shouldn't be sending
> XI2 touch events, so I doubt adding them to the mask would break
> anything. On the flip side, a driver with XI2 multitouch devices
> *will* send button/motion events (for the first finger) along with
> touch events, but the '_ecore_x_input_multi_handler' function only
> responds to touch events, so requesting more events from the server
> shouldn't break anything in this case either.

hmmm - for now, ok.

> > 0003-Define-and-implement-new-Ecore_Event_Axis_Update-eve.patch:
> >
> > you have some ome todo's and fixme's... :)). one thing - the #include of
> > xserver-properties.h ... that literally is not an existing installed file
> > anywhere on my xorg installation. so this is going to be a problem... it
> > won't compile. and it likely isn't going to compile for anyone else. what
> > is this doing there and why? (oh .. and we don;'t use egyptian brackets in
> > count_bits ()) also @since 1.12 in the doxy comments so we know what
> > version of efl this was introduced from :) oh and typedef enum
> > _Ecore_Axis_Label like Ecore_Event_Axis_Update was. and in fact like 0004
> > below - flatten out Ecore_Axis that isnt even typedeffed. :)
> >
> The xserver-properties.h file contains the names that drivers are
> expected to use when naming their axes. It defines the constants I use
> later in that file (e.g. AXIS_LABEL_PROP_ABS_X). It looks like GTK at
> least just hard-codes the strings instead of depending on the header
> (which is part of the xorg server devel package).

i'd recommend hardcoding them here ala gtk. :) there is nothing in these
patches to check for this header, and since it's part of server devel 'd
probably avoid relying on it. :)

> I'll see what I can do about the todos and fixmes :D I expected more
> critique on my design so only roughed out the implementation and
> punted on the really hard parts in case they needed to be changed
> anyway.

design doesn't seem much of a problem :)

> > 0004-Implement-EVAS_CALLBACK_AXIS_UPDATE-event-and-friend.patch:
> >
> > might i suggest not using struct _Evas_Axis * as a parameter but actually
> > passing in the enum lable and double. this makes it easier for bindings to
> > other languages. so pass them in as 2 params. that prbably means removing
> > this struct entirely (also being a raw struct is inconsistent with our
> > typedeffing of all of these) so just break out enum (actually also typedef
> > the enum please) and double value into the event update struct :) flatten
> > the world! :)
> >
> The _Evas_Axis * is an array (whose length is given by 'naxes'), not a
> single object. There'll be maybe a half-dozen enum/double pairs
> depending on the device sending the event. Would using some kind of
> EFL-specific list datatype work better perhaps?

oh. array. dang. then definitely typedef the axis struct. always. dont leave it
a raw struct (same with enum as above)

> > 0005-Wire-the-Ecore-and-Evas-implementations-of-axis-upda.patch:
> >
> > fine EXCEPT i see no patch to expose ecore_event_evas_axis_update in the
> > header file :) it's EAPI (exposed api)... thus shoulld have something in
> > Ecore_Input.h :) don't forget @since 1.12 in a doxy comment :)
> >
> So _that's_ what EAPI means :D I should confess that pretty much all
> of my code was mechanically written; grepping through the tree for
> instances of e.g. "mouse_down" or "multi_down" and then creating
> similar-looking blocks that said "axis_update". I'm honestly surprised
> there aren't more little problems like this...

yup. EAPI is everywhere indicating it's exposed to external entities (outside
the lib/module.binary etc.). i though it would be obvious after reading a
public header and seeing every single function prefixed with EAPI.

it's actually important. it's a macro that sets attribute of visibility, so if
you strip -x the file these symbols remain. also on windows it does a cdecl
indicating to the linker to export this symbol. if you don't, on windows, these
functions have no symbols and are inaccessible. it isn't needed for cross-file
usage, or using any symbol within a single .so or single executable binary, but
it is needed for access from outside that destination file.

> Jason
> ---
> Now instead of four in the eights place /
> you’ve got three, ‘Cause you added one  /
> (That is to say, eight) to the two,     /
> But you can’t take seven from three,    /
> So you look at the sixty-fours....
> 
> > 0006-DEBUG-Add-axis-update-logging-to-evas-multi-touch.c.patch:
> >
> > fine
> >
> > 0007-DEBUG-Make-evas-multi-touch-demo-be-pressure-sensiti.patch
> >
> > fine
> >
> >> Its been quite a while since my first patches were sent, so
> >> unsurprisingly they no longer apply to the master branch. I've
> >> attached an updated patchset which has been rebased and should work
> >> once more. Hopefully it makes reviewing the code a bit more attractive
> >> to those who've been standing on the sidelines... I'm not terribly
> >> familiar with the EFL codebase so I'm *sure* somebody out there could
> >> provide some feedback on the design :)
> >>
> >> Jason
> >> ---
> >> Now instead of four in the eights place /
> >> you’ve got three, ‘Cause you added one  /
> >> (That is to say, eight) to the two,     /
> >> But you can’t take seven from three,    /
> >> So you look at the sixty-fours....
> >
> >
> > --
> > ------------- Codito, ergo sum - "I code, therefore I am" --------------
> > The Rasterman (Carsten Haitzler)    ras...@rasterman.com
> >
> 
> ------------------------------------------------------------------------------
> Slashdot TV.  
> Video for Nerds.  Stuff that matters.
> http://tv.slashdot.org/
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    ras...@rasterman.com


------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to