diff --git a/browser/base/content/tabview/tabview.css b/browser/base/content/tabview/tabview.css index 27f0d45e5ac..7608de22dc1 100644 --- a/browser/base/content/tabview/tabview.css +++ b/browser/base/content/tabview/tabview.css @@ -186,6 +186,12 @@ body { display: none; } +/* Exit button +----------------------------------*/ +#exit-button { + position: absolute; + z-index: 1000; +} /* Search ----------------------------------*/ diff --git a/browser/base/content/tabview/tabview.html b/browser/base/content/tabview/tabview.html index 1f39951bbde..df19f55a6df 100644 --- a/browser/base/content/tabview/tabview.html +++ b/browser/base/content/tabview/tabview.html @@ -10,6 +10,8 @@
+
diff --git a/browser/base/content/tabview/ui.js b/browser/base/content/tabview/ui.js index cbf5893ef12..6ef1ec1376b 100644 --- a/browser/base/content/tabview/ui.js +++ b/browser/base/content/tabview/ui.js @@ -884,6 +884,17 @@ let UI = { this._save(); }, + // ---------- + // Function: onExitButtonPressed + // Exits TabView UI. + onExitButtonPressed: function() { + let activeTab = this.getActiveTab(); + if (!activeTab) + activeTab = gBrowser.selectedTab.tabItem; + if (activeTab) + activeTab.zoomIn(); + }, + // ---------- // Function: _addDevMenu // Fills out the "dev menu" in the TabView UI. diff --git a/browser/base/content/test/tabview/Makefile.in b/browser/base/content/test/tabview/Makefile.in index b1a4d4a3ff8..23615207fb0 100644 --- a/browser/base/content/test/tabview/Makefile.in +++ b/browser/base/content/test/tabview/Makefile.in @@ -52,6 +52,7 @@ _BROWSER_FILES = \ browser_tabview_bug591706.js \ browser_tabview_apptabs.js \ browser_tabview_undo_group.js \ + browser_tabview_exit_button.js \ $(NULL) libs:: $(_BROWSER_FILES) diff --git a/browser/base/content/test/tabview/browser_tabview_exit_button.js b/browser/base/content/test/tabview/browser_tabview_exit_button.js new file mode 100644 index 00000000000..7dc1cbf999f --- /dev/null +++ b/browser/base/content/test/tabview/browser_tabview_exit_button.js @@ -0,0 +1,62 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is tabview exit button test. + * + * The Initial Developer of the Original Code is + * Mozilla Foundation. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Raymond Lee + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +function test() { + waitForExplicitFinish(); + + let onTabViewShown = function() { + window.removeEventListener("tabviewshown", onTabViewShown, false); + ok(TabView.isVisible(), "Tab View is visible"); + + let contentWindow = document.getElementById("tab-view").contentWindow; + let button = contentWindow.document.getElementById("exit-button"); + + ok(button, "Exit button exists"); + EventUtils.sendMouseEvent({ type: "click" }, button, contentWindow); + } + + let onTabViewHidden = function() { + window.removeEventListener("tabviewhidden", onTabViewHidden, false); + + ok(!TabView.isVisible(), "Tab View is hidden"); + finish(); + } + + window.addEventListener("tabviewshown", onTabViewShown, false); + window.addEventListener("tabviewhidden", onTabViewHidden, false); + TabView.toggle(); +} diff --git a/browser/themes/gnomestripe/browser/tabview/tabview.css b/browser/themes/gnomestripe/browser/tabview/tabview.css index 7c744288dfd..5f63dbded07 100644 --- a/browser/themes/gnomestripe/browser/tabview/tabview.css +++ b/browser/themes/gnomestripe/browser/tabview/tabview.css @@ -389,6 +389,21 @@ input.defaultName { bottom: 1px; } +/* Exit button ++----------------------------------*/ +#exit-button { + cursor: default; + top: 0; + right: 0; + width: 28px; + height: 27px; + background: url(chrome://browser/skin/tabview/tabview.png) no-repeat scroll 7px 7px #b7b7b7; + border-bottom: 1px solid #909090; + border-left: 1px solid #B7B7B7; + border-top: 1px solid #CFCFCF; + border-radius: 3px 0 0 3px; +} + /* Search ----------------------------------*/ diff --git a/browser/themes/pinstripe/browser/tabview/tabview.css b/browser/themes/pinstripe/browser/tabview/tabview.css index 53cb0c64566..9b92f4a8fa6 100644 --- a/browser/themes/pinstripe/browser/tabview/tabview.css +++ b/browser/themes/pinstripe/browser/tabview/tabview.css @@ -395,6 +395,21 @@ input.defaultName { bottom: 1px; } +/* Exit button ++----------------------------------*/ +#exit-button { + cursor: default; + top: 0; + right: 0; + width: 28px; + height: 27px; + background: url(chrome://browser/skin/tabview/tabview.png) no-repeat scroll 4px 4px #b7b7b7; + border-bottom: 1px solid #909090; + border-left: 1px solid #B7B7B7; + border-top: 1px solid #CFCFCF; + border-radius: 3px 0 0 3px; +} + /* Search ----------------------------------*/ diff --git a/browser/themes/winstripe/browser/tabview/tabview.css b/browser/themes/winstripe/browser/tabview/tabview.css index 2b763f863ce..8b173256012 100644 --- a/browser/themes/winstripe/browser/tabview/tabview.css +++ b/browser/themes/winstripe/browser/tabview/tabview.css @@ -400,6 +400,21 @@ input.defaultName { bottom: 1px; } +/* Exit button ++----------------------------------*/ +#exit-button { + cursor: default; + top: 0; + right: 0; + width: 28px; + height: 27px; + background: url(chrome://browser/skin/tabview/tabview.png) no-repeat scroll 4px 4px #b7b7b7; + border-bottom: 1px solid #909090; + border-left: 1px solid #B7B7B7; + border-top: 1px solid #CFCFCF; + border-radius: 3px 0 0 3px; +} + /* Search ----------------------------------*/