patches/thunderbird3-28-sync-toolbar.diff
author rohinis
Tue, 29 Nov 2011 17:32:55 +0000
branchs11express-2010-11
changeset 22234 c23e64da3e06
parent 17261 7bc349a36380
permissions -rw-r--r--
2011-11-29 Rohini S <[email protected]> * patches/Python26-22-audio.diff: Fixes CVE-2010-1634 * specs/SUNWPython26.spec: Fixes CR 7085446
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
17261
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
     1
diff -r 77f7d8c11ea7 mail/base/content/mailCore.js
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
     2
--- a/mail/base/content/mailCore.js	Tue Dec 29 05:27:57 2009 +0100
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
     3
+++ b/mail/base/content/mailCore.js	Thu Dec 31 13:07:59 2009 +0800
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
     4
@@ -137,16 +137,85 @@ function CustomizeMailToolbar(toolboxId,
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
     5
     wintype = wintype.replace(/:/g, "");
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
     6
 
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
     7
     window.openDialog(customizeURL,
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
     8
                       "CustomizeToolbar"+wintype,
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
     9
                       "chrome,all,dependent", toolbox);
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    10
   }
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    11
 }
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    12
 
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    13
+var MailToolbarObserver = {
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    14
+   observe: function(subject,topic,data) {
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    15
+     if ( topic != "mail:updateToolbarItems")
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    16
+       return;
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    17
+
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    18
+     var current_toolbarset_ids,original_toolbarset_ids,item;
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    19
+
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    20
+     current_toolbarset_ids = this.toolbar.currentSet.split(",");
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    21
+     original_toolbarset_ids= this.original_toolbarset.split(",");
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    22
+
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    23
+
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    24
+     // Only need to update new toolbar items
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    25
+     for ( var i = 0; i< current_toolbarset_ids.length; i++)
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    26
+     {
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    27
+        for (var j = 0; j < original_toolbarset_ids.length; j++)
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    28
+           if (current_toolbarset_ids[i] == original_toolbarset_ids[j])
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    29
+             break;
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    30
+      
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    31
+        if ( j != original_toolbarset_ids.length)
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    32
+           continue;
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    33
+
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    34
+        // item is a toolbar item just added 
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    35
+        item = document.getElementById(current_toolbarset_ids[i]);
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    36
+        SyncWithObservers(item);
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    37
+     }
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    38
+
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    39
+     //Unregist 
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    40
+     var observerService = Components.classes["@mozilla.org/observer-service;1"]
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    41
+                     .getService(Components.interfaces.nsIObserverService);
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    42
+     observerService.removeObserver(this, "mail:updateToolbarItems" );
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    43
+   }
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    44
+}
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    45
+
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    46
+//if the root has an "observe" attribute,
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    47
+// its "disabled" attribute should be synced with the observed element.
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    48
+function SyncWithObservers(root)
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    49
+{
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    50
+  var observed_item_id, observed_item;
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    51
+  var children,disabled;
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    52
+
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    53
+  if (!root)
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    54
+    return;
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    55
+
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    56
+  observed_item_id = root.observes;
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    57
+  if (observed_item_id)
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    58
+  {
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    59
+    observed_item = document.getElementById(observed_item_id);
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    60
+    disabled = observed_item.getAttribute("disabled");
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    61
+    if (disabled)
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    62
+      root.disabled = true;
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    63
+    else 
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    64
+      root.disabled = false;
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    65
+  }
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    66
+
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    67
+  children = root.childNodes;
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    68
+  for ( var i = 0; i < children.length; i++)
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    69
+      SyncWithObservers(children[i]);
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    70
+}
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    71
+
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    72
+function MailToolboxCustomizeInitialized(aEvent)
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    73
+{
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    74
+  var observerService = Components.classes["@mozilla.org/observer-service;1"]
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    75
+                       .getService(Components.interfaces.nsIObserverService);
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    76
+  observerService.addObserver(MailToolbarObserver, "mail:updateToolbarItems", false);
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    77
+
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    78
+  MailToolbarObserver.toolbar = document.getElementById("mail-bar3");
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    79
+  MailToolbarObserver.original_toolbarset = MailToolbarObserver.toolbar.currentSet; 
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    80
+}
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    81
+
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    82
 function MailToolboxCustomizeDone(aEvent, customizePopupId)
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    83
 {
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    84
   if (gCustomizeSheet) {
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    85
     document.getElementById("customizeToolbarSheetIFrame").hidden = true;
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    86
     document.getElementById("customizeToolbarSheetPopup").hidePopup();
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    87
   }
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    88
 
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    89
   // Update global UI elements that may have been added or removed
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    90
diff -r 77f7d8c11ea7 mail/base/content/msgMail3PaneWindow.js
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    91
--- a/mail/base/content/msgMail3PaneWindow.js	Tue Dec 29 05:27:57 2009 +0100
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    92
+++ b/mail/base/content/msgMail3PaneWindow.js	Thu Dec 31 13:07:59 2009 +0800
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    93
@@ -395,16 +395,17 @@ function LoadPostAccountWizard()
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    94
   OnLoadMsgHeaderPane();
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    95
 
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    96
   //Set focus to the Thread Pane the first time the window is opened.
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    97
   SetFocusThreadPane();
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    98
 
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
    99
   // initialize the customizeDone method on the customizeable toolbar
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
   100
   var toolbox = document.getElementById("mail-toolbox");
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
   101
   toolbox.customizeDone = function(aEvent) { MailToolboxCustomizeDone(aEvent, "CustomizeMailToolbar"); };
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
   102
+  toolbox.customizeInitialized = function(aEvent) { MailToolboxCustomizeInitialized(aEvent); };
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
   103
 
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
   104
   var toolbarset = document.getElementById('customToolbars');
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
   105
   toolbox.toolbarset = toolbarset;
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
   106
 
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
   107
   // XXX Do not select the folder until the window displays or the threadpane
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
   108
   //  will be at minimum size.  We used to have
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
   109
   //  gFolderDisplay.ensureRowIsVisible use settimeout itself to defer that
7bc349a36380 2009-12-31 Brian Lu <[email protected]>
hawklu
parents:
diff changeset
   110
   //  calculation, but that was ugly.  Also, in theory we will open the window