* Mono.Mozilla/DOM/Node.cs,
authorAndreia Gaita <avidigal@novell.com>
Thu, 23 Oct 2008 03:48:37 +0000 (03:48 -0000)
committerAndreia Gaita <avidigal@novell.com>
Thu, 23 Oct 2008 03:48:37 +0000 (03:48 -0000)
* Mono.Mozilla/DOM/Window.cs: Fix yet more equality operators

2008-10-23  Andreia Gaita  <shana@jitted.com>

svn path=/trunk/mcs/; revision=116834

mcs/class/Mono.WebBrowser/ChangeLog
mcs/class/Mono.WebBrowser/Mono.Mozilla/DOM/Node.cs
mcs/class/Mono.WebBrowser/Mono.Mozilla/DOM/Window.cs

index 1a05e739dab6968f3cf7277fe970e37c9dfb4d6b..acb6e5c6e3f4e2f00125bea2443c9c0d42dcc9fb 100644 (file)
@@ -1,3 +1,8 @@
+2008-10-23  Andreia Gaita  <shana@jitted.com>
+
+       * Mono.Mozilla/DOM/Node.cs,
+       * Mono.Mozilla/DOM/Window.cs: Fix yet more equality operators
+
 2008-10-23  Andreia Gaita  <shana@jitted.com>
 
        * Mono.Mozilla/DOM/Document.cs,
index a4144ec630ea222217f188789a60822fb3d6fe6f..f1527d445037c4f1a61bf8d86046311b38a3dd47 100644 (file)
@@ -375,8 +375,21 @@ namespace Mono.Mozilla.DOM
                
                #endregion
 
-               public override bool Equals (object obj) {
-                       return obj.GetHashCode () == this.GetHashCode ();
+               public override bool Equals (object obj)
+               {
+                       return this == obj as Node;
+               }
+               
+               public static bool operator == (Node left, Node right)
+               {
+                       if (left == null || right == null)
+                               return false;
+                       return left.hashcode == right.hashcode; 
+               }
+
+               public static bool operator != (Node left, Node right)
+               {
+                       return !(left == right);
                }               
                
                public override int GetHashCode () 
index 45b60fe30de93b3637d2b778efc1cfff4ab853a6..b5e6009ff8576450de7ba215a132f32df4b9dfb4 100644 (file)
@@ -36,9 +36,11 @@ namespace Mono.Mozilla.DOM
        {
                internal nsIDOMWindow window;
                private EventListener eventListener;
+               int hashcode;
                
                public Window(WebBrowser control, nsIDOMWindow domWindow) : base (control)
                {
+                       this.hashcode = domWindow.GetHashCode ();
                        this.window = domWindow;
                }
 
@@ -157,19 +159,11 @@ namespace Mono.Mozilla.DOM
                        EventListener.RemoveHandler (handler, eventName);
                }
                
-               public override bool Equals (object obj) {
-                       return obj.GetHashCode () == this.GetHashCode ();
-               }
-
                public void Focus () {
                        nsIWebBrowserFocus focus = (nsIWebBrowserFocus) this.window;
                        focus.setFocusedWindow (this.window);
                }
                
-               public override int GetHashCode () {
-                       return this.window.GetHashCode ();
-               }
-               
                public void Open (string url)
                {
                        nsIWebNavigation webnav = (nsIWebNavigation) this.window;                       
@@ -180,6 +174,28 @@ namespace Mono.Mozilla.DOM
                {
                        this.window.scrollTo (x, y);
                }
+               
+               public override bool Equals (object obj)
+               {
+                       return this == obj as Window;
+               }
+               
+               public static bool operator == (Window left, Window right)
+               {
+                       if (left == null || right == null)
+                               return false;
+                       return left.hashcode == right.hashcode; 
+               }
+
+               public static bool operator != (Window left, Window right)
+               {
+                       return !(left == right);
+               }
+
+               public override int GetHashCode () {
+                       return hashcode;
+               }               
+               
 #endregion
 
 #region Events