Bug 675392 - Remove code duplication for find keys and menu items by moving to utilityOverlay r=neil/standard8
authorIan Neal <iann_cvs@blueyonder.co.uk>
Mon, 08 Aug 2011 22:19:06 +0100
changeset 8430 8b76ed94d36fc1d6d87a9ecfad7ad75ad39ef788
parent 8429 93228cb070476333034dc8cd99a591a580053cf0
child 8431 aa02408a5fdb237674e67c88e564da75597d40cd
push id107
push userbugzilla@standard8.plus.com
push dateTue, 16 Aug 2011 23:11:19 +0000
treeherdercomm-aurora@cefe50ba1568 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersneil, standard8
bugs675392
Bug 675392 - Remove code duplication for find keys and menu items by moving to utilityOverlay r=neil/standard8
editor/ui/composer/content/editorOverlay.xul
editor/ui/jar.mn
editor/ui/locales/en-US/chrome/composer/editorOverlay.dtd
mail/components/compose/content/editorOverlay.xul
suite/browser/navigator.js
suite/browser/navigatorOverlay.xul
suite/browser/unix/platformNavigationBindings.xul
suite/common/unix/platformCommunicatorOverlay.xul
suite/common/utilityOverlay.xul
suite/locales/en-US/chrome/browser/navigatorOverlay.dtd
suite/locales/en-US/chrome/browser/unix/platformNavigationBindings.dtd
suite/locales/en-US/chrome/common/unix/platformCommunicatorOverlay.dtd
suite/locales/en-US/chrome/common/utilityOverlay.dtd
suite/locales/en-US/chrome/mailnews/compose/messengercompose.dtd
suite/locales/en-US/chrome/mailnews/messenger.dtd
suite/mailnews/compose/messengercompose.xul
suite/mailnews/mail3PaneWindowCommands.js
suite/mailnews/mailWindowOverlay.xul
suite/mailnews/messageWindow.js
suite/mailnews/msgHdrViewOverlay.js
suite/mailnews/unix/platformMailnewsOverlay.xul
--- a/editor/ui/composer/content/editorOverlay.xul
+++ b/editor/ui/composer/content/editorOverlay.xul
@@ -91,37 +91,17 @@
     <key id="pastequotationkb"
          key="&pasteAsQuotationCmd.key;"
          command="cmd_pasteQuote"
          modifiers="accel, shift"/>
     <key id="pastenoformattingkb"
          key="&pasteNoFormatting.key;"
          command="cmd_pasteNoFormatting"
          modifiers="accel, shift"/>
-    <key id="findkb"
-         key="&findCmd.key;"
-         command="cmd_find"
-         modifiers="accel"/>
-    <key id="findnextkb"
-         key="&findAgainCmd.key;"
-         command="cmd_findNext"
-         modifiers="accel"/>
-    <key id="findprevkb"
-         key="&findPrevCmd.key;"
-         command="cmd_findPrev"
-         modifiers="accel,shift"/>
-    <key keycode="&findAgainCmd.key2;"
-         command="cmd_findNext"/>
-    <key keycode="&findPrevCmd.key2;"
-         command="cmd_findPrev"
-         modifiers="shift"/>
-#ifdef MOZ_X11
-    <key keycode="&findCmd.key2;"
-         command="cmd_find"/>
-#endif
+    <keyset id="findKeys"/>
     <key id="checkspellingkb"
          key="&checkSpellingCmd2.key;"
          command="cmd_spelling"
          modifiers="accel,shift"
          disabled="true"/>
 
     <key id="boldkb"
          key="&styleBoldCmd.key;"
@@ -257,18 +237,18 @@
     <command id="cmd_copy"/>
     <command id="cmd_paste"/>  
     <command id="cmd_pasteNoFormatting" oncommand="goDoCommand('cmd_pasteNoFormatting')"
              label="&pasteNoFormatting.label;" accesskey="&pasteNoFormatting.accesskey;"/>
     <command id="cmd_delete"/>
     <command id="cmd_selectAll"/>
     <command id="cmd_preferences"   oncommand="goDoCommand('cmd_preferences')"/>
     <command id="cmd_find"          oncommand="goDoCommand('cmd_find')"/>
-    <command id="cmd_findNext"      oncommand="goDoCommand('cmd_findNext')"     label="&findAgainCmd.label;"/>
-    <command id="cmd_findPrev"      oncommand="goDoCommand('cmd_findPrev')"     label="&findPrevCmd.label;"/>
+    <command id="cmd_findNext"      oncommand="goDoCommand('cmd_findNext');"/>
+    <command id="cmd_findPrev"      oncommand="goDoCommand('cmd_findPrev');"/>
     <command id="cmd_spelling"      oncommand="goDoCommand('cmd_spelling')"/>
     <command id="cmd_checkLinks"    oncommand="goDoCommand('cmd_checkLinks')"/>
     <command id="cmd_pasteQuote"    oncommand="goDoCommand('cmd_pasteQuote')" label="&pasteAsQuotationCmd.label;"/>
     <command id="cmd_publishSettings"
              oncommand="goDoCommand('cmd_publishSettings');"/>
   </commandset>
 
   <!-- style related commands that update on creation, and on selection change -->
@@ -458,29 +438,19 @@
       <menuitem id="menu_paste"/>
       <menuitem id="menu_pasteNoFormatting"
                 key="pastenoformattingkb"
                 command="cmd_pasteNoFormatting"/>
       <menuitem id="menu_delete"/>
       <menuseparator id="edEditMenuSep2" />
       <menuitem id="menu_selectAll"/>
       <menuseparator id="sep_find"/>
