diff --git a/mozilla/modules/libpref/src/init/all.js b/mozilla/modules/libpref/src/init/all.js
index 83016612b3c..7c04d25f72e 100644
--- a/mozilla/modules/libpref/src/init/all.js
+++ b/mozilla/modules/libpref/src/init/all.js
@@ -115,6 +115,7 @@ pref("browser.chrome.toolbar_style", 2);
pref("browser.toolbars.showbutton.bookmarks", true);
pref("browser.toolbars.showbutton.go", false);
pref("browser.toolbars.showbutton.home", true);
+pref("browser.toolbars.showbutton.sidebar", true);
pref("browser.toolbars.showbutton.mynetscape", true);
pref("browser.toolbars.showbutton.net2phone", true);
pref("browser.toolbars.showbutton.print", true);
diff --git a/mozilla/themes/classic/communicator/sidebar/sb-closed.gif b/mozilla/themes/classic/communicator/sidebar/sb-closed.gif
new file mode 100644
index 00000000000..68a2241828f
Binary files /dev/null and b/mozilla/themes/classic/communicator/sidebar/sb-closed.gif differ
diff --git a/mozilla/themes/classic/communicator/sidebar/sb-open.gif b/mozilla/themes/classic/communicator/sidebar/sb-open.gif
new file mode 100644
index 00000000000..8cefb27471a
Binary files /dev/null and b/mozilla/themes/classic/communicator/sidebar/sb-open.gif differ
diff --git a/mozilla/themes/classic/communicator/sidebar/sidebar.css b/mozilla/themes/classic/communicator/sidebar/sidebar.css
index 64f8ef86dcd..6c16c2c9110 100644
--- a/mozilla/themes/classic/communicator/sidebar/sidebar.css
+++ b/mozilla/themes/classic/communicator/sidebar/sidebar.css
@@ -28,6 +28,18 @@
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+/* ::::: sidebar toggle button (on personal toolbar) ::::: */
+
+#sidebar-button[sbopen="true"] {
+ list-style-image: url("chrome://communicator/skin/sidebar/sb-open.gif");
+}
+
+#sidebar-button[sbopen="false"] {
+ list-style-image: url("chrome://communicator/skin/sidebar/sb-closed.gif");
+}
+
+/* ::::: sidebar container ::::: */
+
#sidebar-box {
border-left: 1px solid ThreeDShadow;
border-right: 1px solid ThreeDHighlight;
diff --git a/mozilla/themes/classic/jar.mn b/mozilla/themes/classic/jar.mn
index fb6fa7af95c..dee2aa13306 100644
--- a/mozilla/themes/classic/jar.mn
+++ b/mozilla/themes/classic/jar.mn
@@ -45,6 +45,8 @@ classic.jar:
skin/classic/communicator/search/search-editor.css (communicator/search/search-editor.css)
skin/classic/communicator/search/search.css (communicator/search/search.css)
skin/classic/communicator/search/internetresults.css (communicator/search/internetresults.css)
+ skin/classic/communicator/sidebar/sb-open.gif (communicator/sidebar/sb-open.gif)
+ skin/classic/communicator/sidebar/sb-closed.gif (communicator/sidebar/sb-closed.gif)
skin/classic/communicator/sidebar/sbtab-twisty.gif (communicator/sidebar/sbtab-twisty.gif)
skin/classic/communicator/sidebar/sbtab-twisty-open.gif (communicator/sidebar/sbtab-twisty-open.gif)
skin/classic/communicator/sidebar/customize.css (communicator/sidebar/customize.css)
diff --git a/mozilla/themes/modern/communicator/sidebar/sb-closed.gif b/mozilla/themes/modern/communicator/sidebar/sb-closed.gif
new file mode 100644
index 00000000000..68a2241828f
Binary files /dev/null and b/mozilla/themes/modern/communicator/sidebar/sb-closed.gif differ
diff --git a/mozilla/themes/modern/communicator/sidebar/sb-open.gif b/mozilla/themes/modern/communicator/sidebar/sb-open.gif
new file mode 100644
index 00000000000..8cefb27471a
Binary files /dev/null and b/mozilla/themes/modern/communicator/sidebar/sb-open.gif differ
diff --git a/mozilla/themes/modern/communicator/sidebar/sidebar.css b/mozilla/themes/modern/communicator/sidebar/sidebar.css
index 27ffb1df7b0..7710ca2dc1b 100644
--- a/mozilla/themes/modern/communicator/sidebar/sidebar.css
+++ b/mozilla/themes/modern/communicator/sidebar/sidebar.css
@@ -41,6 +41,18 @@
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+/* ::::: sidebar toggle button (on personal toolbar) ::::: */
+
+#sidebar-button[sbopen="true"] {
+ list-style-image: url("chrome://communicator/skin/sidebar/sb-open.gif");
+}
+
+#sidebar-button[sbopen="false"] {
+ list-style-image: url("chrome://communicator/skin/sidebar/sb-closed.gif");
+}
+
+/* ::::: sidebar container ::::: */
+
#sidebar-box {
border-left: 1px solid #8998AA;
background-color: #C1CBD5;
diff --git a/mozilla/themes/modern/jar.mn b/mozilla/themes/modern/jar.mn
index bb9de43b1bf..b65fd184680 100644
--- a/mozilla/themes/modern/jar.mn
+++ b/mozilla/themes/modern/jar.mn
@@ -57,6 +57,8 @@ modern.jar:
skin/modern/communicator/search/search.css (communicator/search/search.css)
skin/modern/communicator/alerts/alert.css (communicator/alerts/alert.css)
skin/modern/communicator/sidebar/sidebarBindings.xml (communicator/sidebar/sidebarBindings.xml)
+ skin/modern/communicator/sidebar/sb-open.gif (communicator/sidebar/sb-open.gif)
+ skin/modern/communicator/sidebar/sb-closed.gif (communicator/sidebar/sb-closed.gif)
skin/modern/communicator/sidebar/sbtab-rit-top-act.gif (communicator/sidebar/sbtab-rit-top-act.gif)
skin/modern/communicator/sidebar/sbtab-rit-btm-act.gif (communicator/sidebar/sbtab-rit-btm-act.gif)
skin/modern/communicator/sidebar/sbtab-rit-top.gif (communicator/sidebar/sbtab-rit-top.gif)
diff --git a/mozilla/xpfe/components/sidebar/resources/locale/en-US/sidebarOverlay.dtd b/mozilla/xpfe/components/sidebar/resources/locale/en-US/sidebarOverlay.dtd
index a5982b514fb..21921b323e6 100644
--- a/mozilla/xpfe/components/sidebar/resources/locale/en-US/sidebarOverlay.dtd
+++ b/mozilla/xpfe/components/sidebar/resources/locale/en-US/sidebarOverlay.dtd
@@ -45,4 +45,5 @@
+
diff --git a/mozilla/xpfe/components/sidebar/resources/sidebarOverlay.js b/mozilla/xpfe/components/sidebar/resources/sidebarOverlay.js
index ce8a8f8271e..a770fc104aa 100644
--- a/mozilla/xpfe/components/sidebar/resources/sidebarOverlay.js
+++ b/mozilla/xpfe/components/sidebar/resources/sidebarOverlay.js
@@ -704,9 +704,15 @@ function refresh_all_sidebars() {
// Sidebar Init
//////////////////////////////////////////////////////////////
function sidebar_overlay_init() {
+
+ // do we have a sidebar?
+ if (!document.getElementById("sidebar-panels-splitter-box"))
+ return;
+
if (sidebar_is_collapsed() && !gAboutToUncollapse)
return;
gMustInit = false;
+
sidebarObj.panels = new sbPanelList('sidebar-panels');
sidebarObj.datasource_uri = get_sidebar_datasource_uri();
sidebarObj.resource = 'urn:sidebar:current-panel-list';
@@ -733,6 +739,9 @@ function sidebar_overlay_init() {
if (sidebarObj.never_built) {
sidebarObj.never_built = false;
+ // set personal toolbar sidebar icon to correct state
+ SidebarToggleIcon();
+
debug("sidebar = " + sidebarObj);
debug("sidebarObj.resource = " + sidebarObj.resource);
debug("sidebarObj.datasource_uri = " + sidebarObj.datasource_uri);
@@ -780,9 +789,14 @@ function sidebar_overlay_init() {
}
function sidebar_overlay_destruct() {
- var panels = document.getElementById('sidebar-panels');
- debug("Removing observer from database.");
- panels.database.RemoveObserver(panel_observer);
+
+ // do we have a sidebar?
+ if (!document.getElementById("sidebar-panels-splitter-box"))
+ return;
+
+ var panels = document.getElementById('sidebar-panels');
+ debug("Removing observer from database.");
+ panels.database.RemoveObserver(panel_observer);
}
function sidebar_open_default_panel(wait, tries) {
@@ -1091,6 +1105,7 @@ function sidebar_is_collapsed() {
}
function SidebarExpandCollapse() {
+ SidebarToggleIcon();
var sidebar_splitter = document.getElementById('sidebar-splitter');
var sidebar_box = document.getElementById('sidebar-box');
if (sidebar_splitter.getAttribute('state') == 'collapsed') {
@@ -1117,6 +1132,7 @@ function sidebar_is_hidden() {
// Show/Hide the entire sidebar.
// Invoked by the "View / Sidebar" menu option.
function SidebarShowHide() {
+ SidebarToggleIcon();
var sidebar_box = document.getElementById('sidebar-box');
var title_box = document.getElementById('sidebar-title-box');
var sidebar_panels_splitter = document.getElementById('sidebar-panels-splitter');
@@ -1299,6 +1315,27 @@ function SidebarTogglePanel(panel_menuitem) {
sidebarObj.datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Flush();
}
+function SidebarToggleIcon()
+{
+ var sidebarButton = document.getElementById("sidebar-button");
+ if (sidebarButton)
+ {
+ var newValue = false;
+ if (sidebarButton.getAttribute("sbopen") == "false")
+ newValue = true;
+
+ sidebarButton.setAttribute("sbopen", newValue);
+
+ var tooltipText;
+ if (newValue) // it's open so show action ``<== Close Sidebar''
+ tooltipText = sidebarButton.getAttribute("sbclosetooltip");
+ else // it's closed so show action ``==> Open Sidebar''
+ tooltipText = sidebarButton.getAttribute("sbopentooltip");
+
+ sidebarButton.setAttribute("tooltiptext", tooltipText);
+ }
+}
+
function SidebarNavigate(aDirection)
{
debug("SidebarNavigate " + aDirection);
diff --git a/mozilla/xpfe/components/sidebar/resources/sidebarOverlay.xul b/mozilla/xpfe/components/sidebar/resources/sidebarOverlay.xul
index 3bb805ad90b..f9bc1fa3069 100644
--- a/mozilla/xpfe/components/sidebar/resources/sidebarOverlay.xul
+++ b/mozilla/xpfe/components/sidebar/resources/sidebarOverlay.xul
@@ -21,7 +21,7 @@
-
+
@@ -54,6 +54,42 @@
oncommand="SidebarCustomize();"/>
+
+
+
+
+
+
+
+
+
+
+
+
+