Fix #114461: Check Interactivity in button comparisons #116228

Merged
Harley Acheson merged 1 commits from Harley/blender:but_equals_interactive into main 2023-12-20 01:14:18 +01:00
1 changed files with 7 additions and 0 deletions

View File

@ -774,6 +774,13 @@ static bool ui_but_equals_old(const uiBut *but, const uiBut *oldbut)
return false;
}
/* If the old button is active for interaction, but the new one isn't interactive,
* do not consider them matching. Avoids incorrect matches with label buttons, which
* usually do not have data that can be used for comparison. See #114461. */
if (oldbut->active && !ui_but_is_interactive(but, false)) {
return false;
}
if ((but->type == UI_BTYPE_VIEW_ITEM) && (oldbut->type == UI_BTYPE_VIEW_ITEM)) {
uiButViewItem *but_item = (uiButViewItem *)but;
uiButViewItem *oldbut_item = (uiButViewItem *)oldbut;