diff options
| author | Teddy Wing | 2017-09-29 00:10:21 +0200 |
|---|---|---|
| committer | Teddy Wing | 2017-09-29 00:10:21 +0200 |
| commit | a56fc2cdc16929216bea1db71b76641152a9c00b (patch) | |
| tree | 95bc908a07de882605ef2a8be99b21dad15ee724 /github-apple-option-p-to-preview.user.js | |
| download | GitHub-Apple-Option-P-to-Preview-a56fc2cdc16929216bea1db71b76641152a9c00b.tar.bz2 | |
Add a key event listener to open Preview pane on GitHub comments
Use Apple-Option-P to open the preview pane and toggle it closed.
GitHub uses Apple-Shift-P by default to toggle the Preview pane. I need
this new shortcut because Firefox uses Apple-Shift-P to open new private
browsing windows, shadowing it from GitHub.
This is the initial working version of this script. It doesn't currently
support comment fields that are added to the page after page load.
Diffstat (limited to 'github-apple-option-p-to-preview.user.js')
| -rw-r--r-- | github-apple-option-p-to-preview.user.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/github-apple-option-p-to-preview.user.js b/github-apple-option-p-to-preview.user.js new file mode 100644 index 0000000..72e40a4 --- /dev/null +++ b/github-apple-option-p-to-preview.user.js @@ -0,0 +1,48 @@ +// ==UserScript== +// @name GitHub Apple-Option-P to Preview +// @namespace com.teddywing +// @description Enables Apple-Option-P to toggle the Preview pane +// @version 0.0.1 +// @match https://*.github.com/* +// @grant none +// ==/UserScript== + +var KEY_CODE_P = 80; + + +var comment_textareas = document.querySelectorAll('textarea.js-comment-field'); + +for (var i = 0; i < comment_textareas.length; i++) { + comment_textareas[i].onkeydown = function(e) { + if (e.metaKey && e.altKey && e.keyCode == KEY_CODE_P) { + show_preview_pane(this); + + var write_tab = this + .closest('.js-previewable-comment-form') + .querySelector('.js-write-tab'); + window.setTimeout(function() { + register_pane_toggle_shortcut(write_tab); + }); + } + }; +} + + +function show_preview_pane (node) { + node + .closest('.js-previewable-comment-form') + .querySelector('.js-preview-tab') + .click(); +} + +function register_pane_toggle_shortcut (write_tab) { + document.body.addEventListener('keydown', toggle_write_pane); + + function toggle_write_pane (e) { + if (e.metaKey && e.altKey && e.keyCode == KEY_CODE_P) { + write_tab.click(); + + document.body.removeEventListener('keydown', toggle_write_pane); + } + } +} |
