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:
authorCampbell Barton <campbell@blender.org>2022-05-18 07:42:55 +0300
committerCampbell Barton <campbell@blender.org>2022-05-18 07:42:55 +0300
commit5d1cab0c2fbef8478b415bc0276d7471321d3eb2 (patch)
tree895eac8b82cfd98c329a75cdc765fb2c9e80e0b0 /source/blender/editors/space_node
parent0af772ef8a8dafa71a46f343939aa6e86ac47891 (diff)
parentd7053ba030f62c8eb597f6aa24525a96b3c42a17 (diff)
Merge branch 'blender-v3.2-release'
Diffstat (limited to 'source/blender/editors/space_node')
-rw-r--r--source/blender/editors/space_node/node_intern.hh5
-rw-r--r--source/blender/editors/space_node/node_select.cc7
-rw-r--r--source/blender/editors/space_node/node_view.cc6
3 files changed, 16 insertions, 2 deletions
diff --git a/source/blender/editors/space_node/node_intern.hh b/source/blender/editors/space_node/node_intern.hh
index f1653e3dfd6..0c02af8a18e 100644
--- a/source/blender/editors/space_node/node_intern.hh
+++ b/source/blender/editors/space_node/node_intern.hh
@@ -127,8 +127,6 @@ ENUM_OPERATORS(NodeResizeDirection, NODE_RESIZE_LEFT);
*/
float2 space_node_group_offset(const SpaceNode &snode);
-rctf node_frame_rect_inside(const bNode &node);
-
int node_get_resize_cursor(NodeResizeDirection directions);
/**
* Usual convention here would be #node_socket_get_color(),
@@ -165,6 +163,9 @@ void node_keymap(wmKeyConfig *keyconf);
/* node_select.cc */
+rctf node_frame_rect_inside(const bNode &node);
+bool node_or_socket_isect_event(bContext *C, const wmEvent *event);
+
void node_deselect_all(SpaceNode &snode);
void node_socket_select(bNode *node, bNodeSocket &sock);
void node_socket_deselect(bNode *node, bNodeSocket &sock, bool deselect_node);
diff --git a/source/blender/editors/space_node/node_select.cc b/source/blender/editors/space_node/node_select.cc
index c56f59259a2..9d73156edab 100644
--- a/source/blender/editors/space_node/node_select.cc
+++ b/source/blender/editors/space_node/node_select.cc
@@ -48,6 +48,8 @@
namespace blender::ed::space_node {
+static bool is_event_over_node_or_socket(bContext *C, const wmEvent *event);
+
/**
* Function to detect if there is a visible view3d that uses workbench in texture mode.
* This function is for fixing T76970 for Blender 2.83. The actual fix should add a mechanism in
@@ -98,6 +100,11 @@ rctf node_frame_rect_inside(const bNode &node)
return frame_inside;
}
+bool node_or_socket_isect_event(bContext *C, const wmEvent *event)
+{
+ return is_event_over_node_or_socket(C, event);
+}
+
static bool node_frame_select_isect_mouse(bNode *node, const float2 &mouse)
{
/* Frame nodes are selectable by their borders (including their whole rect - as for other nodes -
diff --git a/source/blender/editors/space_node/node_view.cc b/source/blender/editors/space_node/node_view.cc
index 91a21527ac9..6f30632244b 100644
--- a/source/blender/editors/space_node/node_view.cc
+++ b/source/blender/editors/space_node/node_view.cc
@@ -643,6 +643,12 @@ static int sample_invoke(bContext *C, wmOperator *op, const wmEvent *event)
ARegion *region = CTX_wm_region(C);
ImageSampleInfo *info;
+ /* Don't handle events intended for nodes (which rely on click/drag distinction).
+ * which this operator would use since sampling is normally activated on press, see: T98191. */
+ if (node_or_socket_isect_event(C, event)) {
+ return OPERATOR_PASS_THROUGH;
+ }
+
if (!ED_node_is_compositor(snode) || !(snode->flag & SNODE_BACKDRAW)) {
return OPERATOR_CANCELLED;
}