Sha256: a9bba0bb53e36c04b5011c3e65d31b17134e07145d71bb17cf694f7aa39e3d15

Contents?: true

Size: 1.59 KB

Versions: 7

Compression:

Stored size: 1.59 KB

Contents

/*
---
 
script: Keypress.js
 
description: A wrapper to cross-browser keypress keyboard event implementation.
 
license: MIT-style license.
 
requires:
- Core/Element.Event
- Core/Event
- Event.KeyNames
 
provides: [Element.Events.keypress]
 
...
*/

(function() {
	Element.Events.keypress = {
		base: 'keydown',
		
		onAdd: function(fn) {
			if (!this.retrieve('keypress:listeners')) {
				var events = {
					keypress: function(e) {
						var event = new Event(e)//$extend({}, e);
						event.repeat = (event.code == this.retrieve('keypress:code'));
						event.code = this.retrieve('keypress:code');
						event.key = this.retrieve('keypress:key');
						event.type = 'keypress';
						event.from = 'keypress';
            if (event.repeat) this.fireEvent('keypress', event)
					}.bind(this),
					keyup: function() {
						this.eliminate('keypress:code');
						this.eliminate('keypress:key');
					}
				}
				this.store('keypress:listeners', events);
				for (var type in events) this.addListener(type, events[type]);
			}
		},
		
		onRemove: function() {
			var events = this.retrieve('keypress:listeners');
			for (var type in events) this.removeListener(type, events[type]);
			this.eliminate('keypress:listeners');
		},
		
		condition: function(event) {
		  var key = Event.Keys.keyOf(event.code) || event.key;
		  event.repeat = (key == this.retrieve('keypress:key'));
			this.store('keypress:code', event.code);
		  this.store('keypress:key', key);
			if (!event.firesKeyPressEvent(event.code))   {
				event.type = 'keypress';
				event.from = 'keypress';
				event.key = key;
			  return true;
			}
		}
	};
})();

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
lsd_rails-0.1.6 Packages/mootools-ext/Source/Element/Events/Keypress.js
lsd_rails-0.1.5 Packages/mootools-ext/Source/Element/Events/Keypress.js
lsd_rails-0.1.4 Packages/mootools-ext/Source/Element/Events/Keypress.js
lsd_rails-0.1.3 Packages/mootools-ext/Source/Element/Events/Keypress.js
lsd_rails-0.1.2 Packages/mootools-ext/Source/Element/Events/Keypress.js
lsd_rails-0.1.1 Packages/mootools-ext/Source/Element/Events/Keypress.js
lsd_rails-0.1 Packages/mootools-ext/Source/Element/Events/Keypress.js