-      <menuitem id="menu_find"
-                label="&findCmd.label;"
-                accesskey="&findCmd.accesskey;"
-                key="findkb"
-                command="cmd_find"/>
-      <menuitem id="menu_findnext"
-                accesskey="&findAgainCmd.accesskey;"
-                key="findnextkb"
-                command="cmd_findNext"/>
-      <menuitem id="menu_findprev"
-                accesskey="&findPrevCmd.accesskey;"
-                key="findprevkb"
-                command="cmd_findPrev"/>
+      <menuitem id="menu_find" label="&findCmd.label;"/>
+      <menuitem id="menu_findNext"/>
+      <menuitem id="menu_findPrev"/>
       <menuseparator id="sep_checkspelling"/>
       <menuitem id="menu_checkspelling"
                 label="&checkSpellingCmd2.label;"
                 accesskey="&checkSpellingCmd2.accesskey;"
                 key="checkspellingkb"
                 command="cmd_spelling"
                 disabled="true"/>
       <menuitem id="menu_inlinespellcheck"
--- a/editor/ui/jar.mn
+++ b/editor/ui/jar.mn
@@ -80,17 +80,17 @@ comm.jar:
       content/editor/EdConvertToTable.js                       (dialogs/content/EdConvertToTable.js) 
 #ifdef MOZ_SUITE
       content/editor/editor.xul                                (composer/content/editor.xul)
       content/editor/publishprefs.js                           (composer/content/publishprefs.js)
       content/editor/EditorContextMenu.js                      (composer/content/EditorContextMenu.js)
       content/editor/EditorContextMenuOverlay.xul              (composer/content/EditorContextMenuOverlay.xul)
       content/editor/EditorAllTags.css                         (composer/content/EditorAllTags.css)
       content/editor/EditorParagraphMarks.css                  (composer/content/EditorParagraphMarks.css)
-*     content/editor/editorOverlay.xul                         (composer/content/editorOverlay.xul) 
+      content/editor/editorOverlay.xul                         (composer/content/editorOverlay.xul) 
       content/editor/composerOverlay.xul                       (composer/content/composerOverlay.xul)
       content/editor/pref-toolbars.xul                         (composer/content/pref-toolbars.xul)
       content/editor/pref-editing.xul                          (composer/content/pref-editing.xul)
       content/editor/pref-editing.js                           (composer/content/pref-editing.js)
       content/editor/pref-composer.xul                         (composer/content/pref-composer.xul)
       content/editor/editorPrefsOverlay.xul                    (composer/content/editorPrefsOverlay.xul)
       content/editor/StructBarContextMenu.js                   (composer/content/StructBarContextMenu.js)
       content/editor/images/sendtoback.gif                     (composer/content/images/sendtoback.gif)
--- a/editor/ui/locales/en-US/chrome/composer/editorOverlay.dtd
+++ b/editor/ui/locales/en-US/chrome/composer/editorOverlay.dtd
@@ -86,27 +86,16 @@
 <!ENTITY pasteAs.label "Paste As">
 <!ENTITY pasteAs.accesskey "a">
 <!ENTITY publishSettings.label "Publishing Site Settings…">
 <!ENTITY publishSettings.accesskey "b">
 <!ENTITY pasteAsQuotationCmd.label "Paste As Quotation">
 <!ENTITY pasteAsQuotationCmd.accesskey "Q">
 <!ENTITY pasteAsQuotationCmd.key "o">
 <!ENTITY findCmd.label "Find and Replace…">
-<!ENTITY findCmd.accesskey "F">
-<!ENTITY findCmd.key "F">
-<!ENTITY findCmd.key2 "VK_F19">
-<!ENTITY findAgainCmd.label "Find Again">
-<!ENTITY findAgainCmd.accesskey "g">
-<!ENTITY findAgainCmd.key "G">
-<!ENTITY findAgainCmd.key2 "VK_F3">
-<!ENTITY findPrevCmd.label "Find Previous">
-<!ENTITY findPrevCmd.accesskey "v">
-<!ENTITY findPrevCmd.key "G">
-<!ENTITY findPrevCmd.key2 "VK_F3">
 <!ENTITY enableInlineSpellChecker.label "Spellcheck As You Type">
 <!ENTITY enableInlineSpellChecker.accesskey "S">
 <!ENTITY checkSpellingCmd2.label "Check Spelling">
 <!ENTITY checkSpellingCmd2.accesskey "h">
 <!ENTITY checkSpellingCmd2.key "p">
 
 <!-- Insert menu items -->
 <!ENTITY insertMenu.label "Insert">
--- a/mail/components/compose/content/editorOverlay.xul
+++ b/mail/components/compose/content/editorOverlay.xul
@@ -128,18 +128,18 @@
           commandupdater="true"
           events="create, mode_switch"
           oncommandupdate="goUpdateComposerMenuItems(this)"
   >
     <command id="cmd_pasteNoFormatting" oncommand="goDoCommand('cmd_pasteNoFormatting')"
              label="&pasteNoFormatting.label;" accesskey="&pasteNoFormatting.accesskey;"/>
     <command id="cmd_preferences"   oncommand="goDoCommand('cmd_preferences')"/>
     <command id="cmd_find"          oncommand="goDoCommand('cmd_find')"/>
-    <command id="cmd_findNext"      oncommand="goDoCommand('cmd_findNext')"     label="&findAgainCmd.label;"/>
-    <command id="cmd_findPrev"      oncommand="goDoCommand('cmd_findPrev')"     label="&findPrevCmd.label;"/>
+    <command id="cmd_findNext"      oncommand="goDoCommand('cmd_findNext');"/>
+    <command id="cmd_findPrev"      oncommand="goDoCommand('cmd_findPrev');"/>
     <command id="cmd_spelling"      oncommand="goDoCommand('cmd_spelling')"/>
     <command id="cmd_pasteQuote"    oncommand="goDoCommand('cmd_pasteQuote')" label="&pasteAsQuotationCmd.label;"/>
   </commandset>
 
   <!-- style related commands that update on creation, and on selection change -->
   <commandset id="composerStyleMenuItems"
           commandupdater="true"
           events="create, style, mode_switch"
