I think this is not a problem with the event.js patch but with the actual inline.js I
never got it to work properly in ns 6 .
So I think we should be looking at that ..
I didn't test the patch yet but it makes a lot of sense to me
ciao
Y
On Tue, 23 January 2001, "Richard Bennett" wrote:
>
> Hi,
> I tested it a little, and found that events do not work for inline layers in
> NS6
>
> Cheers,
> Richard Bennett
>
> [EMAIL PROTECTED]
> www.richardinfo.com
> (Everything running on, and ported to the 19/12/2000 snapshot of DynAPI2)
>
> ----- Original Message -----
> From: "labCoat" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Tuesday, January 23, 2001 9:12 AM
> Subject: [Dynapi-Dev] NS6 events and contentWH
>
>
> > Hello all!
> >
> > I recently revised the latest (CVS) version of events.js, and have events
> working properly in IE5, IE55, NS4, and NS6 (I don't have IE4, but I am
> almost positive that it will work in it).
> >
> > It would be great if anyone would like to plug this into their version of
> the API and take it for a test drive! (Also, I would appriciate any
> feedback!)
> >
> > Now, I made A LOT of modifications/optimizations, and I haven't commented
> everything, so please don't get angry for the lack of comments... ;-)
> >
> > Here goes...
> >
> > <!--//
> >
> > /*
> > DynAPI Distribution
> > Event Classes
> > Modified: 2001.01.23
> >
> > The DynAPI Distribution is distributed under the terms of the GNU LGPL
> license.
> > */
> >
> > /*----------------------------------------------------------------------
> > -- CLASS: DynEvent
> > -- ARGUMENTS: type,src,target
> > -- METHODS: getType(), getSource(), getTarget()
> > ----------------------------------------------------------------------*/
> > DynEvent=function(type,src,target) {
> > this.type=type;
> > this.src=src;
> > this.target=target;
> > };
> > DynEvent.prototype.getType=function() {
> > return this.type;
> > };
> > DynEvent.prototype.getSource=function() {
> > return this.src;
> > };
> > DynEvent.prototype.getTarget=function() {
> > return this.target;
> > };
> >
> >
> > /*----------------------------------------------------------------------
> > -- CLASS: EventListener
> > -- ARGUMENTS: target
> > -- METHODS: handleEvent()
> > ----------------------------------------------------------------------*/
> > EventListener=function(target) {
> > this.target=target;
> > }
> > EventListener.prototype.handleEvent=function(type,e) {
> > if ((e.button==2 || e.button==3) && (type=='mousedown' || type=='mouseup'
> || type=='click' || type=='dblclick')) {
> > if (e.button==2) type='md'+type;
> > if (e.button==3) type='rt'+type;
> > e.type=type; //ADDED:proteanman
> > }
> > if (this["on"+type]) {
> > if (is.ns5) {
> > var mse=(type.match(/mouse/) || type.match(/click/));
> > if (!mse || (!isNaN(e.eventPhase) && ((e.src.isDynLayer &&
> (e.eventPhase==1 || e.eventPhase==2)) || (e.src.isDynDocument &&
> e.eventPhase==3)))) this["on"+type](e);
> > } else this["on"+type](e);
> > }
> > };
> >
> > /*----------------------------------------------------------------------
> > -- CLASS: MouseEvent
> > -- ARGUMENTS: none
> > -- METHODS: getType(), getSource(), getTarget(), setEvent(),
> > bubbleEvent(), getX(), getY(), getPageX(), getPageY(),
> > setBubble(), cancelBrowserEvent()
> > ----------------------------------------------------------------------*/
> > MouseEvent=function() {};
> > MouseEvent.prototype.getType=function() {
> > return this.type;
> > };
> > MouseEvent.prototype.getSource=function() {
> > return this.src;
> > };
> > MouseEvent.prototype.getTarget=function() {
> > return this.target;
> > };
> > MouseEvent.prototype.setEvent=function(src,e) {
> > this.orig=e;
> > this.browserReturn=true;
> > this.bubble=true;
> > this.src=src;
> > this.type=e.type;
> >
> > if (is.ie) {
> > //Set event's mouse's x/y & pageX/pageY coords
> > this.pageX=e.x+document.body.scrollLeft;
> > this.pageY=e.y+document.body.scrollTop;
> > this.x=e.offsetX;
> > this.y=e.offsetY;
> >
> > //Set event mouse button
> > var b=e.button;
> > if (b==2) b=3;
> > else if (b==4) b=2;
> > this.button=b;
> >
> > //Set mouse event's modifiers
> > this.altKey=(e.altKey || e.altLeft);
> > this.ctrlKey=(e.ctrlKey || e.ctrlLeft);
> > this.shiftKey=(e.shiftKey || e.shiftLeft);
> > } else {
> > //ADDED: proteanman -- adds events eventphase property for ns5
> > if (is.ns5) this.eventPhase=e.eventPhase;
> >
> > //Set event's mouse's x/y & pageX/pageY coords
> > this.pageX=e.pageX-window.pageXOffset;
> > this.pageY=e.pageY-window.pageYOffset;
> > this.x=e.layerX;
> > this.y=e.layerY;
> >
> > //Set event mouse button
> > this.button=e.which;
> >
> > //Set mouse event's modifiers
> > var m=e.modifiers;
> > this.altKey=(m==1 || m==3 || m==5 || m==7);
> > this.ctrlKey=(m==2 || m==3 || m==6 || m==7);
> > this.shiftKey=(m==4 || m==5 || m==6 || m==7);
> > }
> > };
> > MouseEvent.prototype.bubbleEvent=function() {
> > if (!this.bubble || this.src.isDynDocument || this.src.parent==null)
> return;
> > this.x+=this.src.x;
> > this.y+=this.src.y;
> > this.src=this.src.parent;
> > this.src.invokeEvent(this.type,this);
> > this.bubbleEvent();
> > return;
> > };
> > MouseEvent.prototype.getX=function() {
> > return this.x;
> > };
> > MouseEvent.prototype.getY=function() {
> > return this.y;
> > };
> > MouseEvent.prototype.getPageX=function() {
> > return this.pageX;
> > };
> > MouseEvent.prototype.getPageY=function() {
> > return this.pageY;
> > };
> > MouseEvent.prototype.setBubble=function(b) {
> > this.bubble=b;
> > };
> > MouseEvent.prototype.cancelBrowserEvent=function(b) {
> > this.browserReturn=false;
> > };
> >
> > /*----------------------------------------------------------------------
> > -- DynLayer Event Methods
> > ----------------------------------------------------------------------*/
> > DynLayer.prototype.captureMouseEvents=function() {
> > if (this.isDynDocument && this.mouseEventsCaptured) return;
> > this.mouseEventsCaptured=true;
> >
> > if (!this.eventListeners) this.eventListeners=[];
> > this.hasEventListeners=true;
> >
> > if (this.isDynLayer && (!this.created || !this.elm)) return;
> >
> > var o=(this.isDynDocument)?this.doc:this.elm;
> >
> > if (is.ns4) {
> > if (this.isDynLayer) o.captureEvents(Event.MOUSEOVER |
> Event.MOUSEMOVE | Event.MOUSEDOWN | Event.MOUSEUP | Event.CLICK |
> Event.DBLCLICK | Event.MOUSEOUT);
> > else if (this.isDynDocument) o.captureEvents(Event.MOUSEMOVE |
> Event.MOUSEDOWN | Event.MOUSEUP | Event.CLICK | Event.DBLCLICK);
> > } else if (is.ie) {
> > o.oncontextmenu=function() {
> > return false;
> > };
> > }
> >
> > if (is.ns5) {
> > if (this.isDynLayer) {
> > //true (bubble phase - from src to window): eventPhase = 1 to
> 2
> >
> o.addEventListener("mouseover",DynLayer.prototype.EventMethod,true);
> >
> o.addEventListener("mousemove",DynLayer.prototype.EventMethod,true);
> >
> o.addEventListener("mousedown",DynLayer.prototype.EventMethod,true);
> >
> o.addEventListener("mouseup",DynLayer.prototype.EventMethod,true);
> >
> o.addEventListener("click",DynLayer.prototype.EventMethod,true);
> >
> o.addEventListener("dblclick",DynLayer.prototype.EventMethod,true);
> >
> o.addEventListener("mouseout",DynLayer.prototype.EventMethod,true);
> > } else if (this.isDynDocument) {
> > //false (capture phase - from window to src): eventPhase = 3
> >
> o.addEventListener("mousemove",DynDocument.prototype.EventMethod,false);
> >
> o.addEventListener("mousedown",DynDocument.prototype.EventMethod,false);
> >
> o.addEventListener("mouseup",DynDocument.prototype.EventMethod,false);
> >
> o.addEventListener("click",DynDocument.prototype.EventMethod,false);
> >
> o.addEventListener("dblclick",DynDocument.prototype.EventMethod,false);
> > }
> > } else {
> > if (this.isDynLayer)
> o.onmouseover=o.onmousemove=o.onmousedown=o.onmouseup=o.onclick=o.ondblclick
> =o.onmouseout=DynLayer.prototype.EventMethod;
> > else if (this.isDynDocument)
> o.onmousemove=o.onmousedown=o.onmouseup=o.onclick=o.ondblclick=DynDocument.p
> rototype.EventMethod;
> > }
> > };
> > DynLayer.prototype.releaseMouseEvents=function() {
> > this.mouseEventsCaptured=false;
> > if (this.isDynLayer) {
> > var o=this.elm;
> >
> o.onmouseover=o.onmousemove=o.onmousedown=o.onmouseup=o.onclick=o.ondblclick
> =o.onmouseout=function(e) {
> > return false;
> > };
> > } else if (this.isDynDocument) {
> > var o=this.doc;
> >
> o.onmousemove=o.onmousedown=o.onmouseup=o.onclick=o.ondblclick=function(e) {
> > return false;
> > };
> > }
> > };
> > DynLayer.prototype.EventMethod=function(e) {
> > var dyndoc=this.lyrobj.dyndoc;
> > if (is.ie) {
> > var e=dyndoc.elm.event;
> > e.cancelBubble=true;
> > if (e.type=="click" && DynAPI.wasDragging) {
> > DynAPI.wasDragging=false;
> > return true;
> > }
> > if ((e.type=="mouseout" && this.contains(e.toElement)) ||
> (e.type=="mouseover" && this.contains(e.fromElement))) return true;
> > }
> >
> > var
> realsrc=(is.ie)?e.srcElement:(is.ns5)?e.currentTarget:e.target;//var
> realsrc=(is.ie)?e.srcElement:e.target;
> >
> > if (is.ie) while (!realsrc.lyrobj && realsrc.parentElement &&
> realsrc.parentElement!=realsrc) realsrc=realsrc.parentElement;//for (; is.ie
> && !realsrc.lyrobj && realsrc.parentElement &&
> realsrc.parentElement!=realsrc; realsrc=realsrc.parentElement);
> > else if (is.ns5) while (!realsrc.lyrobj && realsrc.parentNode &&
> realsrc.parentNode!=realsrc) realsrc=realsrc.parentNode;
> >
> > var src=realsrc.lyrobj||dyndoc;
> > if (!src) return true;
> > var evt=dyndoc._e;
> > evt.setEvent(src,e);
> > var type=evt.type;
> > src.invokeEvent(type,evt);
> >
> > if (!this.isDynDocument && is.ns && (e.type=="mouseover" ||
> e.type=="mouseout")) return false;
> >
> > evt.bubbleEvent();
> >
> > //returns false after double-click, so that the click event doesn't
> happen again (it happens before) after the double-click -- works all but ns5
> > if (type.match(/dblclick/)) return false;
> >
> > //checks for mousedown so that clicks will get fired in ns4
> > else if (is.ns4 && evt.button!=3 && type.match(/mousedown/)) return
> true;
> >
> > //checks if there is a right-mousedown(ns4) || right-mouseup(ns5) and
> prevents the right-mouse menu from popping up
> > else if ((is.ns4 && evt.button==3 && type.match(/mousedown/)) ||
> (is.ns5 && evt.button==3 && type.match(/mouseup/))) return false;
> > else return evt.browserReturn;
> > };
> > DynLayer.prototype.addEventListener=function(listener) {
> > if (!this.hasEventListeners) this.captureMouseEvents();
> > for (var i in this.eventListeners) {
> > if (this.eventListeners[i]==listener) return;
> > }
> > this.eventListeners[this.eventListeners.length]=listener;
> > };
> > DynLayer.prototype.removeEventListener=function(listener) {
> > DynAPI.removeFromArray(this.eventListeners, listener, false);
> > };
> > DynLayer.prototype.removeAllEventListeners=function() {
> > if (!this.hasEventListeners) return;
> > for (var i in this.eventListeners) delete this.eventListeners[i];
> > this.eventListeners=[];
> > this.hasEventListeners=false;
> > };
> > DynLayer.prototype.invokeEvent=function(type,e) {
> > if (!this.hasEventListeners) return;
> >
> > if (is.ie && this.isDynLayer && ((type=='mouseover' &&
> this.elm.contains(e.orig.fromElement)) || (type=='mouseout' &&
> this.elm.contains(e.orig.toElement)))) return;
> >
> > var orig=null;
> > if (is.ns && e) {
> > orig=e.orig;
> > e.cancelBubble=false;
> > }
> > if (is.ns4 && is.platform=='other' && type.match(/mousedown/)) {
> > if (this.dbltimer!=null) {
> > type="dblclick";
> > if (e) e.type=type;
> > } else this.dbltimer=setTimeout(this+'.dbltimer=null',300);
> > }
> > for (var i=0; i<this.eventListeners.length; i++) {
> > if (e) e.target=this.eventListeners[i].target;
> > else {
> > e=new DynEvent(type,this);
> > e.target=this.eventListeners[i].target;
> > if (is.ns) e.cancelBubble=false;
> > }
> > this.eventListeners[i].handleEvent(type,e);
> > }
> >
> > if (is.ns && ((this.isDynLayer && e) || (this.isDynDocument && (e ||
> i!=0)))) {
> > if (e.cancelBubble) return;
> > if (orig && orig.target.handleEvent) {
> > if (this.isDynLayer && orig.target!=this.elm)
> orig.target.handleEvent(type,orig);
> > else if (this.isDynDocument && !orig.target.URL)
> orig.target.handleEvent(orig);
> > }
> > }
> > if (is.ns4 && is.platform=='other' && type=='mouseup')
> this.invokeEvent('click',e);
> > if (this.isDynLayer && this.parentComponent) {
> > if (e) e.src=this.parentComponent;
> > else e=new DynEvent(type,this);
> > this.parentComponent.invokeEvent(type,e);
> > }
> > };
> >
> > /*----------------------------------------------------------------------
> > -- DynDocument Event Methods
> > ----------------------------------------------------------------------*/
> > DynDocument.prototype._e=new MouseEvent();
> >
> DynDocument.prototype.captureMouseEvents=DynLayer.prototype.captureMouseEven
> ts;
> >
> DynDocument.prototype.releaseMouseEvents=DynLayer.prototype.releaseMouseEven
> ts;
> > DynDocument.prototype.EventMethod=DynLayer.prototype.EventMethod;
> >
> DynDocument.prototype.addEventListener=DynLayer.prototype.addEventListener;
> >
> DynDocument.prototype.removeEventListener=DynLayer.prototype.removeEventList
> ener;
> >
> DynDocument.prototype.removeAllEventListeners=DynLayer.prototype.removeAllEv
> entListeners;
> > DynDocument.prototype.invokeEvent=DynLayer.prototype.invokeEvent;
> >
> > //-->
> >
> > I have also made A LOT of modifications to dynlayer.js, which fixes some
> of the existing problems, including tge contentW/H (specifically in NS4 and
> NS6, in the createElement). But it is still undergoing evtensive testing.
> >
> > I need to set up CVS on my computer, so that I can make these updates
> soon.
> >
> > --proteanman
> >
> > On Mon, 22 January 2001, [EMAIL PROTECTED] wrote:
> >
> > >
> > > I tried your patch and still doubleclick on ns 6 doesn't work
> > > ciao
> > > Y
> > > On Mon, 22 January 2001, [EMAIL PROTECTED] wrote:
> > >
> > > >
> > > > Patch #103359 has been updated.
> > > >
> > > > Project: dynapi
> > > > Category: DynAPI-Event
> > > > Status: Open
> > > > Submitted by: camhart
> > > > Assigned to : nobody
> > > > Summary: NS6 event fixes
> > > >
> > > > Follow-Ups:
> > > >
> > > > Date: 2001-Jan-22 19:55
> > > > By: nobody
> > > >
> > > > Comment:
> > > > Tested and working
> > > > Richard Bennett
> > > > -------------------------------------------------------
> > > >
> > > > -------------------------------------------------------
> > > > For more info, visit:
> > > >
> > > >
> http://sourceforge.net/patch/?func=detailpatch&patch_id=103359&group_id=5757
> > > >
> > > > _______________________________________________
> > > > Dynapi-Dev mailing list
> > > > [EMAIL PROTECTED]
> > > > http://lists.sourceforge.net/lists/listinfo/dynapi-dev
> > >
> > >
> > >
> > > _______________________________________________
> > > Dynapi-Dev mailing list
> > > [EMAIL PROTECTED]
> > > http://lists.sourceforge.net/lists/listinfo/dynapi-dev
> >
> > _______________________________________________
> > Dynapi-Dev mailing list
> > [EMAIL PROTECTED]
> > http://lists.sourceforge.net/lists/listinfo/dynapi-dev
> > ____________________________________________________________
> > Get your free domain name and domain-based e-mail from
> > Namezero.com. New! Namezero Plus domains now available.
> > Find out more at: http://www.namezero.com
> >
>
>
> _______________________________________________
> Dynapi-Dev mailing list
> [EMAIL PROTECTED]
> http://lists.sourceforge.net/lists/listinfo/dynapi-dev
_______________________________________________
Dynapi-Dev mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/dynapi-dev