From 1cb1b9cef7cfc4bd77c619f4ee55b5d3fc99419a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Scott=20Gonz=C3=A1lez?= Date: Fri, 11 Feb 2011 08:53:43 -0500 Subject: [PATCH] Widget: Handle super calls when method calls go up and down the inheritance chain. --- ui/jquery.ui.spinner.js | 9 ++------- ui/jquery.ui.widget.js | 12 +++++++++++- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/ui/jquery.ui.spinner.js b/ui/jquery.ui.spinner.js index 0219abb8b..6d4d10d51 100644 --- a/ui/jquery.ui.spinner.js +++ b/ui/jquery.ui.spinner.js @@ -285,16 +285,11 @@ $.widget('ui.spinner', { this.buttons.button("enable"); } } - // TODO see below - //this._super( "_setOption", key, value ); - $.Widget.prototype._setOption.apply( this, arguments ); + this._super( "_setOption", key, value ); }, _setOptions: function( options ) { - // TODO _super doesn't handle inheritance with more then one subclass - // spinner subclass will have spinner as base, calling spinner._setOptions infinitely - //this._super( "_setOptions", options ); - $.Widget.prototype._setOptions.apply( this, arguments ); + this._super( "_setOptions", options ); if ( "value" in options ) { this._format( this.options.value ); } diff --git a/ui/jquery.ui.widget.js b/ui/jquery.ui.widget.js index e09701d7b..0a4759023 100644 --- a/ui/jquery.ui.widget.js +++ b/ui/jquery.ui.widget.js @@ -66,9 +66,19 @@ $.widget = function( name, base, prototype ) { return base.prototype[ method ].apply( this, args ); }; return function() { + var __super = this._super, + __superApply = this._superApply, + returnValue; + this._super = _super; this._superApply = _superApply; - return value.apply( this, arguments ); + + returnValue = value.apply( this, arguments ); + + this._super = __super; + this._superApply = __superApply; + + return returnValue; }; }()); } -- 2.39.5