From 34a6591a073f90620b6bcff458a407368b5dd02f Mon Sep 17 00:00:00 2001 From: Chris Blackbourn Date: Fri, 27 Jan 2023 16:38:12 +1300 Subject: [PATCH] Fix T98594: missing uv editor redraw with geometry nodes modifier If an object has a geometry nodes modifier, the UVs on that object might change in response to any change on any other object. Now we will redraw the UV editor on any object change, not just the active object. Differential Revision: https://developer.blender.org/D17124 --- source/blender/editors/space_image/space_image.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c index 53e1bc0a1e5..fd8c161687e 100644 --- a/source/blender/editors/space_image/space_image.c +++ b/source/blender/editors/space_image/space_image.c @@ -405,7 +405,10 @@ static void image_listener(const wmSpaceTypeListenerParams *params) ViewLayer *view_layer = WM_window_get_active_view_layer(win); BKE_view_layer_synced_ensure(scene, view_layer); Object *ob = BKE_view_layer_active_object_get(view_layer); - if (ob && (ob == wmn->reference) && (ob->mode & OB_MODE_EDIT)) { + /* \note With a geometry nodes modifier, the UVs on `ob` can change in response to + * any change on `wmn->reference`. If we could track the upstream dependencies, + * unnecessary redraws could be reduced. Until then, just redraw. See T98594. */ + if (ob && (ob->mode & OB_MODE_EDIT)) { if (sima->lock && (sima->flag & SI_DRAWSHADOW)) { ED_area_tag_refresh(area); ED_area_tag_redraw(area);