On Fri, 09 Oct 2009 16:45:23 +0200 (CEST) Julien Danjou
<jul...@danjou.info> wrote:
> So I made a couple of tests to see how it works, and actually I'm quite
> impressed, because it works very well.  

Thanks, I'm quite happy with it too :)

> I'm ok to merge this all into next, I just need you to:
> - Give a look at the problem I spotted with systray (at least, say that
>   it's normal or not);  

I've found the cause and its a tricky one:
I'm using pairs to iterate over the widget tables, because in some
'composite' widgets (widgets that are actually made up of a table with
a layout containing other widgets) the keys for the widgets are
nonnumeric, eg. the promptbox's widget is under key "widget" :). I
thought the numeric keys always go before the others and are ordered,
but its not so. The order for pairs is random. It seems to work most of
the time, but in this case, due to putting nil to index 1 and/or
whatever else, it doesn't.

Permission to switch to ipairs, fix the widgets that have nonnumeric
keys and state that widgets in layouted tables can only be indexed by
numbers. Since the order matters in layouts and you can't rely on pairs
order at all, I see this as the only solution.

Oh, and this should probably be done somewhere on the C side too,
somewhere around the rendering funciton. Because it expects the number
of geometries equal to the number of the widgets, including those under
nonnumeric keys. If ipairs is used in the layout functions, it doesn't
return geometry for those keys and the geometries get shifted, messing
up all widgets for no apparent reason and making it hard to pinpoint
what has gone wrong.

I can do this too, but could use some hint.. I just had a quick look
and didn't find an obvious way.

> - Merge patch 1 and 2.  

Will do..

Cheers
lukash

-- 
To unsubscribe, send mail to awesome-devel-unsubscr...@naquadah.org.

Reply via email to