Fix some issues with user flags in dimp
authorMichael M Slusarz <slusarz@curecanti.org>
Wed, 8 Apr 2009 22:28:02 +0000 (16:28 -0600)
committerMichael M Slusarz <slusarz@curecanti.org>
Wed, 8 Apr 2009 22:28:16 +0000 (16:28 -0600)
imp/js/src/ContextSensitive.js
imp/js/src/DimpBase.js

index bd4e130..ec601e6 100644 (file)
@@ -143,6 +143,9 @@ var ContextSensitive = Class.create({
         // Check for click in open contextmenu.
         if (this.current.size()) {
             elt = e.element();
+            if (!elt.match('A')) {
+                elt = elt.up('A');
+            }
             elt_up = elt.up();
 
             if (elt_up.hasClassName('contextMenu')) {
index b882c57..646c820 100644 (file)
@@ -737,16 +737,9 @@ var DimpBase = {
             break;
 
         default:
-            if (menu == 'ctx_message_setflag' ||
-                menu == 'ctx_draft_setflag' ||
-                menu == 'oa_setflag') {
+            if (menu.endsWith('_setflag') || menu.endsWith('_unsetflag')) {
                 flag = elt.readAttribute('flag');
-                this.flag(flag, this.convertFlag(flag, true));
-            } else if (menu == 'ctx_message_unsetflag' ||
-                       menu == 'ctx_draft_unsetflag' ||
-                       menu == 'oa_unsetflag') {
-                flag = elt.readAttribute('flag');
-                this.flag(flag, this.convertFlag(flag, false));
+                this.flag(flag, this.convertFlag(flag, menu.endsWith('_setflag')));
             } else {
                 parentfunc(elt, baseelt, menu);
             }
@@ -2176,7 +2169,7 @@ var DimpBase = {
     flag: function(flag, set, opts)
     {
         opts = opts || {};
-        var flags = [ (opts.set ? '' : '-') + flag ];
+        var flags = [ (set ? '' : '-') + flag ];
             vs = this._getFlagSelection(opts);
 
         if (!vs.size()) {