[Bf-blender-cvs] [3b965ba10bf] master: UI: Fix node socket alignment in some cases

Alessio Monti di Sopra noreply at git.blender.org
Fri Dec 17 15:04:47 CET 2021


Commit: 3b965ba10bf649922477cee41da9ed492299313c
Author: Alessio Monti di Sopra
Date:   Fri Dec 17 08:03:47 2021 -0600
Branches: master
https://developer.blender.org/rB3b965ba10bf649922477cee41da9ed492299313c

UI: Fix node socket alignment in some cases

The patch fixes some misalignments in the nodes' sockets/options
recently introduced in 26d2caee3ba0, while maintaining the original
fix for T92268.

The original fix made the top padding always of the same size; while
that works when the first row of the other node is `Socket | Socket`,
it doesn't for other more common cases, `like Socket | Node Option`,
where the text results misaligned.

Differential Revision: https://developer.blender.org/D13451

===================================================================

M	source/blender/editors/space_node/node_draw.cc

===================================================================

diff --git a/source/blender/editors/space_node/node_draw.cc b/source/blender/editors/space_node/node_draw.cc
index d68f16f6197..69d66b3fa7a 100644
--- a/source/blender/editors/space_node/node_draw.cc
+++ b/source/blender/editors/space_node/node_draw.cc
@@ -365,6 +365,10 @@ static void node_update_basis(const bContext &C, bNodeTree &ntree, bNode &node,
   PointerRNA nodeptr;
   RNA_pointer_create(&ntree.id, &RNA_Node, &node, &nodeptr);
 
+  const bool node_options = node.typeinfo->draw_buttons && (node.flag & NODE_OPTIONS);
+  const bool inputs_first = node.inputs.first &&
+                            !(node.outputs.first || (node.flag & NODE_PREVIEW) || node_options);
+
   /* Get "global" coordinates. */
   float2 loc = node_to_view(node, float2(0));
   /* Round the node origin because text contents are always pixel-aligned. */
@@ -377,7 +381,7 @@ static void node_update_basis(const bContext &C, bNodeTree &ntree, bNode &node,
   dy -= NODE_DY;
 
   /* Add a little bit of padding above the top socket. */
-  if (node.outputs.first || node.inputs.first) {
+  if (node.outputs.first || inputs_first) {
     dy -= NODE_DYS / 2;
   }
 
@@ -478,7 +482,7 @@ static void node_update_basis(const bContext &C, bNodeTree &ntree, bNode &node,
   }
 
   /* Buttons rect? */
-  if (node.typeinfo->draw_buttons && (node.flag & NODE_OPTIONS)) {
+  if (node_options) {
     dy -= NODE_DYS / 2;
 
     uiLayout *layout = UI_block_layout(&block,



More information about the Bf-blender-cvs mailing list