Browse Source

UI: Fix flip/rotate transform menu with group items

Fixes an issue where the user could not perform a horizontal/vertical
flip, or rotate group sub-items via the transform context menu.
jp9000 7 years ago
parent
commit
62d08fe38f
1 changed files with 10 additions and 1 deletions
  1. 10 1
      UI/window-basic-main.cpp

+ 10 - 1
UI/window-basic-main.cpp

@@ -5589,6 +5589,9 @@ static void SetItemTL(obs_sceneitem_t *item, const vec3 &tl)
 static bool RotateSelectedSources(obs_scene_t *scene, obs_sceneitem_t *item,
 		void *param)
 {
+	if (obs_sceneitem_is_group(item))
+		obs_sceneitem_group_enum_items(item, RotateSelectedSources,
+				param);
 	if (!obs_sceneitem_selected(item))
 		return true;
 
@@ -5601,10 +5604,11 @@ static bool RotateSelectedSources(obs_scene_t *scene, obs_sceneitem_t *item,
 	else if (rot <= -360.0f) rot += 360.0f;
 	obs_sceneitem_set_rot(item, rot);
 
+	obs_sceneitem_force_update_transform(item);
+
 	SetItemTL(item, tl);
 
 	UNUSED_PARAMETER(scene);
-	UNUSED_PARAMETER(param);
 	return true;
 };
 
@@ -5631,6 +5635,9 @@ static bool MultiplySelectedItemScale(obs_scene_t *scene, obs_sceneitem_t *item,
 {
 	vec2 &mul = *reinterpret_cast<vec2*>(param);
 
+	if (obs_sceneitem_is_group(item))
+		obs_sceneitem_group_enum_items(item, MultiplySelectedItemScale,
+				param);
 	if (!obs_sceneitem_selected(item))
 		return true;
 
@@ -5641,6 +5648,8 @@ static bool MultiplySelectedItemScale(obs_scene_t *scene, obs_sceneitem_t *item,
 	vec2_mul(&scale, &scale, &mul);
 	obs_sceneitem_set_scale(item, &scale);
 
+	obs_sceneitem_force_update_transform(item);
+
 	SetItemTL(item, tl);
 
 	UNUSED_PARAMETER(scene);