When stacking nodes, if the lower one has a clickable area at the cursor location, instead of the upper one the lower one gets focus.
In the example file, try to edit the RGB Curve, or any field that has another one on the level below it. Grabbing nodes doesn't work either when their title bar is located on the graph.
Will look into it later if it isn't fixed by then.
Ubuntu 9.10, nvidia binary blob
Description
Event Timeline
This is actually a really tricky one.
Due to the way the new UI handler system works, blender first interprets clicks, then cycles over all ui blocks to find if the mouse is over a button. If it is over, it activates, however it doesn't know anything about the nodes or what is overlapping, it's just going off block/button positions. It's only if it hasn't found any buttons that it then continues on for the boundbox checks when selecting nodes.
Anyway, I've committed a partial fix that will help somewhat, at least it keeps the correct order of buttons, so that a fg button over a bg button will work, rather than the bg button. Not sure about a proper fix though...
What if all the nodes were z-indexed, and then have the blocks / buttons inherit that z-index value from the nodes? Then when cycling over the UI blocks, find all matches instead of just the first, and select the one with the highest z-index value.
Set z-index value according to most recent node selected. Selecting a node pushes it to the top of the z-index.
(Actually, there can be any number of nodes, so it might be easier to code it so that the the top value is 0 with the z-index values inverse to the stack order. i.e. the higher the value the further down in the stack a node is.)
Just an idea. Not familiar with the code enough to know if relations between buttons / blocks and their parent nodes would make that something very easy to pull off.