Update of /cvsroot/dynapi/dynapi/src/lib/dynapi/event
In directory usw-pr-cvs1:/tmp/cvs-serv11661
Modified Files:
keyboard.js
Log Message:
KeyEvents should now bubble
Index: keyboard.js
===================================================================
RCS file: /cvsroot/dynapi/dynapi/src/lib/dynapi/event/keyboard.js,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** keyboard.js 2001/03/25 06:04:17 1.1
--- keyboard.js 2001/03/31 20:00:56 1.2
***************
*** 12,15 ****
--- 12,16 ----
this.DynEvent=DynEvent;
this.DynEvent();
+ this.bubble=true;
};
DynKeyEvent.prototype=new DynEvent();
***************
*** 17,39 ****
return this.charKey
};
DynKeyEvent.EventMethod = function(e) {
var dynobject=this.lyrobj;
if(is.def) {
- // We won't receive the event in IE. We have to go and get it from the
frame
if (is.ie) var e=dynobject.frame.event;
- // Netscape 6 and alikes
else if (e.eventPhase!=3) return;
! // Both NS6/Moz and IE
! e.cancelBubble=true;
}
-
if(is.def) var realsrc =
Methods.getContainerLayerOf(is.ie?e.srcElement:e.target) || dynobject
else if(is.ns4) var realsrc=e.target.lyrobj
!
! // Init event object
! var type = e.type
var evt=DynKeyEvent._e
-
- // Set properties
evt.src=realsrc;
evt.which=(is.ns4)?e.which:e.keyCode;
--- 18,39 ----
return this.charKey
};
+ DynKeyEvent.prototype.bubbleEvent=function() {
+ if (!this.bubble||this.src.isDynDocument||this.src.parent==null) return;
+ this.src=this.src.parent;
+ this.src.invokeEvent(this.type,this);
+ this.bubbleEvent();
+ return;
+ };
DynKeyEvent.EventMethod = function(e) {
var dynobject=this.lyrobj;
if(is.def) {
if (is.ie) var e=dynobject.frame.event;
else if (e.eventPhase!=3) return;
! e.cancelBubble=true;
}
if(is.def) var realsrc =
Methods.getContainerLayerOf(is.ie?e.srcElement:e.target) || dynobject
else if(is.ns4) var realsrc=e.target.lyrobj
! var type=e.type
var evt=DynKeyEvent._e
evt.src=realsrc;
evt.which=(is.ns4)?e.which:e.keyCode;
***************
*** 42,54 ****
evt.ctrlKey=(is.ns4)?(e.modifiers &
Event.CONTROL_MASK):(e.ctrlKey||e.ctrlLeft||e.keyCode==17);
evt.shiftKey=(is.ns4)?(e.modifiers &
Event.SHIFT_MASK):(e.shiftKey||e.shiftLeft||e.keyCode==16);
-
- // Pointer to original event object
evt.orig=e;
!
! // Invoke event
! realsrc.invokeEvent(type,evt);
!
! // Return to browser
! return e.browserReturn
};
DynKeyEvent._e=new DynKeyEvent();
--- 42,49 ----
evt.ctrlKey=(is.ns4)?(e.modifiers &
Event.CONTROL_MASK):(e.ctrlKey||e.ctrlLeft||e.keyCode==17);
evt.shiftKey=(is.ns4)?(e.modifiers &
Event.SHIFT_MASK):(e.shiftKey||e.shiftLeft||e.keyCode==16);
evt.orig=e;
! realsrc.invokeEvent(type,evt);
! evt.bubbleEvent();
! return e.browserReturn
};
DynKeyEvent._e=new DynKeyEvent();
***************
*** 76,81 ****
}
DynLayer.prototype.captureKeyEvents=function() {
! var elm = this.elm
! if(!elm) return
if(is.def&&!is.ie) {
this.elm.addEventListener("keydown",DynKeyEvent.EventMethod,false)
--- 71,75 ----
}
DynLayer.prototype.captureKeyEvents=function() {
! if(!this.elm) return
if(is.def&&!is.ie) {
this.elm.addEventListener("keydown",DynKeyEvent.EventMethod,false)
***************
*** 89,94 ****
}
DynLayer.prototype.releaseKeyEvents=function() {
! var elm = this.elm
! if(!elm) return
if(is.def&&!is.ie) {
this.elm.removeEventListener("keydown",DynKeyEvent.EventMethod,false)
--- 83,87 ----
}
DynLayer.prototype.releaseKeyEvents=function() {
! if(!this.elm) return
if(is.def&&!is.ie) {
this.elm.removeEventListener("keydown",DynKeyEvent.EventMethod,false)
***************
*** 101,107 ****
}
}
- /* Overwrite methods to support key events. No more addCodeToMethod */
! // Common
DynObject.prototype.assignKeyEvents = function() {
if (this.hasEventListeners) this.captureKeyEvents()
--- 94,99 ----
}
}
! /* Overwrite methods to support key events. */
DynObject.prototype.assignKeyEvents = function() {
if (this.hasEventListeners) this.captureKeyEvents()
***************
*** 139,141 ****
this.assignKeyEvents()
}
- // CH: removeAllEventListeners now happens in del() defined in listeners.js.
--- 131,132 ----
_______________________________________________
Dynapi-CVS mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/dynapi-cvs