--- a/suite/browser/navigator.js
+++ b/suite/browser/navigator.js
@@ -1936,18 +1936,18 @@ function hiddenWindowStartup()
 
   // Disable menus which are not appropriate
   var disabledItems = ['cmd_close', 'Browser:SendPage',
                        'Browser:EditPage', 'Browser:SavePage', 'cmd_printSetup',
                        'Browser:Print', 'canGoBack', 'canGoForward',
                        'Browser:AddBookmark', 'Browser:AddBookmarkAs',
                        'cmd_undo', 'cmd_redo', 'cmd_cut', 'cmd_copy',
                        'cmd_paste', 'cmd_delete', 'cmd_selectAll',
-                       'cmd_findTypeText', 'cmd_findTypeLinks', 'Browser:Find',
-                       'Browser:FindAgain', 'Browser:FindPrev', 'menu_Toolbars',
+                       'cmd_findTypeText', 'cmd_findTypeLinks', 'cmd_find',
+                       'cmd_findNext', 'cmd_findPrev', 'menu_Toolbars',
                        'menuitem_reload', 'menu_UseStyleSheet', 'charsetMenu',
                        'View:PageSource', 'View:PageInfo', 'menu_translate',
                        'cookie_deny', 'cookie_default', 'View:FullScreen',
                        'cookie_session', 'cookie_allow', 'image_deny',
                        'image_default', 'image_allow', 'AllowPopups',
                        'menu_zoom', 'cmd_minimizeWindow', 'cmd_zoomWindow'];
   var broadcaster;
 
--- a/suite/browser/navigatorOverlay.xul
+++ b/suite/browser/navigatorOverlay.xul
@@ -99,21 +99,17 @@
     <key id="key_reload"  key="&reloadCmd.commandkey;" oncommand="BrowserReload();" modifiers="accel"/>
     <key key="&reloadCmd.commandkey;" oncommand="BrowserReloadSkipCache();" modifiers="accel,shift"/>
     <key id="key_viewSource" key="&pageSourceCmd.commandkey;" command="View:PageSource" modifiers="accel"/>
     <key id="key_viewInfo"   key="&pageInfoCmd.commandkey;"   command="View:PageInfo"   modifiers="accel"/>
     <key id="key_viewNextSidebarPanel" keycode="VK_PAGE_DOWN"  oncommand="SidebarGetRelativePanel(1);"  modifiers="alt" />
     <key id="key_viewPrevSidebarPanel" keycode="VK_PAGE_UP"  oncommand="SidebarGetRelativePanel(-1);"  modifiers="alt" />
 
     <!-- Search Menu -->  
-    <key id="key_find"       key="&findOnCmd.commandkey;"         command="Browser:Find"      modifiers="accel"/>
-    <key id="key_findAgain"  key="&findAgainCmd.commandkey;"      command="Browser:FindAgain" modifiers="accel"/>
-    <key id="key_findPrev"   key="&findPrevCmd.commandkey;"       command="Browser:FindPrev"  modifiers="accel,shift"/>
-    <key keycode="&findAgainCmd.commandkey2;" command="Browser:FindAgain"/>
-    <key keycode="&findPrevCmd.commandkey2;"  command="Browser:FindPrev" modifiers="shift"/>
+    <keyset id="findKeys"/>
     <key id="key_findTypeText"/>
     <key id="key_findTypeLinks"/>
 
     <!-- Go Menu -->
     <key keycode="VK_BACK" command="cmd_handleBackspace"/>
     <key keycode="VK_BACK" command="cmd_handleShiftBackspace" modifiers="shift"/>
 
     <!-- Bookmarks Menu -->
@@ -176,19 +172,25 @@
     <!-- View Menu -->
     <command id="View:PageSource" oncommand="BrowserViewSourceOfDocument(content.document);" observes="isImage"/>
     <command id="View:PageInfo"   oncommand="BrowserPageInfo();"/>
     <command id="View:FullScreen" oncommand="BrowserFullScreen();"/>
     <command id="cmd_SwitchDocumentDirection" oncommand="SwitchDocumentDirection(window.content);" />
     <command id="cmd_CustomizeToolbars" oncommand="goCustomizeToolbar(getNavToolbox());"/>
  
     <!-- Search Menu -->
-    <command id="Browser:Find" oncommand="BrowserFind();" observes="isImage"/>
-    <command id="Browser:FindAgain" oncommand="BrowserFindAgain(false);" observes="isImage"/>
-    <command id="Browser:FindPrev"  oncommand="BrowserFindAgain(true);"  observes="isImage"/>
+    <command id="cmd_find"
+             oncommand="BrowserFind();"
+             observes="isImage"/>
+    <command id="cmd_findNext"
+             oncommand="BrowserFindAgain(false);"
+             observes="isImage"/>
+    <command id="cmd_findPrev"
+             oncommand="BrowserFindAgain(true);"
+             observes="isImage"/>
     <command id="cmd_findTypeText" observes="isImage"/>
     <command id="cmd_findTypeLinks" observes="isImage"/>
 
     <!-- Bookmarks Menu -->
     <command id="Browser:AddBookmark"
              label="&addCurPageCmd.label;" accesskey="&addCurPageCmd.accesskey;"
              oncommand="PlacesCommandHook.bookmarkCurrentPage(false, PlacesUtils.bookmarksMenuFolderId);"/>
     <command id="Browser:AddBookmarkAs"
@@ -289,19 +291,19 @@
         <menuseparator/>
         <menuitem id="menu_cut"/>
         <menuitem id="menu_copy"/>
         <menuitem id="menu_paste"/>
         <menuitem id="menu_delete"/>
         <menuseparator/>
         <menuitem id="menu_selectAll"/>
         <menuseparator/>
