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
This commit is contained in:
Chris Blackbourn 2023-01-27 16:38:12 +13:00
parent d76004f48f
commit 34a6591a07
Notes: blender-bot 2023-02-14 08:06:33 +01:00
Referenced by issue #98594, Changing UV smoothing mode in Subdivision Surface in geometry node does not refresh UV Editor View
1 changed files with 4 additions and 1 deletions

View File

@ -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);