1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2026-02-04 20:45:45 +01:00

Add :tabreattach.

The name is not very convincing.
This commit is contained in:
Doug Kearns
2009-09-28 17:49:24 +10:00
parent e8ab304cbc
commit 4a0e9bfd84
7 changed files with 65 additions and 0 deletions

View File

@@ -897,6 +897,11 @@ const liberator = (function () //{{{
context.keys = { text: function (item) item.getAttribute("toolbarname"), description: function () "" };
context.completions = buffer.evaluateXPath("./*[@toolbarname]", document, toolbox);
};
completion.window = function window(context) {
context.title = ["Window", "Title"]
context.completions = [[i, win.document.title] for ([i, win] in Iterator(liberator.windows))];
};
});
/////////////////////////////////////////////////////////////////////////////}}}

View File

@@ -617,6 +617,43 @@ function Tabs() //{{{
bang: true,
count: true
});
// TODO: match window by title too?
// : accept the full :tabmove arg spec for the tab index arg?
// : better name or merge with :tabmove?
commands.add(["tabrea[ttach]"],
"Reattach the current tab to another window",
function (args)
{
if (args.length > 2 || args.some(function (i) i && !/^\d+$/.test(i)))
return void liberator.echoerr("E488: Trailing characters");
let [winIndex, tabIndex] = args;
let win = liberator.windows[winIndex];
if (!win)
return void liberator.echoerr("Window " + winIndex + " does not exist");
else if (win == window)
return void liberator.echoerr("Can't reattach to the same window");
let browser = win.getBrowser();
let dummy = browser.addTab("about:blank");
let last = browser.mTabs.length - 1;
browser.moveTabTo(dummy, util.Math.constrain(tabIndex || last, 0, last));
browser.selectedTab = dummy; // required
browser.stop();
browser.docShell;
browser.swapBrowsersAndCloseOther(dummy, getBrowser().mCurrentTab);
},
{
argCount: "+",
completer: function (context, args)
{
if (args.completeArg == 0)
completion.window(context);
}
});
}
if (liberator.has("tabs_undo"))

View File

@@ -19,6 +19,7 @@
know if I like copying bugs)
* IMPORTANT: 'popups' now takes a stringlist rather than a number.
* add [c]:tabattach[c]
* add [c]:keepalt[c]
* add [c]:styledisable[c], [c]:styleenable[c], and [c]:styletoggle[c]
* add [c]:sanitize[c], 'sanitizetimespan' and 'sanitizeitems'

View File

@@ -259,6 +259,7 @@ section::Ex{nbsp}commands[ex-cmd-index,:index]
||[c]:tabonly[c]|| Close all other tabs +
||[c]:tabopen[c]|| Open one or more URLs in a new tab +
||[c]:tabprevious[c]|| Switch to the previous tab or go [count] tabs back +
||[c]:tabreattach[c]|| Reattach the current tab to another window +
||[c]:tabrewind[c]|| Switch to the first tab +
||[c]:time[c]|| Profile a piece of code or run a command multiple times +
||[c]toolbarhide[c]|| Hide the named toolbar +

View File

@@ -160,6 +160,16 @@ contain at least one tab it is not possible to detach the only tab in a window.
Use [c]:tabduplicate[c] to copy the tab then call [c]:tabdetach[c].
________________________________________________________________________________
|:tabrea| |:tabreattach|
||:tabrea[ttach] {window-index} [tab-index]|| +
________________________________________________________________________________
Reattach the current tab to another window. {window-index} is an index into the
list of open windows and [a][tab-index][a] is the index at which to insert the
tab in the other window's tab list. If this is the last tab in a window, the
window will be closed.
________________________________________________________________________________
section::Reordering{nbsp}tabs[reordering-tabs]
|:tabm| |:tabmove|

View File

@@ -305,6 +305,7 @@ section::Ex{nbsp}commands[ex-cmd-index,:index]
||[c]:tabonly[c]|| Close all other tabs +
||[c]:tabopen[c]|| Open one or more URLs in a new tab +
||[c]:tabprevious[c]|| Switch to the previous tab or go [count] tabs back +
||[c]:tabreattach[c]|| Reattach the current tab to another window +
||[c]:tabrewind[c]|| Switch to the first tab +
||[c]:time[c]|| Profile a piece of code or run a command multiple times +
||[c]toolbarhide[c]|| Hide the named toolbar +

View File

@@ -151,6 +151,16 @@ contain at least one tab it is not possible to detach the only tab in a window.
Use [c]:tabduplicate[c] to copy the tab then call [c]:tabdetach[c].
________________________________________________________________________________
|:tabrea| |:tabreattach|
||:tabrea[ttach] {window-index} [tab-index]|| +
________________________________________________________________________________
Reattach the current tab to another window. {window-index} is an index into the
list of open windows and [a][tab-index][a] is the index at which to insert the
tab in the other window's tab list. If this is the last tab in a window, the
window will be closed.
________________________________________________________________________________
section::Reordering{nbsp}tabs[reordering-tabs]
|:tabm| |:tabmove|