-        <menuitem id="menu_find" label="&findOnCmd.label;" accesskey="&findOnCmd.accesskey;" key="key_find" command="Browser:Find"/>
-        <menuitem id="menu_findAgain" label="&findAgainCmd.label;" accesskey="&findAgainCmd.accesskey;" key="key_findAgain" command="Browser:FindAgain"/>
-        <menuitem id="menu_findPrev"  label="&findPrevCmd.label;"  accesskey="&findPrevCmd.accesskey;" key="key_findPrev" command="Browser:FindPrev"/>
+        <menuitem id="menu_find" label="&findOnCmd.label;"/>
+        <menuitem id="menu_findNext"/>
+        <menuitem id="menu_findPrev"/>
         <menuseparator/> 
         <menuitem id="menu_findTypeLinks"/>
         <menuitem id="menu_findTypeText"/>
 
         <menuseparator id="textfieldDirection-separator" hidden="true"/>
         <menuitem id="textfieldDirection-swap" hidden="true"/>
 
         <menuseparator id="menu_PrefsSeparator"/> 
--- a/suite/browser/unix/platformNavigationBindings.xul
+++ b/suite/browser/unix/platformNavigationBindings.xul
@@ -16,19 +16,15 @@
     <key key="&goForwardCmd.commandKey;" command="Browser:Forward" modifiers="accel"/>
     <key id="key_stop" keycode="VK_ESCAPE" oncommand="BrowserStop();"/>
 
     <!-- Supporting IE 'refresh' shortcut key -->
     <key keycode="VK_F5" oncommand="BrowserReload();"/>
     <key keycode="VK_F5" modifiers="control" oncommand="BrowserReloadSkipCache();"/>
 
     <!-- Specific keybinding for Sun keyboard -->
-    <key keycode="&findOnCmd.commandkey2;" command="Browser:Find"/>
-
     <key id="goHome" keycode="VK_HOME" oncommand="BrowserHome();" modifiers="alt"/>
     <key id="key_fullScreen" keycode="VK_F11" command="View:FullScreen"/>
     <key id="key_newTabWithTargetBg" keycode="VK_INSERT" command="cmd_newTabWithTarget"/>
     <key id="key_newTabWithTargetFg" keycode="VK_INSERT" modifiers="alt" command="cmd_newTabWithTarget"/>
   </keyset>
 
 </overlay>
-
-
--- a/suite/common/unix/platformCommunicatorOverlay.xul
+++ b/suite/common/unix/platformCommunicatorOverlay.xul
@@ -31,16 +31,20 @@
     <key id="key_redo"  key="&redoCmd.key;" command="cmd_redo" modifiers="accel"/>
 
     <!-- Select All Key -->
     <key id="key_selectAll" key="&selectAllCmd.key;" modifiers="alt"/>
 	
 	<!-- Delete Key -->
   <key id="key_delete" keycode="VK_DELETE" command="cmd_delete"/>
 
+  <keyset id="findKeys">
+    <key keycode="&findCmd.key2;"
+         command="cmd_find"/>
+  </keyset>
   <!-- Find As You Type Keys -->
   <key id="key_findTypeText"
        key="&findTypeTextCmd.key;"/>
   <key id="key_findTypeLinks"
        key="&findTypeLinksCmd.key;"/>
 
   <!-- Tasks Keys -->
   <keyset id="tasksKeys">
--- a/suite/common/utilityOverlay.xul
+++ b/suite/common/utilityOverlay.xul
@@ -180,16 +180,36 @@
        key="&newBlankPageCmd.key;"
        command="cmd_newEditor"
        modifiers="accel, shift"/>
   <key id="key_newNavigator"
        key="&newNavigatorCmd.key;"
        command="cmd_newNavigator"
        modifiers="accel"/>
 
+  <keyset id="findKeys">
+    <key id="key_find"
+         key="&findCmd.key;"
+         command="cmd_find"
+         modifiers="accel"/>
+    <key id="key_findNext"
+         key="&findAgainCmd.key;"
+         command="cmd_findNext"
+         modifiers="accel"/>
+    <key id="key_findPrev"
+         key="&findPrevCmd.key;"
+         command="cmd_findPrev"
+         modifiers="accel, shift"/>
+    <key keycode="&findAgainCmd.key2;"
+         command="cmd_findNext"/>
+    <key keycode="&findPrevCmd.key2;"
+         command="cmd_findPrev"
+         modifiers="shift"/>
+  </keyset>
+
   <!-- Edit Menu -->
   <menu id="menu_Edit"
         label="&editMenu.label;"
         accesskey="&editMenu.accesskey;"/>
   <menuitem id="menu_undo"
             key="key_undo"
             accesskey="&undoCmd.accesskey;"
             command="cmd_undo"/>
@@ -213,16 +233,30 @@
             key="key_delete"
             accesskey="&deleteCmd.accesskey;"
             command="cmd_delete"/>
   <menuitem id="menu_selectAll"
             label="&selectAllCmd.label;"
             key="key_selectAll"
             accesskey="&selectAllCmd.accesskey;"
             command="cmd_selectAll"/>
+  <menuitem id="menu_find"
+            accesskey="&findCmd.accesskey;"
+            key="key_find"
+            command="cmd_find"/>
+  <menuitem id="menu_findNext"
+            label="&findAgainCmd.label;"
+            accesskey="&findAgainCmd.accesskey;"
+            key="key_findNext"
+            command="cmd_findNext"/>
+  <menuitem id="menu_findPrev"
+            label="&findPrevCmd.label;"
+            accesskey="&findPrevCmd.accesskey;"
+            key="key_findPrev"
+            command="cmd_findPrev"/>
   <menuitem id="menu_findTypeText"
             label="&findTypeTextCmd.label;"
             key="key_findTypeText"
             accesskey="&findTypeTextCmd.accesskey;"
             command="cmd_findTypeText"/>
   <menuitem id="menu_findTypeLinks"
             label="&findTypeLinksCmd.label;"
             key="key_findTypeLinks"
--- a/suite/locales/en-US/chrome/browser/navigatorOverlay.dtd
+++ b/suite/locales/en-US/chrome/browser/navigatorOverlay.dtd
@@ -15,26 +15,16 @@
 <!ENTITY uploadFile.label "Upload File…">
 <!ENTITY uploadFile.accesskey "F">
 
 <!ENTITY printSetupCmd.label "Page Setup…">
 <!ENTITY printSetupCmd.accesskey "u">
 
 <!-- Edit Menu -->
 <!ENTITY findOnCmd.label "Find in This Page…">
