Steps to Reproduce
Run fiddle
http://zkfiddle.org/sample/j6r7iq/2-Another-new-ZK-fiddle
Current Result
When notifications are instantiated, they receive a this.parent=ref; value (where this is the notification widget and ref is the target component)
This cause a number of issues with parent/children relationships.
For example, during notification.detach (when notification is closed or expires), the unlink method is called. Since the notification is not an actual child of the parent, it doesn't have the nextSibling and doesn't count toward parent.nChildren
As a result, the parent component no longer finds any of it's actual children, since unlink sets the parent firstChild to null and the nChildren to 0. (unlink thinks the notification is the only child, and since it is being removed, sets the parent as no child)
Other parent / child issues may appear
Expected Result
notification should either not interfere with parent / child relationships, or be treated as an actual child
Debug Information
To also check: popup and other similar widgets
Workaround
<script><![CDATA[ zk.afterLoad('zul.wgt', function() { var xNotification = {}; zk.override(zul.wgt.Notification.prototype, xNotification, { $init: function (owner, msg, opts) { this.$supers(zul.wgt.Notification, '$init', arguments); this.fakeParent = owner; //fake this._msg = msg; this._type = opts.type; this._ref = opts.ref; this._dur = opts.dur; this._closable = opts.closable; } });//zk.override });//zk.afterLoad ]]></script>