X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=_source%2Fcore%2Fdom%2Fevent.js;h=379e7b980f5a909eda711b5fdb681e7eba7c6045;hb=fb481ba0a7d298e3e7b9034fcb9f2afdc6e8e796;hp=765c82c4497fa2480c9a02aece1d150555629e9e;hpb=ea7e3453c7b0f023b050aca6d9f83ab372860d91;p=ckeditor.git diff --git a/_source/core/dom/event.js b/_source/core/dom/event.js index 765c82c..379e7b9 100644 --- a/_source/core/dom/event.js +++ b/_source/core/dom/event.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.html or http://ckeditor.com/license */ @@ -87,13 +87,18 @@ CKEDITOR.dom.event.prototype = $.returnValue = false; if ( stopPropagation ) - { - if ( $.stopPropagation ) - $.stopPropagation(); - else - $.cancelBubble = true; - } + this.stopPropagation(); }, + + stopPropagation : function() + { + var $ = this.$; + if ( $.stopPropagation ) + $.stopPropagation(); + else + $.cancelBubble = true; + }, + /** * Returns the DOM node where the event was targeted to. * @returns {CKEDITOR.dom.node} The target DOM node. @@ -112,26 +117,49 @@ CKEDITOR.dom.event.prototype = { var rawNode = this.$.target || this.$.srcElement; return rawNode ? new CKEDITOR.dom.node( rawNode ) : null; + }, + + /** + * Retrieves the coordinates of the mouse pointer relative to the top-left + * corner of the document, in mouse related event. + * @returns {Object} The object contains the position. + * @example + * element.on( 'mousemouse', function( ev ) + * { + * var pageOffset = ev.data.getPageOffset(); + * alert( pageOffset.x ); // page offset X + * alert( pageOffset.y ); // page offset Y + * }); + */ + getPageOffset : function() + { + var doc = this.getTarget().getDocument().$; + var pageX = this.$.pageX || this.$.clientX + ( doc.documentElement.scrollLeft || doc.body.scrollLeft ); + var pageY = this.$.pageY || this.$.clientY + ( doc.documentElement.scrollTop || doc.body.scrollTop ); + return { x : pageX, y : pageY }; } }; +// For the followind constants, we need to go over the Unicode boundaries +// (0x10FFFF) to avoid collision. + /** - * CTRL key (1000). + * CTRL key (0x110000). * @constant * @example */ -CKEDITOR.CTRL = 1000; +CKEDITOR.CTRL = 0x110000; /** - * SHIFT key (2000). + * SHIFT key (0x220000). * @constant * @example */ -CKEDITOR.SHIFT = 2000; +CKEDITOR.SHIFT = 0x220000; /** - * ALT key (4000). + * ALT key (0x440000). * @constant * @example */ -CKEDITOR.ALT = 4000; +CKEDITOR.ALT = 0x440000;