-<!ENTITY findOnCmd.accesskey "f">
-<!ENTITY findOnCmd.commandkey "f">
-<!ENTITY findAgainCmd.label "Find Again">
-<!ENTITY findAgainCmd.accesskey "g">
-<!ENTITY findAgainCmd.commandkey "g">
-<!ENTITY findPrevCmd.label "Find Previous">
-<!ENTITY findPrevCmd.accesskey "v">
-<!ENTITY findPrevCmd.commandkey "g">
-<!ENTITY findAgainCmd.commandkey2 "VK_F3">
-<!ENTITY findPrevCmd.commandkey2 "VK_F3">
 
 <!-- View Menu -->
 <!ENTITY toolbarsCmd.label "Show/Hide">
 <!ENTITY toolbarsCmd.accesskey "w">
 <!ENTITY tabbarCmd.label "Tab Bar">
 <!ENTITY tabbarCmd.accesskey "T">
 <!ENTITY taskbarCmd.label "Status Bar">
 <!ENTITY taskbarCmd.accesskey "S">
--- a/suite/locales/en-US/chrome/browser/unix/platformNavigationBindings.dtd
+++ b/suite/locales/en-US/chrome/browser/unix/platformNavigationBindings.dtd
@@ -1,6 +1,5 @@
 <!-- LOCALIZATION NOTE: RTL languages may wish to switch these -->
 <!ENTITY goBackCmd.keyCode "VK_LEFT">
 <!ENTITY goForwardCmd.keyCode "VK_RIGHT">
 <!ENTITY goBackCmd.commandKey "[">
 <!ENTITY goForwardCmd.commandKey "]">
-<!ENTITY findOnCmd.commandkey2 "VK_F19">
--- a/suite/locales/en-US/chrome/common/unix/platformCommunicatorOverlay.dtd
+++ b/suite/locales/en-US/chrome/common/unix/platformCommunicatorOverlay.dtd
@@ -6,16 +6,17 @@
 <!ENTITY closeCmd.accesskey             "c">
 
 <!ENTITY quitApplicationCmd.label       "Quit"> 
 <!ENTITY quitApplicationCmd.key         "Q"> 
 <!ENTITY quitApplicationCmd.accesskey   "q">
 
 <!ENTITY redoCmd.key                    "Y">  
 
+<!ENTITY findCmd.key2                   "VK_F19">
 <!ENTITY findTypeTextCmd.key            "/">
 <!ENTITY findTypeLinksCmd.key           "'">
 
 <!ENTITY accel.emacs_conflict           "accel,shift">
 
 <!-- Help viewer -->
 <!ENTITY openHelpCmd.label              "Help Contents">
 <!ENTITY openHelpCmd.accesskey          "H">
--- a/suite/locales/en-US/chrome/common/utilityOverlay.dtd
+++ b/suite/locales/en-US/chrome/common/utilityOverlay.dtd
@@ -50,16 +50,29 @@
 <!ENTITY selectAllCmd.accesskey           "A">
 <!ENTITY clearHistoryCmd.label				"Clear Search History">  
 <!ENTITY clearHistoryCmd.accesskey			"H"> 
 <!ENTITY showSuggestionsCmd.label			"Show Suggestions">  
 <!ENTITY showSuggestionsCmd.accesskey		"S"> 
 <!ENTITY preferencesCmd.label				"Preferences…">
 <!ENTITY preferencesCmd.key					"E">  
 <!ENTITY preferencesCmd.accesskey			"e"> 
+<!ENTITY findCmd.key "F">
+<!-- LOCALIZATION NOTE (findCmd.accesskey): This accesskey should be within
+     findCmd.label found in messengercompose.dtd, messenger.dtd and
+     editorOverlay.dtd and findOnCmd.label found in navigatorOverlay.dtd -->
+<!ENTITY findCmd.accesskey "F">
+<!ENTITY findAgainCmd.label "Find Again">
+<!ENTITY findAgainCmd.key "G">
+<!ENTITY findAgainCmd.accesskey "g">
+<!ENTITY findAgainCmd.key2 "VK_F3">
+<!ENTITY findPrevCmd.label "Find Previous">
+<!ENTITY findPrevCmd.key "G">
+<!ENTITY findPrevCmd.key2 "VK_F3">
+<!ENTITY findPrevCmd.accesskey "v">
 <!ENTITY findTypeTextCmd.label "Find Text As You Type">
 <!ENTITY findTypeTextCmd.accesskey "x">
 <!ENTITY findTypeLinksCmd.label "Find Links As You Type">
 <!ENTITY findTypeLinksCmd.accesskey "k">
 
 <!ENTITY viewMenu.label					"View"> 
 <!ENTITY viewMenu.accesskey               "V">
 <!ENTITY viewToolbarsMenu.label				"Show/Hide"> 
--- a/suite/locales/en-US/chrome/mailnews/compose/messengercompose.dtd
+++ b/suite/locales/en-US/chrome/mailnews/compose/messengercompose.dtd
@@ -45,26 +45,16 @@
 <!ENTITY printCmd.key "P">
 <!ENTITY printCmd.accesskey "P">
 
 <!-- Edit menu items -->
 <!ENTITY editRewrapCmd.label "Rewrap">
 <!ENTITY editRewrapCmd.key "R">
 <!ENTITY editRewrapCmd.accesskey  "w">
 <!ENTITY findCmd.label "Find and Replace…">
