From 232da5dde03ae774980c9800950e60f3f4468c68 Mon Sep 17 00:00:00 2001
From: John Resig <jeresig@gmail.com>
Date: Sat, 23 Dec 2006 06:17:16 +0000
Subject: [PATCH] Added back in Joern's changes - oops! Let me know if I
 missed any.

---
 src/jquery/jquery.js |   30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js
index af72969..358c165 100644
--- a/src/jquery/jquery.js
+++ b/src/jquery/jquery.js
@@ -162,6 +162,8 @@ var $ = jQuery;
  * technically, chainable - there really isn't much use for chaining against it.
  * You can have as many $(document).ready events on your page as you like.
  *
+ * See ready(Function) for details about the ready event. 
+ * 
  * @example $(function(){
  *   // Document is ready
  * });
@@ -2100,9 +2102,6 @@ jQuery.extend({
 
 			event = jQuery.event.fix( event || window.event || {} ); // Empty object is for triggered events with no data
 
-			// If no correct event was found, fail
-			if ( !event ) return false;
-
 			var returnValue = true;
 
 			var c = this.events[event.type];
@@ -2125,20 +2124,19 @@ jQuery.extend({
 		},
 
 		fix: function(event) {
-			// check IE
-			if(jQuery.browser.msie) {
-				// fix target property, if available
-				// check prevents overwriting of fake target coming from trigger
-				if(event.srcElement)
-					event.target = event.srcElement;
-					
-				// calculate pageX/Y
+			// Fix target property, if necessary
+			if ( !event.target && event.srcElement )
+				event.target = event.srcElement;
+
+			// Calculate pageX/Y if missing and clientX/Y available
+			if ( typeof event.pageX == "undefined" && typeof event.clientX != "undefined" ) {
 				var e = document.documentElement, b = document.body;
 				event.pageX = event.clientX + (e.scrollLeft || b.scrollLeft);
 				event.pageY = event.clientY + (e.scrollTop || b.scrollTop);
+			}
 					
-			// check safari and if target is a textnode
-			} else if(jQuery.browser.safari && event.target.nodeType == 3) {
+			// Check safari and if target is a textnode
+			if ( jQuery.browser.safari && event.target.nodeType == 3 ) {
 				// target is readonly, clone the event object
 				event = jQuery.extend({}, event);
 				// get parentnode from textnode
@@ -2146,15 +2144,17 @@ jQuery.extend({
 			}
 			
 			// fix preventDefault and stopPropagation
-			if (!event.preventDefault)
+			if (!event.preventDefault) {
 				event.preventDefault = function() {
 					this.returnValue = false;
 				};
+			}
 				
-			if (!event.stopPropagation)
+			if (!event.stopPropagation) {
 				event.stopPropagation = function() {
 					this.cancelBubble = true;
 				};
+			}
 				
 			return event;
 		}
-- 
1.7.10.4