[Bf-blender-cvs] [dc937c5aee4] master: Fix Auto-offset for nodes: Revert "Cleanup: Return early"

Dalai Felinto noreply at git.blender.org
Fri Sep 9 11:53:05 CEST 2022


Commit: dc937c5aee4532485c1927c278fe099f2f471f7e
Author: Dalai Felinto
Date:   Fri Sep 9 11:50:21 2022 +0200
Branches: master
https://developer.blender.org/rBdc937c5aee4532485c1927c278fe099f2f471f7e

Fix Auto-offset for nodes: Revert "Cleanup: Return early"

This "cleanup" commit broke Auto-offset for nodes.

This reverts commit e3ef6a6660032ca18af53dd24cd19bf36e56a85c.

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

M	source/blender/editors/space_node/node_relationships.cc
M	source/blender/editors/space_node/node_select.cc

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

diff --git a/source/blender/editors/space_node/node_relationships.cc b/source/blender/editors/space_node/node_relationships.cc
index 40f5d20d06d..7dbaa8ccd6d 100644
--- a/source/blender/editors/space_node/node_relationships.cc
+++ b/source/blender/editors/space_node/node_relationships.cc
@@ -1727,35 +1727,34 @@ static int node_attach_invoke(bContext *C, wmOperator *UNUSED(op), const wmEvent
   SpaceNode &snode = *CTX_wm_space_node(C);
   bNodeTree &ntree = *snode.edittree;
   bNode *frame = node_find_frame_to_attach(region, ntree, event->mval);
-  if (frame == nullptr) {
-    return OPERATOR_CANCELLED;
-  }
 
-  LISTBASE_FOREACH_BACKWARD (bNode *, node, &ntree.nodes) {
-    if (node->flag & NODE_SELECT) {
-      if (node->parent == nullptr) {
-        /* disallow moving a parent into its child */
-        if (nodeAttachNodeCheck(frame, node) == false) {
-          /* attach all unparented nodes */
-          nodeAttachNode(node, frame);
-        }
-      }
-      else {
-        /* attach nodes which share parent with the frame */
-        bNode *parent;
-        for (parent = frame->parent; parent; parent = parent->parent) {
-          if (parent == node->parent) {
-            break;
-          }
-        }
-
-        if (parent) {
+  if (frame) {
+    LISTBASE_FOREACH_BACKWARD (bNode *, node, &ntree.nodes) {
+      if (node->flag & NODE_SELECT) {
+        if (node->parent == nullptr) {
           /* disallow moving a parent into its child */
           if (nodeAttachNodeCheck(frame, node) == false) {
-            nodeDetachNode(node);
+            /* attach all unparented nodes */
             nodeAttachNode(node, frame);
           }
         }
+        else {
+          /* attach nodes which share parent with the frame */
+          bNode *parent;
+          for (parent = frame->parent; parent; parent = parent->parent) {
+            if (parent == node->parent) {
+              break;
+            }
+          }
+
+          if (parent) {
+            /* disallow moving a parent into its child */
+            if (nodeAttachNodeCheck(frame, node) == false) {
+              nodeDetachNode(node);
+              nodeAttachNode(node, frame);
+            }
+          }
+        }
       }
     }
   }
diff --git a/source/blender/editors/space_node/node_select.cc b/source/blender/editors/space_node/node_select.cc
index 82aaa2c3cc6..1f1ce9c0c2b 100644
--- a/source/blender/editors/space_node/node_select.cc
+++ b/source/blender/editors/space_node/node_select.cc
@@ -14,7 +14,6 @@
 #include "BLI_lasso_2d.h"
 #include "BLI_listbase.h"
 #include "BLI_rect.h"
-#include "BLI_set.hh"
 #include "BLI_string.h"
 #include "BLI_string_search.h"
 #include "BLI_string_utf8.h"
@@ -645,29 +644,28 @@ static bool node_mouse_select(bContext *C,
     }
   }
 
-  if (!(changed || found)) {
-    return false;
-  }
+  /* update node order */
+  if (changed || found) {
+    bool active_texture_changed = false;
+    bool viewer_node_changed = false;
+    if ((node != nullptr) && (node_was_selected == false || params->select_passthrough == false)) {
+      viewer_node_changed = (node->flag & NODE_DO_OUTPUT) == 0 && node->type == GEO_NODE_VIEWER;
+      ED_node_set_active(&bmain, &snode, snode.edittree, node, &active_texture_changed);
+    }
+    else if (node != nullptr && node->type == GEO_NODE_VIEWER) {
+      ED_spreadsheet_context_paths_set_geometry_node(&bmain, &snode, node);
+    }
+    ED_node_set_active_viewer_key(&snode);
+    node_sort(*snode.edittree);
+    if ((active_texture_changed && has_workbench_in_texture_color(wm, scene, ob)) ||
+        viewer_node_changed) {
+      DEG_id_tag_update(&snode.edittree->id, ID_RECALC_COPY_ON_WRITE);
+    }
 
-  bool active_texture_changed = false;
-  bool viewer_node_changed = false;
-  if ((node != nullptr) && (node_was_selected == false || params->select_passthrough == false)) {
-    viewer_node_changed = (node->flag & NODE_DO_OUTPUT) == 0 && node->type == GEO_NODE_VIEWER;
-    ED_node_set_active(&bmain, &snode, snode.edittree, node, &active_texture_changed);
-  }
-  else if (node != nullptr && node->type == GEO_NODE_VIEWER) {
-    ED_spreadsheet_context_paths_set_geometry_node(&bmain, &snode, node);
-  }
-  ED_node_set_active_viewer_key(&snode);
-  node_sort(*snode.edittree);
-  if ((active_texture_changed && has_workbench_in_texture_color(wm, scene, ob)) ||
-      viewer_node_changed) {
-    DEG_id_tag_update(&snode.edittree->id, ID_RECALC_COPY_ON_WRITE);
+    WM_event_add_notifier(C, NC_NODE | NA_SELECTED, nullptr);
   }
 
-  WM_event_add_notifier(C, NC_NODE | NA_SELECTED, nullptr);
-
-  return true;
+  return changed || found;
 }
 
 static int node_select_exec(bContext *C, wmOperator *op)



More information about the Bf-blender-cvs mailing list