Skip running trigger during cascade delete?
Short of disabling the trigger before executing your DELETE statement (which would affect all sessions and would only be appropriate if you are doing an off-hours bulk delete), setting a package variable (or defining your own context and setting a context variable) that your trigger reads is likely the cleanest option without reworking the existing application.  

When you have an action that generally needs to be done when a row in Y is deleted but not when Y is deleted because of the cascade delete, that is probably not an action that should be in a trigger in the first place.  It ought to be part of the stored procedure (or other API) that allows you do do "normal" deletes on Y.  Of course, that sort of refactoring may not be possible with a legacy application so you may be stuck with some of the less elegant workarounds.