Improve clickable(button) nodes

I think there is room to improve the way clickable nodes are rendered. I identified the following issues with the current design that are uncomfortable to me, and that I think might also be to other people:

  • wires pass through the button instead of being connected to the left or right boundarie of the button. For example, this is a problem when a node has an input and also a button.
  • button is small compared to the whole node. It is hard to click on it depending on the audience.
  • button is limited to either right or left side, and its position is decided based on the lack of input or output, but these 2 variables should coexist and not be mutually exclusive. What I mean is that I should be able to have nodes with a button to either side AND still have inputs/outputs in the same side.

My proposal:

or with a smaller padding. This should be enough to drag the node. Its "draggable" region can be a little bigger than the visible, to avoid messing with the dragging feature.

I liked to see the button boundaries above the connectors because it kind looks 3D. But if you don't, the connectors can be transformed 2 pixels outwards on the X axis on each side.

A clickable node is rendered with its clickable region contained inside its boundaries, with a reasonable padding to still allow draging the node around. With this design buttons and wires won't interfere with each other, and developers won't have to chose the position of the button based on whether the node has zero inputs or outputs. Moreover, the clickable region is bigger and therefore easier to some types of Users to click.

To please everyone, a new feature flag could be added to the settings to enable this new button render or the old one.

"Render node button on the left/right" or "Render node as a button"

Can you give an example of a node with both a button (on the left) and an input?

Or, if they don't currently exist, a use case for such a thing?

I have a custom node that, when triggered, creates an object and forwards it to the output based on a input message or pre configured values. Because this node has a button and both inputs and outputs, placing the button on either right or left looks extremely bad. This node can be triggered with an inject node when its configuration data is more complex than its config form supports, but it is more often triggered by a click, since most of the time its config data is simple. I dont want to force users to always place an inject node to trigger this node, since it is just a feature that complements its usage. Users will most of the time just configure the node and use it as a button.

I suppose I have from time to time wished the inject node had an input so I could trigger it from the flow.
I am reasonably happy though with an arrangement like this to repeat a message injection.

I'd like an output of the debug node too. I imagine the button enabling/disabling an entire chain of debug handling nodes.