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

pass <enter> <space> <tab> etc. to vimperator now, so that they can perform their default action without beeping.

Quite hacky so far, should be cleaned up.
This commit is contained in:
Martin Stubenschrott
2007-05-02 12:28:04 +00:00
parent ca2f10f25f
commit e52f7ffda8
3 changed files with 36 additions and 29 deletions

View File

@@ -78,4 +78,4 @@ table.settings {
.mapping { font-weight: bold; color: #102663; }
.setting { font-weight: bold; color: #106326; }
.argument { color: #6A97D4; }
.version { position:absolute; top:10px; right:2%; color:#B0B0B0; text-align:right; }
.version { position:absolute; top:10px; right:2%; color:#C0C0C0; text-align:right; }

View File

@@ -104,7 +104,7 @@ function help(section, easter)
// add more space between entries
if (i < commands.length-1)
ret += '<tr class="separator"><td colspan=3><hr></td></tr>';
ret += '<tr class="separator"><td colspan=3><hr></td></tr>\\n';
}
return ret;
}
@@ -131,24 +131,24 @@ function help(section, easter)
return ret;
}
var header = '<h1 align=center>Vimperator</h1>' +
'<p align=center><b>First there was a Navigator, then there was an Explorer.<br/>'+
'Later it was time for a Konqueror. Now it\'s time for an Imperator, the VIMperator :)</b></p>';
var header = '<h1 align=center>Vimperator</h1>\\n' +
'<p align=center><b>First there was a Navigator, then there was an Explorer.<br/>\\n'+
'Later it was time for a Konqueror. Now it\'s time for an Imperator, the VIMperator :)</b></p>\\n';
var introduction = '<h2>Introduction</h2>' +
'<p><a href="http://vimperator.mozdev.org">Vimperator</a> is a free browser add-on for Firefox, which makes it look and behave like the <a href="http://www.vim.org">Vim</a> text editor.<br/>' +
'It has similar key bindings, and you could call it a modal webbrowser, as key bindings differ according to which mode you are in.</p>' +
'It has similar key bindings, and you could call it a modal webbrowser, as key bindings differ according to which mode you are in.</p>\\n' +
'<p><font color=red><b>Warning:</b></font> To provide the most authentic Vim experience, the Firefox menubar and toolbar were hidden.<br/>'+
'If you really need them, type: <code class=command>:set guioptions=mT</code> to get it back.<br>' +
'If you really need them, type: <code class=command>:set guioptions=mT</code> to get it back.<br>\\n' +
'If you don\'t like Vimperator at all, you can uninstall it by typing <code class=command>:addons</code> and remove/disable it.<br/>' +
'If you like it, but can\'t remember the shortcuts, press <code class=mapping>F1</code> or <code class=command>:help</code> to get this help window back.</p>' +
'If you like it, but can\'t remember the shortcuts, press <code class=mapping>F1</code> or <code class=command>:help</code> to get this help window back.</p>\\n' +
'<p>Since Vimperator\'s GUI is embedded into a toolbar, it may look too 3D-like with the default theme.<br/>'+
'For best experience, I therefore recommend the <a href=\"https://addons.mozilla.org/firefox/364/\">Whitehart</a> theme.</p>' +
'For best experience, I therefore recommend the <a href=\"https://addons.mozilla.org/firefox/364/\">Whitehart</a> theme.</p>\\n' +
'<p>Vimperator was written by <a href="mailto:stubenschrott@gmx.net">Martin Stubenschrott</a>. If you appreciate my work on Vimperator, you can either<br/>'+
'send me greetings, patches or make a donation: ' +
'send me greetings, patches or make a donation: \\n' +
'<form action="https://www.paypal.com/cgi-bin/webscr" method="post">' +
'<input type="hidden" name="cmd" value="_s-xclick">' +
@@ -156,42 +156,42 @@ function help(section, easter)
'<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">' +
'<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----MIIHPwYJKoZIhvcNAQcEoIIHMDCCBywCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYBDDJfc+lXLBSAM9XSWv/ebzG/L7PTqYiIXaWVg8pfinDsfYaAcifcgCTuApg4v/VaZIQ/hLODzQu2EvmjGXP0twErA/Q8G5gx0l197PJSyVXb1sLwd1mgOdLF4t0HmDCdEI9z3H6CMhsb3xVwlfpzllSfCIqzlSpx4QtdzEZGzLDELMAkGBSsOAwIaBQAwgbwGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQI8ZOwn5QkHgaAgZjjtPQxB7Vw2rS7Voap9y+xdVLoczUQ97hw+bOdZLcGykBtfoVjdn76MS51QKjGp1fEmxkqTuQ+Fxv8+OVtHu0QF/qlrhmC3fJBRJ0IFWxKdXS+Wod4615BDaG2X1hzvCL443ffka8XlLSiFTuW43BumQs/O+6Jqsk2hcReP3FIQOvtWMSgGTALnZx7x5c60u/3NSKW5qvyWKCCA4cwggODMIIC7KADAgECAgEAMA0GCSqGSIb3DQEBBQUAMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbTAeFw0wNDAyMTMxMDEzMTVaFw0zNTAyMTMxMDEzMTVaMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwUdO3fxEzEtcnI7ZKZL412XvZPugoni7i7D7prCe0AtaHTc97CYgm7NsAtJyxNLixmhLV8pyIEaiHXWAh8fPKW+R017+EmXrr9EaquPmsVvTywAAE1PMNOKqo2kl4Gxiz9zZqIajOm1fZGWcGS0f5JQ2kBqNbvbg2/Za+GJ/qwUCAwEAAaOB7jCB6zAdBgNVHQ4EFgQUlp98u8ZvF71ZP1LXChvsENZklGswgbsGA1UdIwSBszCBsIAUlp98u8ZvF71ZP1LXChvsENZklGuhgZSkgZEwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAgV86VpqAWuXvX6Oro4qJ1tYVIT5DgWpE692Ag422H7yRIr/9j/iKG4Thia/Oflx4TdL+IFJBAyPK9v6zZNZtBgPBynXb048hsP16l2vi0k5Q2JKiPDsEfBhGI+HnxLXEaUWAcVfCsQFvd2A1sxRr67ip5y2wwBelUecP3AjJ+YcxggGaMIIBlgIBATCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwCQYFKw4DAhoFAKBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTA3MDMyMTIyMzI1OFowIwYJKoZIhvcNAQkEMRYEFCirrvlwYVHQiNEEbM6ikfx9+Dm5MA0GCSqGSIb3DQEBAQUABIGAtbsR8GdCdURLziozXLSdtY+zJZUPPeQFXXy2V1S/3ldiN+pRvd4HI7xz8mOY1UaKJZpwZnOosy9MflL1/hbiEtEyQ2Dm/s4jnTcJng/NjLIZu+0NYxXRJhB+zMJubnMMMjzNrGlqI4F2HAB/bCA1eOJ5B83Of3dA4rk/T/8GoSQ=-----END PKCS7-----">' +
'</form>' +
'</form>\\n' +
'Of course as a believer in free open source software, only make a donation if you really like Vimperator, and the money doesn\'t hurt - otherwise just use it, recommend it and like it :)</p>'
'Of course as a believer in free open source software, only make a donation if you really like Vimperator, and the money doesn\'t hurt - otherwise just use it, recommend it and like it :)</p>\\n'
var mappings = '<h2>Mappings</h2>'+
var mappings = '<h2>Mappings</h2>\\n'+
'<p>The denotion of modifier keys is like in Vim, so C- means the Control key, M- the Meta key, A- the Alt key and S- the Shift key.</p>'+
'<p><table class="vimperator mappings">'
mappings += makeHelpString(g_mappings, "#102663", "", "", null);
mappings += '</table></p>';
if (section && section == 'holy-grail')
mappings += '<span id="holy-grail">You found it, Arthur!</span>';
mappings += '<span id="holy-grail">You found it, Arthur!</span>\\n';
var commands = '<h2>Commands</h2><p><table class="vimperator commands">'
var commands = '<h2>Commands</h2><p><table class="vimperator commands">\\n';
commands += makeHelpString(g_commands, "#632610", ":", "", null);
commands += '</table></p>';
if (section && section == '42')
commands += '<p id="42">What is the meaning of life, the universe and everything?<br/>' +
'Douglas Adams, the only person who knew what this question really was about is<br/>' +
'now dead, unfortunately. So now you might wonder what the meaning of death<br/>' +
'is...</p>';
'is...</p>\\n';
var settings = '<h2>Settings</h2><p><table class="vimperator settings">'
var settings = '<h2>Settings</h2><p><table class="vimperator settings">\\n';
settings += makeHelpString(g_settings, "#106326", "'", "'", makeSettingsHelpString);
settings += '</table></p>';
var fulldoc = '<html><head><title>Vimperator help</title>' +
var fulldoc = '<html>\\n<head>\\n<title>Vimperator help</title>\\n' +
// XXX: stylesheet broken here? Have to add it in the vimperator.xul file
'<link rel="stylesheet" href="chrome://vimperator/content/default.css" type="text/css">'+
'</head><body><pre style="white-space: -moz-pre-wrap !important;"><table class="main"><tr><td>' + // should change that to: white-space: pre-wrap; once CSS3 hits firefox
'<span class="version">version ' + g_vimperator_version + '</span>'+
'<link rel="stylesheet" href="chrome://vimperator/content/default.css" type="text/css">\\n'+
'</head>\\n<body><pre style="white-space: -moz-pre-wrap !important;">\\n<table class="main"><tr><td>\\n' + // should change that to: white-space: pre-wrap; once CSS3 hits firefox
'<span class="version">version ' + g_vimperator_version + '</span>\\n'+
header +
introduction +
mappings +
commands +
settings +
'</td></tr></table></pre></body></html>'
'\\n</td></tr></table>\\n</pre></body>\\n</html>'
doc.open();

View File

@@ -283,6 +283,11 @@ function onVimperatorKeypress(event)/*{{{*/
if (key == null)
return false;
// XXX: ugly hack for now pass certain keys to firefox as they are without beeping
// also fixes key navigation in menus, etc.
if (key == "<Tab>" || key == "<Return>" || key == "<Space>" || key == "<Up>" || key == "<Down>")
return false;
// XXX: for now only, later: input mappings if form element focused
if (isFormElemFocused())
return false;
@@ -968,15 +973,17 @@ function createCursorPositionString()
function isFormElemFocused()
{
var elt = document.commandDispatcher.focusedElement;
if (elt == null) return false;
if (elt == null)
return false;
var tagName = elt.localName.toUpperCase();
var tagname = elt.localName.toLowerCase();
var type = elt.type.toLowerCase();
if (tagName == "INPUT" ||
tagName == "TEXTAREA" ||
tagName == "SELECT" ||
tagName == "BUTTON" ||
tagName == "ISINDEX")
if ( (tagname == "input" && (type != "image")) ||
tagname == "textarea" ||
// tagName == "SELECT" ||
// tagName == "BUTTON" ||
tagname == "isindex") // isindex is deprecated one-line input box
return true;
return false;