obsproject / obs-studio

OBS Studio - Free and open source software for live streaming and screen recording
https://obsproject.com
GNU General Public License v2.0
59.93k stars 7.94k forks source link

Hiding group does not trigger child's "Hide Transition" #11446

Open vladdeSV opened 3 hours ago

vladdeSV commented 3 hours ago

Operating System Info

macOS 15

Other OS

No response

OBS Studio Version

30.2.3

OBS Studio Version (Other)

No response

OBS Studio Log URL

https://obsproject.com/logs/JdlWWAeAGhHu4zkf

OBS Studio Crash Log URL

No response

Expected Behavior

When hiding or un-hiding a group, the group's children should apply their own transitions for hiding / unhiding.

Current Behavior

When hiding a group, the children do not apply their hiding transition. However, they do use their transitions when un-hiding.

Steps to Reproduce

  1. Create any element, eg. a Text
  2. Set the text's "Show Transition" and "Hide Transition" to Fade
  3. Verify transitions are working. Hide and un-hide the Text.
  4. Right-click the Text and click "Group Selected Items"
  5. Hide the group, and see that the Text disappears instantly
  6. Un-hide the group, and see that the Text uses the fade transition

Kapture 2024-10-24 at 21 20 02

Anything else we should know?

This is probably related to #8005, but it is different, as that issue seems to deal with only subscenes; this issue is about any element inside the group.

derrod commented 3 hours ago

Working as expected. The group itself is being hidden, not the contained item(s), so their transitions aren't triggered. And it wouldn't make sense for that to be the case.

Edit: To elaborate why it doesn't make sense: The group could exist multiple times, or across multiple scenes, its items triggering the hide transition when the group is only hidden in one place wouldn't make sense.

vladdeSV commented 2 hours ago

Sorry, just double checking: why does the "Show Transition" apply when showing the group? It is inconsistent.

Just to make sure I am clear enough: I changed both the Text's transitions to Swipe, and set the group's transitions to Fade – why does the Text use it's showing transition when showing the group?

Kapture 2024-10-24 at 21 31 21

When showing the group, you can see the group's fade transition apply at the same time as the Text's showing transition. But when hiding, only the group's Fade is applied, and not the Text's Swipe.

vladdeSV commented 2 hours ago

(Just saw the edit in the previous post)

[…] its items triggering the hide transition when the group is only hidden in one place wouldn't make sense.

Then why does the items' show transition trigger when showing the group?

Fenrirthviti commented 1 hour ago

Probably just an oversight with how groups function internally. Everything is working correct with how they are implemented, it's just sometimes not what users expect.

Even though I wouldn't consider this a bug, probably worth keeping open for tracking as it's inconsistent behavior that should be corrected.

vladdeSV commented 48 minutes ago

Sorry for being pedantic, but these two statements confuse me:

Probably just an oversight Everything is working correct

Is it correct behavior that child items' "Show Transition" triggers, but not the child items' "Hide Transition"?

derrod commented 28 minutes ago

Is it correct behavior that child items' "Show Transition" triggers, but not the child items' "Hide Transition"?

The behaviour that show transitions are showing is not correct either. Neither transition should be triggered by hiding/showing the group but there might be some weirdness with how the visibility tracking works there.

vladdeSV commented 22 minutes ago

Thank you for clarifying 🙌


Personally (my opinion) I'd prefer if groups triggered both child show- and hide transitions. For instance, I am trying to create a group with the text "Ad break" and some graphics on my scene, which would have multiple items appear with different transitions.