1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-22 15:18:00 +01:00

merge better :q

This commit is contained in:
Doug Kearns
2007-10-18 03:57:17 +00:00
parent cdced34078
commit 1e367ddad7
4 changed files with 21 additions and 4 deletions

1
NEWS
View File

@@ -1,6 +1,7 @@
<pre> <pre>
2007-XX-XX: 2007-XX-XX:
* version 0.5.3 * version 0.5.3
* :q doesn't close the whole browser, if there are more than one windows
* new :winclose command * new :winclose command
* b calls :buffer! now instead of :buffer * b calls :buffer! now instead of :buffer
* [+], [-] and [+-] in the statusline, whether we can go back, forward, or both * [+], [-] and [+-] in the statusline, whether we can go back, forward, or both

View File

@@ -1121,8 +1121,9 @@ function Commands() //{{{
addDefaultCommand(new Command(["q[uit]"], addDefaultCommand(new Command(["q[uit]"],
function() { vimperator.tabs.remove(getBrowser().mCurrentTab, 1, false, 1); }, function() { vimperator.tabs.remove(getBrowser().mCurrentTab, 1, false, 1); },
{ {
short_help: "Quit current tab or quit Vimperator if this was the last tab", short_help: "Quit current tab",
help: "When quitting Vimperator, the session is not stored." help: "If this is the last tab in the window, close the window. If this was the " +
"last window, close Vimperator. When quitting Vimperator, the session is not stored."
} }
)); ));
addDefaultCommand(new Command(["quita[ll]", "qa[ll]"], addDefaultCommand(new Command(["quita[ll]", "qa[ll]"],

View File

@@ -172,8 +172,14 @@ function Tabs() //{{{
count = 1; count = 1;
if (quit_on_last_tab >= 1 && getBrowser().mTabs.length <= count) if (quit_on_last_tab >= 1 && getBrowser().mTabs.length <= count)
vimperator.quit(quit_on_last_tab == 2); {
if (vimperator.windows.length > 1)
window.close();
else
vimperator.quit(quit_on_last_tab == 2);
return;
}
var index = this.index(tab); var index = this.index(tab);
if (focus_left_tab) if (focus_left_tab)

View File

@@ -896,8 +896,17 @@ const vimperator = (function() //{{{
for (; now - then < ms; now = new Date().getTime()) { for (; now - then < ms; now = new Date().getTime()) {
mainThread.processNextEvent(true); mainThread.processNextEvent(true);
} }
} },
get windows()
{
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
var wa = [];
var enumerator = wm.getEnumerator("navigator:browser");
while (enumerator.hasMoreElements())
wa.push(enumerator.getNext());
return wa;
}
} //}}} } //}}}
})(); //}}} })(); //}}}