-<!ENTITY findCmd.key "F">
-<!ENTITY findCmd.accesskey "F">
-<!ENTITY findAgainCmd.label "Find Again">
-<!ENTITY findAgainCmd.key "G">
-<!ENTITY findAgainCmd.accesskey "g">
-<!ENTITY findAgainCmd.key2 "VK_F3">
-<!ENTITY findPrevCmd.label "Find Previous">
-<!ENTITY findPrevCmd.key "G">
-<!ENTITY findPrevCmd.key2 "VK_F3">
-<!ENTITY findPrevCmd.accesskey "v">
 <!ENTITY accountManagerCmd.label "Mail &amp; Newsgroups Account Settings…">
 <!ENTITY accountManagerCmd.accesskey "m">
 
 <!-- View menu items -->
 <!ENTITY showComposeToolbarCmd.label "Mail Toolbar">
 <!ENTITY showComposeToolbarCmd.accesskey "o">
 <!ENTITY showFormatToolbarCmd.label "Formatting Toolbar">
 <!ENTITY showFormatToolbarCmd.accesskey "F">
--- a/suite/locales/en-US/chrome/mailnews/messenger.dtd
+++ b/suite/locales/en-US/chrome/mailnews/messenger.dtd
@@ -268,26 +268,16 @@
 <!ENTITY reloadCmd.accesskey "R">
 <!ENTITY stopCmd.label "Stop">
 <!ENTITY stopCmd.accesskey "S">
 <!ENTITY pageSourceCmd.label "Message Source">
 <!ENTITY pageSourceCmd.accesskey "o">
 <!ENTITY pageSourceCmd.key "u">
 
 <!ENTITY findCmd.label "Find in This Message…">
-<!ENTITY findCmd.accesskey "F">
-<!ENTITY findCmd.key "f">
-<!ENTITY findAgainCmd.label "Find Again">
-<!ENTITY findAgainCmd.accesskey "g">
-<!ENTITY findAgainCmd.key "g">
-<!ENTITY findAgainCmd.key2 "VK_F3">
-<!ENTITY findPrevCmd.label "Find Previous">
-<!ENTITY findPrevCmd.accesskey "v">
-<!ENTITY findPrevCmd.key "g">
-<!ENTITY findPrevCmd.key2 "VK_F3">
 
 <!-- Go Menu -->
 
 <!ENTITY goMenu.label "Go">
 <!ENTITY goMenu.accesskey "G">
 <!ENTITY nextMenu.label "Next">
 <!ENTITY nextMenu.accesskey "N">
 <!ENTITY nextMsgCmd.label "Message">
--- a/suite/mailnews/compose/messengercompose.xul
+++ b/suite/mailnews/compose/messengercompose.xul
@@ -161,21 +161,17 @@
   <key id="key_save"  key="&saveCmd.key;" command="cmd_saveDefault" modifiers="accel"/>
   <key id="key_send" keycode="&sendCmd.keycode;" observes="cmd_sendWithCheck" modifiers="accel"/>
   <key id="key_sendLater" keycode="&sendLaterCmd.keycode;" observes="cmd_sendLater" modifiers="accel, shift"/>
   <key id="key_print"  key="&printCmd.key;" command="cmd_print" modifiers="accel"/>
 
   <!-- Edit Menu -->
   <key id="key_rewrap" key="&editRewrapCmd.key;" command="cmd_rewrap" modifiers="accel"/>
   <key id="key_delete2"/>
-  <key id="key_find"  key="&findCmd.key;"  command="cmd_find" modifiers="accel"/>
-  <key id="key_findNext"  key="&findAgainCmd.key;" command="cmd_findNext" modifiers="accel"/>
-  <key id="key_findPrev"  key="&findPrevCmd.key;"  command="cmd_findPrev" modifiers="accel, shift"/>
-  <key keycode="&findAgainCmd.key2;" command="cmd_findNext"/>
-  <key keycode="&findPrevCmd.key2;"  command="cmd_findPrev" modifiers="shift"/>
+  <keyset id="findKeys"/>
 
   <!-- Options Menu -->
   <!-- key id="key_selectAddresses" key="&selectAddressCmd.key;" command="cmd_selectAddress"/ -->
   <key id="key_checkspelling"
        key="&checkSpellingCmd2.key;"
        command="cmd_spelling"
        modifiers="accel,shift"
   />
@@ -340,31 +336,19 @@
                         label="&editRewrapCmd.label;"
                         accesskey="&editRewrapCmd.accesskey;"
                         key="key_rewrap"
                         command="cmd_rewrap"/>
               <menuitem id="menu_delete"/>
               <menuseparator id="menuEditAfterDeleteSeparator"/>
               <menuitem id="menu_selectAll"/>
               <menuseparator id="menuEditAfterSelectAllSeparator"/>
-              <menuitem id="menu_findCmd"
-                        label="&findCmd.label;"
-                        accesskey="&findCmd.accesskey;"
-                        key="key_find"
-                        command="cmd_find"/>
-              <menuitem id="menu_findNextCmd"
-                        label="&findAgainCmd.label;"
-                        accesskey="&findAgainCmd.accesskey;"
-                        key="key_findNext"
-                        command="cmd_findNext"/>
-              <menuitem id="menu_findPrevCmd"
-                        label="&findPrevCmd.label;"
-                        accesskey="&findPrevCmd.accesskey;"
-                        key="key_findPrev"
-                        command="cmd_findPrev"/>
+              <menuitem id="menu_find" label="&findCmd.label;"/>
+              <menuitem id="menu_findNext"/>
+              <menuitem id="menu_findPrev"/>
               <menuseparator id="prefSep"/>
               <menuitem id="menu_accountmgr"
                         label="&accountManagerCmd.label;"
                         accesskey="&accountManagerCmd.accesskey;"
                         command="cmd_account"/>
               <menuitem id="menu_preferences"
                         oncommand="goDoCommand('cmd_preferences')"/>
             </menupopup>
--- a/suite/mailnews/mail3PaneWindowCommands.js
+++ b/suite/mailnews/mail3PaneWindowCommands.js
@@ -201,17 +201,17 @@ var DefaultController =
 			case "cmd_viewPageSource":
 			case "cmd_setFolderCharset":
 			case "cmd_reload":
       case "button_getNewMessages":
 			case "cmd_getNewMessages":
       case "cmd_getMsgsForAuthAccounts":
 			case "cmd_getNextNMessages":
 			case "cmd_find":
