Fix determination of base of contextmenu
authorMichael M Slusarz <slusarz@curecanti.org>
Wed, 21 Oct 2009 08:59:16 +0000 (02:59 -0600)
committerMichael M Slusarz <slusarz@curecanti.org>
Wed, 21 Oct 2009 09:01:31 +0000 (03:01 -0600)
imp/js/ContextSensitive.js

index 989dbef..5cc2edf 100644 (file)
@@ -161,9 +161,9 @@ var ContextSensitive = Class.create({
                     return;
                 }
             }
-            elt_up = elt.up();
+            elt_up = elt.up('.contextMenu');
 
-            if (elt_up && elt_up.hasClassName('contextMenu')) {
+            if (elt_up) {
                 e.stop();
 
                 if (elt.hasClassName('contextSubmenu') &&
@@ -320,11 +320,11 @@ var ContextSensitive = Class.create({
 
         var cm = this.currentmenu(),
             elt = e.element(),
-            elt_up = elt.up(),
+            elt_up = elt.up('.contextMenu'),
             id = elt.readAttribute('id'),
             id_div, offsets, sub, voffsets, x, y;
 
-        if (elt_up == document) {
+        if (!elt_up) {
             return;
         }
 
@@ -346,7 +346,6 @@ var ContextSensitive = Class.create({
                 elt.addClassName('contextHover');
             }
         } else if ((this.current.size() > 1) &&
-                   elt_up.hasClassName('contextMenu') &&
                    id_div != cm) {
             this._closeMenu(this.current.indexOf(id));
         }