UI: Fix 0,0 size transform bug when resizing sources

Fix a bug where if a source's width or height becomes 0 while you're
stretching the size of a source or modifying it from the transform
dialog, it would become permanently invisible

Closes obsproject/obs-studio#7962
This commit is contained in:
Jim
2023-05-19 15:46:45 -07:00
parent 38e5411490
commit fcfc2eb5fc
2 changed files with 30 additions and 8 deletions

View File

@@ -1492,9 +1492,17 @@ void OBSBasicPreview::StretchItem(const vec2 &pos)
obs_source_t *source = obs_sceneitem_get_source(stretchItem);
uint32_t source_cx = obs_source_get_width(source);
uint32_t source_cy = obs_source_get_height(source);
/* if the source's internal size has been set to 0 for whatever reason
* while resizing, do not update transform, otherwise source will be
* stuck invisible until a complete transform reset */
if (!source_cx || !source_cy)
return;
vec2 baseSize;
vec2_set(&baseSize, float(obs_source_get_width(source)),
float(obs_source_get_height(source)));
vec2_set(&baseSize, float(source_cx), float(source_cy));
vec2 size;
vec2_set(&size, br.x - tl.x, br.y - tl.y);