-			case "cmd_findAgain":
+      case "cmd_findNext":
 			case "cmd_findPrev":
       case "button_search":
       case "cmd_search":
       case "button_mark":
 			case "cmd_markAsRead":
 			case "cmd_markAllRead":
 			case "cmd_markThreadAsRead":
 			case "cmd_markReadByDate":
@@ -405,17 +405,17 @@ var DefaultController =
         return gDBView && gDBView.navigateStatus(nsMsgNavigationType.forward);
       case "cmd_goStartPage":
         return pref.getBoolPref("mailnews.start_page.enabled") && !IsMessagePaneCollapsed();
       case "cmd_markAllRead":
         return IsFolderSelected() && gDBView && gDBView.msgFolder.getNumUnread(false) > 0;
       case "cmd_markReadByDate":
         return IsFolderSelected();
       case "cmd_find":
-      case "cmd_findAgain":
+      case "cmd_findNext":
       case "cmd_findPrev":
         return IsMessageDisplayedInMessagePane();
         break;
       case "button_search":
       case "cmd_search":
         return IsCanSearchMessagesEnabled();
       case "cmd_selectAll":
       case "cmd_selectFlagged":
@@ -648,17 +648,17 @@ var DefaultController =
 				MsgFolderProperties();
 				return;
 			case "cmd_reload":
 				ReloadMessage();
 				return;
 			case "cmd_find":
 				MsgFind();
 				return;
-			case "cmd_findAgain":
+      case "cmd_findNext":
 				MsgFindAgain(false);
 				return;
 			case "cmd_findPrev":
 				MsgFindAgain(true);
 				return;
       case "cmd_properties":
         MsgFolderProperties();
         return;
--- a/suite/mailnews/mailWindowOverlay.xul
+++ b/suite/mailnews/mailWindowOverlay.xul
@@ -165,17 +165,17 @@
    <command id="cmd_viewThreadsWithUnread" oncommand="goDoCommand('cmd_viewThreadsWithUnread')" disabled="true"/>
    <command id="cmd_viewWatchedThreadsWithUnread" oncommand="goDoCommand('cmd_viewWatchedThreadsWithUnread')" disabled="true"/>
    <command id="cmd_viewIgnoredThreads" oncommand="goDoCommand('cmd_viewIgnoredThreads')" disabled="true"/>
    <commandset id="viewZoomCommands"/>
 </commandset>
 
 <commandset id="mailEditMenuItems"
             commandupdater="true"
-            events="create-menu-edit"
+            events="create-menu-edit, message-header-pane"
             oncommandupdate="goUpdateMailMenuItems(this)">
 
   <command id="cmd_undo"
          valueDeleteMsg="&undoDeleteMsgCmd.label;"
          valueMoveMsg="&undoMoveMsgCmd.label;"
          valueCopyMsg="&undoCopyMsgCmd.label;"
          valueUnmarkAllMsgs="&undoMarkAllCmd.label;"
          valueDefault="&undoDefaultCmd.label;"/>
@@ -204,17 +204,19 @@
   <command id="cmd_selectAll"/>
   <command id="cmd_selectThread" oncommand="goDoCommand('cmd_selectThread')"/>
   <command id="cmd_selectFlagged" oncommand="goDoCommand('cmd_selectFlagged')"/>
   <command id="cmd_properties" oncommand="goDoCommand('cmd_properties')"
          valueNewsgroup="&folderPropsNewsgroupCmd.label;"
          valueFolder="&folderPropsFolderCmd.label;"
          valueGeneric="&folderPropsCmd.label;"/>
   <command id="cmd_find" oncommand="goDoCommand('cmd_find')" disabled="true"/>
-  <command id="cmd_findAgain" oncommand="goDoCommand('cmd_findAgain')" disabled="true"/>
+  <command id="cmd_findNext"
+           oncommand="goDoCommand('cmd_findNext');"
+           disabled="true"/>
   <command id="cmd_findPrev"  oncommand="goDoCommand('cmd_findPrev')"  disabled="true"/>
   <command id="cmd_findTypeText"/>
   <command id="cmd_findTypeLinks"/>
   <command id="cmd_stop" oncommand="MsgStop();"/>
 </commandset>
 
 <commandset id="mailEditContextMenuItems">
   <command id="cmd_copyLink"/>
@@ -391,21 +393,17 @@
   <key id="key_print" key="&printCmd.key;"                           oncommand="goDoCommand('cmd_print')" modifiers="accel"/>
   <key id="key_saveAsFile" key="&saveAsFileCmd.key;"                 oncommand="goDoCommand('cmd_saveAsFile')" modifiers="accel"/>
   <key id="key_viewPageSource" key="&pageSourceCmd.key;"             oncommand="goDoCommand('cmd_viewPageSource')" modifiers="accel"/>
   <key id="key_getNewMessages" key="&getNewMsgCmd2.key;"             oncommand="goDoCommand('cmd_getNewMessages')" modifiers="accel"/>
   <key id="key_getAllNewMessages"
        key="&getAllNewMsgCmd2.key;"
        oncommand="goDoCommand('cmd_getMsgsForAuthAccounts');"
        modifiers="accel, shift"/>
-  <key id="key_find" key="&findCmd.key;"  oncommand="goDoCommand('cmd_find')" modifiers="accel"/>
-  <key id="key_findAgain" key="&findAgainCmd.key;"   oncommand="goDoCommand('cmd_findAgain')" modifiers="accel"/>
-  <key id="key_findPrev"  key="&findPrevCmd.key;"    oncommand="goDoCommand('cmd_findPrev')"  modifiers="accel, shift"/>
-  <key keycode="&findAgainCmd.key2;"   oncommand="goDoCommand('cmd_findAgain')"/>
-  <key keycode="&findPrevCmd.key2;"    oncommand="goDoCommand('cmd_findPrev')"  modifiers="shift"/>
+  <keyset id="findKeys"/>
   <key id="key_findTypeText"/>
   <key id="key_findTypeLinks"/>
   <key id="key_stop" keycode="VK_ESCAPE" command="cmd_stop"/>
   <keyset id="viewZoomKeys"/>
   <key id="key_reload"/>
 
   <!-- Tab/F6 Keys -->
   <key keycode="VK_TAB" oncommand="SwitchPaneFocus(event);" modifiers="control,shift"/>
