Maniphest T19926

clicks "fall through" when stacking nodes
Closed, Archived

Assigned To
Matt Ebb (broken)
Authored By
Fabian Boehlke (tsuchi)
Nov 19 2009, 8:07 PM
Tags
  • Nodes
  • BF Blender
Subscribers
Brecht Van Lommel (brecht)
Fabian Boehlke (tsuchi)
Matt Ebb (broken)
Nathan Letwory (jesterking)
Reuben Martin (fishb8)

Description

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

Event Timeline

Fabian Boehlke (tsuchi) edited a custom field.Nov 19 2009, 8:07 PM
Fabian Boehlke (tsuchi) attached 1 file(s): F9576: nodeclickthrough.blend.
Reuben Martin (fishb8) added a comment.Dec 4 2009, 6:47 PM

Confirmed.

WinXP 32bit
2.5 Alpha 0
Nvidia GPU

Matt Ebb (broken) added a comment.Jan 12 2010, 7:03 AM

confirmed

Matt Ebb (broken) added a comment.Jan 12 2010, 8:08 AM

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...

Brecht Van Lommel (brecht) added a comment.Jan 26 2010, 7:33 PM

Not sure what the best way to do this is either. A solution would be to add some invisible ui widget that still swallows the mouse clicks. Could be a special UI blocker widget type or use a LABEL if that works.

Reuben Martin (fishb8) added a comment.Jan 27 2010, 6:34 AM

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.

Brecht Van Lommel (brecht) added a comment.Jan 27 2010, 11:13 AM

The buttons themselves are in the right order now, but the nodes themselves are not part of this, they are drawn by the node editor, so the UI code is not aware of them.

Nathan Letwory (jesterking) added a comment.Sep 16 2010, 12:08 AM

Moving to todo list on wiki, as this is still something that needs to be done: http://wiki.blender.org/index.php/Dev:2.5/Source/Development/Todo/Editors#Node_Editor

Nathan Letwory (jesterking) changed the task status from Unknown Status to Archived.Sep 16 2010, 12:08 AM