diff --git a/ui (gen4)/features/ui-widgets.js b/ui (gen4)/features/ui-widgets.js index 16320527..4ad73f58 100755 --- a/ui (gen4)/features/ui-widgets.js +++ b/ui (gen4)/features/ui-widgets.js @@ -315,8 +315,14 @@ module.makeUIContainer = function(make){ return uiContainer(function(){ var o = make.apply(this, arguments) - // notify the client that we are closing... - o.close(function(){ o.client.trigger('close') }) + o + // notify the client that we are closing... + .close(function(){ o.client.trigger('close') }) + .client + // NOTE: strictly this is the responsibility of the client + // but it is less error prone to just in case also do + // this here... + .on('close', function(evt){ evt.stopPropagation() }) return o }) diff --git a/ui (gen4)/lib/widget/browse.js b/ui (gen4)/lib/widget/browse.js index 82d1a84f..368826a8 100755 --- a/ui (gen4)/lib/widget/browse.js +++ b/ui (gen4)/lib/widget/browse.js @@ -2155,10 +2155,6 @@ var BrowserPrototype = { setTimeout(function(){ that.update(options.path || that.path || '/') }, 0) - if(this.options.nonPropagatedEvents != null){ - this.on(this.options.nonPropagatedEvents.join(' '), - function(evt){ evt.stopPropagation() }) - } }, } diff --git a/ui (gen4)/lib/widget/drawer.js b/ui (gen4)/lib/widget/drawer.js index 01c1191b..7b8584bb 100755 --- a/ui (gen4)/lib/widget/drawer.js +++ b/ui (gen4)/lib/widget/drawer.js @@ -20,9 +20,6 @@ var DrawerClassPrototype = { var that = this var overlay = $('
') .addClass('drawer-widget') - .on(options.nonPropagatedEvents.join(' '), function(){ - event.stopPropagation() - }) .append($('
') .addClass('content') .click(function(){ @@ -58,6 +55,8 @@ var DrawerPrototype = { nonPropagatedEvents: [ 'click', 'keydown', + + 'close', ], background: null, diff --git a/ui (gen4)/lib/widget/widget.js b/ui (gen4)/lib/widget/widget.js index 76c662d3..6ecb8cfd 100755 --- a/ui (gen4)/lib/widget/widget.js +++ b/ui (gen4)/lib/widget/widget.js @@ -66,6 +66,8 @@ var WidgetPrototype = { nonPropagatedEvents: [ 'click', 'keydown', + + 'close', ], }, @@ -121,6 +123,11 @@ var WidgetPrototype = { this)) } + if(this.options.nonPropagatedEvents != null){ + this.on(this.options.nonPropagatedEvents.join(' '), + function(evt){ evt.stopPropagation() }) + } + return this }, } @@ -185,6 +192,11 @@ var ContainerPrototype = { this)) } + if(this.options.nonPropagatedEvents != null){ + this.on(this.options.nonPropagatedEvents.join(' '), + function(evt){ evt.stopPropagation() }) + } + return this }, }