@@ -1110,30 +1108,19 @@
                     command="cmd_selectThread"/>
           <menuitem id="menu_selectFlagged"
                     label="&selectFlaggedCmd.label;"
                     accesskey="&selectFlaggedCmd.accesskey;"
                     command="cmd_selectFlagged"/>
         </menupopup>
       </menu>
       <menuseparator id="editMenuAfterSelectSeparator"/>
-      <menuitem id="menu_find"
-                label="&findCmd.label;"
-                key="key_find" accesskey="&findCmd.accesskey;"
-                command="cmd_find"/>
-      <menuitem id="menu_findAgain"
-                label="&findAgainCmd.label;"
-                key="key_findAgain"
-                accesskey="&findAgainCmd.accesskey;"
-                command="cmd_findAgain"/>
-      <menuitem id="menu_findPrev"
-                label="&findPrevCmd.label;"
-                key="key_findPrev"
-                accesskey="&findPrevCmd.accesskey;"
-                command="cmd_findPrev"/>
+      <menuitem id="menu_find" label="&findCmd.label;"/>
+      <menuitem id="menu_findNext"/>
+      <menuitem id="menu_findPrev"/>
       <menuseparator id="editMenuAfterFindSeparator"/>
       <menuitem id="menu_findTypeLinks"/>
       <menuitem id="menu_findTypeText"/>
       <menuseparator id="editPropertiesSeparator"/>
       <menuitem id="menu_properties" label="&folderPropsCmd.label;"
                 accesskey="&folderPropsCmd.accesskey;"
                 command="cmd_properties"
                 observes="mailHideMenus"/>
--- a/suite/mailnews/messageWindow.js
+++ b/suite/mailnews/messageWindow.js
@@ -659,17 +659,17 @@ var MessageWindowController =
       case "button_replyall":
       case "cmd_forward":
       case "button_forward":
       case "cmd_forwardInline":
       case "cmd_forwardAttachment":
       case "cmd_editAsNew":
       case "cmd_getNextNMessages":
       case "cmd_find":
-      case "cmd_findAgain":
+      case "cmd_findNext":
       case "cmd_findPrev":
       case "button_search":
       case "cmd_search":
       case "cmd_reload":
       case "cmd_saveAsFile":
       case "cmd_getNewMessages":
       case "button_getNewMessages":
       case "button_print":
@@ -780,17 +780,17 @@ var MessageWindowController =
 			case "cmd_nextUnreadMsg":
       case "cmd_nextFlaggedMsg":
 			case "cmd_nextUnreadThread":
 			case "cmd_previousMsg":
 			case "cmd_previousUnreadMsg":
       case "cmd_previousFlaggedMsg":
       case "cmd_applyFiltersToSelection":
 				return true;
-			case "cmd_findAgain":
+      case "cmd_findNext":
 			case "cmd_findPrev":
 				return MsgCanFindAgain();
       case "cmd_goBack":
       case "button_goBack":
         return gDBView && gDBView.navigateStatus(nsMsgNavigationType.back);
       case "cmd_goForward":
       case "button_goForward":
         return gDBView && gDBView.navigateStatus(nsMsgNavigationType.forward);
@@ -910,17 +910,17 @@ var MessageWindowController =
 				MsgViewPageSource();
 				break;
 			case "cmd_reload":
 				ReloadMessage();
 				break;
 			case "cmd_find":
 				MsgFind();
 				break;
-			case "cmd_findAgain":
+      case "cmd_findNext":
 				MsgFindAgain(false);
 				break;
 			case "cmd_findPrev":
 				MsgFindAgain(true);
 				break;
       case "button_search":
       case "cmd_search":
         MsgSearchMessages();
--- a/suite/mailnews/msgHdrViewOverlay.js
+++ b/suite/mailnews/msgHdrViewOverlay.js
@@ -954,32 +954,36 @@ function ShowMessageHeaderPane()
 
   /* workaround for 39655 */
   if (gFolderJustSwitched) 
   {
     let el = GetHeaderPane();
     el.setAttribute("style", el.getAttribute("style"));
     gFolderJustSwitched = false;    
   }
+
+  document.commandDispatcher.updateCommands("message-header-pane");
 }
 
 function HideMessageHeaderPane()
 {
   var node = document.getElementById("collapsedHeaderView");
   if (node)
     node.collapsed = true;
 
   node = document.getElementById("expandedHeaderView");
   if (node)
     node.collapsed = true;
 
   // we also have to disable the Message/Attachments menuitem
   node = document.getElementById("msgAttachmentMenu");
   if (node)
     node.setAttribute("disabled", "true");
+
+  document.commandDispatcher.updateCommands("message-header-pane");
 }
 
 function OutputNewsgroups(headerEntry, headerValue)
 {
   headerValue = headerValue.replace(/,/g,", ");
   updateHeaderValue(headerEntry, headerValue);
 }
 
--- a/suite/mailnews/unix/platformMailnewsOverlay.xul
+++ b/suite/mailnews/unix/platformMailnewsOverlay.xul
@@ -6,15 +6,9 @@
 <overlay id="platformMailnewsOverlay"
          xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
     <!-- Delete Key -->
     <key id="key_shiftDelete" keycode="VK_DELETE" modifiers="shift" command="cmd_shiftDelete"/>
 
     <!-- Reload Key -->
     <key id="key_reload" keycode="VK_F5" oncommand="ReloadMessage();"/>
-
-    <!-- Find -->
-    <keyset id="mailKeys">
-        <key keycode="VK_F19" oncommand="goDoCommand('cmd_find')"/>
-    </keyset>
-
 </overlay>