Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/editors/space_node')
-rw-r--r--source/blender/editors/space_node/node_relationships.c10
-rw-r--r--source/blender/editors/space_node/node_select.c38
-rw-r--r--source/blender/editors/space_node/space_node.c2
3 files changed, 31 insertions, 19 deletions
diff --git a/source/blender/editors/space_node/node_relationships.c b/source/blender/editors/space_node/node_relationships.c
index 97a2383c03f..973ce56857c 100644
--- a/source/blender/editors/space_node/node_relationships.c
+++ b/source/blender/editors/space_node/node_relationships.c
@@ -67,12 +67,12 @@ typedef struct bNodeListItem {
struct bNode *node;
} bNodeListItem;
-static int sort_nodes_locx(void *a, void *b)
+static int sort_nodes_locx(const void *a, const void *b)
{
- bNodeListItem *nli1 = (bNodeListItem *)a;
- bNodeListItem *nli2 = (bNodeListItem *)b;
- bNode *node1 = nli1->node;
- bNode *node2 = nli2->node;
+ const bNodeListItem *nli1 = a;
+ const bNodeListItem *nli2 = b;
+ const bNode *node1 = nli1->node;
+ const bNode *node2 = nli2->node;
if (node1->locx > node2->locx)
return 1;
diff --git a/source/blender/editors/space_node/node_select.c b/source/blender/editors/space_node/node_select.c
index 5a78ea6ebd8..de580f612a0 100644
--- a/source/blender/editors/space_node/node_select.c
+++ b/source/blender/editors/space_node/node_select.c
@@ -248,22 +248,34 @@ static bool node_select_grouped_name(SpaceNode *snode, bNode *node_act, const bo
bNode *node;
bool changed = false;
const unsigned int delims[] = {'.', '-', '_', '\0'};
- size_t index_act, index_curr;
+ size_t pref_len_act, pref_len_curr;
char *sep, *suf_act, *suf_curr;
- index_act = BLI_str_partition_ex_utf8(node_act->name, delims, &sep, &suf_act, from_right);
+ pref_len_act = BLI_str_partition_ex_utf8(node_act->name, delims, &sep, &suf_act, from_right);
- if (index_act > 0) {
- for (node = snode->edittree->nodes.first; node; node = node->next) {
- if ((node->flag & SELECT) == 0) {
- index_curr = BLI_str_partition_ex_utf8(node->name, delims, &sep, &suf_curr, from_right);
- if ((from_right && STREQ(suf_act, suf_curr)) ||
- (!from_right && (index_act == index_curr) && STREQLEN(node_act->name, node->name, index_act)))
- {
- nodeSetSelected(node, true);
- changed = true;
- }
- }
+ /* Note: in case we are searching for suffix, and found none, use whole name as suffix. */
+ if (from_right && !(sep && suf_act)) {
+ pref_len_act = 0;
+ suf_act = node_act->name;
+ }
+
+ for (node = snode->edittree->nodes.first; node; node = node->next) {
+ if (node->flag & SELECT) {
+ continue;
+ }
+ pref_len_curr = BLI_str_partition_ex_utf8(node->name, delims, &sep, &suf_curr, from_right);
+
+ /* Same as with active node name! */
+ if (from_right && !(sep && suf_curr)) {
+ pref_len_curr = 0;
+ suf_curr = node->name;
+ }
+
+ if ((from_right && STREQ(suf_act, suf_curr)) ||
+ (!from_right && (pref_len_act == pref_len_curr) && STREQLEN(node_act->name, node->name, pref_len_act)))
+ {
+ nodeSetSelected(node, true);
+ changed = true;
}
}
diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c
index 875639da113..ccaeae34927 100644
--- a/source/blender/editors/space_node/space_node.c
+++ b/source/blender/editors/space_node/space_node.c
@@ -511,7 +511,7 @@ static void node_area_listener(bScreen *sc, ScrArea *sa, wmNotifier *wmn)
}
break;
case NC_WM:
- if(wmn->data == ND_UNDO) {
+ if (wmn->data == ND_UNDO) {
ED_area_tag_refresh(sa);
}
break;