diff options
author | Philipp Oeser <info@graphics-engineer.com> | 2020-04-09 14:24:42 +0300 |
---|---|---|
committer | Philipp Oeser <info@graphics-engineer.com> | 2020-04-14 19:32:30 +0300 |
commit | 65f674b570fc5eb1b5011bf8ae5cc3e031026665 (patch) | |
tree | 364d277c3ae9bfa0be6c476a06d1d57127ae60d1 | |
parent | dc66fa5c9cf925d889d05e05f53102ef7eacfda2 (diff) |
Fix T75535: Compositor backdrop gizmo dragging interrupts with node
mouse over
Caused by rB5929dd7129f6.
Above commit would reset the gizmo highlight on node mouseover.
This would also assert in gizmo_rect_pivot_from_scale_part() and stop
the drag.
So now, only reset the gizmo when we are not in EVT_GIZMO_UPDATE,
allowing for starting the tweak outside a node and then travelling
'inside' while still preventing to use it over a node when starting a
tweak there.
Maniphest Tasks: T75535
Differential Revision: https://developer.blender.org/D7383
-rw-r--r-- | source/blender/windowmanager/intern/wm_event_system.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 15b6fe53417..8b8c1b90dc9 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2519,10 +2519,11 @@ static int wm_handlers_do_gizmo_handler(bContext *C, wmGizmo *gz = wm_gizmomap_highlight_get(gzmap); /* Needed so UI blocks over gizmos don't let events fall through to the gizmos, - * noticeable for the node editor - where dragging on a node should move it, see: T73212. */ + * noticeable for the node editor - where dragging on a node should move it, see: T73212. + * note we still allow for starting the gizmo drag outside, then travel 'inside' the node */ if (region->type->clip_gizmo_events_by_ui) { if (UI_region_block_find_mouse_over(region, &event->x, true)) { - if (gz != NULL) { + if (gz != NULL && event->type != EVT_GIZMO_UPDATE) { WM_tooltip_clear(C, CTX_wm_window(C)); wm_gizmomap_highlight_set(gzmap, C, NULL, 0); } |