docs: function(down, key, c, code, sig) {
  		var type, msg, arg;
  		type = gui.Key.$key[code] || c;
  		type = type === " " ? gui.Key.SPACE : type;
  		msg = gui.BROADCAST_KEYEVENT;
  		arg = {
  			down: down,
  			type: type
  		};
  		/*
  		 * Never broadcast same message twice. Fixes something about Firefox
  		 * registering multiple keystrokes on certain chars (notably the 's').
  		 */
  		var snapshot = JSON.stringify(arg);
  		if (snapshot !== this._snapshot) {
  			gui.Broadcast.dispatch(msg, arg, sig); // do we want this?
  			gui.Broadcast.dispatchGlobal(msg, arg);
  			this._snapshot = snapshot;
  		}
  	}