[richfaces-svn-commits] JBoss Rich Faces SVN: r11853 - trunk/ui/hotKey/src/main/resources/org/richfaces/renderkit/html/scripts.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Wed Dec 17 11:49:23 EST 2008


Author: nbelaevski
Date: 2008-12-17 11:49:23 -0500 (Wed, 17 Dec 2008)
New Revision: 11853

Modified:
   trunk/ui/hotKey/src/main/resources/org/richfaces/renderkit/html/scripts/jquery.hotkeys.js
Log:
https://jira.jboss.org/jira/browse/RF-5283

Modified: trunk/ui/hotKey/src/main/resources/org/richfaces/renderkit/html/scripts/jquery.hotkeys.js
===================================================================
--- trunk/ui/hotKey/src/main/resources/org/richfaces/renderkit/html/scripts/jquery.hotkeys.js	2008-12-17 16:45:54 UTC (rev 11852)
+++ trunk/ui/hotKey/src/main/resources/org/richfaces/renderkit/html/scripts/jquery.hotkeys.js	2008-12-17 16:49:23 UTC (rev 11853)
@@ -201,12 +201,46 @@
         this.all[targetData].events[opt.type].callbackMap[combi] =  {cb: callback, propagate:opt.propagate};                
         return jQuery;
 	};    
+	
+	this._deleteEmptyProperty = function(object, property) {
+		var nestedObject = object[property];
+
+		var name = "";
+		for (name in nestedObject) {
+			break;
+		}
+		
+		if (!name) {
+			delete object[property];
+		}
+	};
+	
     this.remove = function(exp, opt) {
         opt = opt || {};
         target = opt.target || jQuery('html')[0];
         type = opt.type || 'keydown';
 		exp = exp.toLowerCase();        
-        delete this.all[this._checkUniqueID(target)].events[type].callbackMap[exp]        
+		
+		var uniqueId = this._checkUniqueID(target);
+		if (uniqueId) {
+			var element = this.all[uniqueId];
+			if (element) {
+				var events = element['events'];
+				if (events) {
+					var event = events[type];
+					var callbackMap = event['callbackMap'];
+					
+					delete callbackMap[exp];
+				
+					this._deleteEmptyProperty(event, 'callbackMap');
+					this._deleteEmptyProperty(events, type);
+					this._deleteEmptyProperty(element, 'events');
+				}
+				
+				this._deleteEmptyProperty(this.all, uniqueId);
+			}
+		}
+		
         return jQuery;
 	};
     jQuery.hotkeys = this;




More information about the richfaces-svn-commits mailing list