support zi/zo commands
This commit is contained in:
		
							parent
							
								
									1afbde6e19
								
							
						
					
					
						commit
						1f15d22643
					
				
					 5 changed files with 48 additions and 2 deletions
				
			
		|  | @ -22,7 +22,6 @@ | ||||||
|     "multiline-ternary": "off", |     "multiline-ternary": "off", | ||||||
|     "max-statements": ["error", 15], |     "max-statements": ["error", 15], | ||||||
|     "no-console": "off", |     "no-console": "off", | ||||||
|     "no-magic-numbers": ["error", { "ignore": [0, 1, 2] }], |  | ||||||
|     "no-param-reassign": "off", |     "no-param-reassign": "off", | ||||||
|     "no-ternary": "off", |     "no-ternary": "off", | ||||||
|     "object-curly-spacing": [ |     "object-curly-spacing": [ | ||||||
|  |  | ||||||
|  | @ -1,6 +1,7 @@ | ||||||
| import * as actions from '../shared/actions'; | import * as actions from '../shared/actions'; | ||||||
| import * as tabs from './tabs'; | import * as tabs from './tabs'; | ||||||
| import * as commands from './commands'; | import * as commands from './commands'; | ||||||
|  | import * as zooms from './zooms'; | ||||||
| import KeyQueue from './key-queue'; | import KeyQueue from './key-queue'; | ||||||
| 
 | 
 | ||||||
| const queue = new KeyQueue(); | const queue = new KeyQueue(); | ||||||
|  | @ -38,6 +39,12 @@ const doBackgroundAction = (sender, action) => { | ||||||
|   case actions.TABS_NEXT: |   case actions.TABS_NEXT: | ||||||
|     tabs.selectNextTab(sender.tab.index, actions[1] || 1); |     tabs.selectNextTab(sender.tab.index, actions[1] || 1); | ||||||
|     break; |     break; | ||||||
|  |   case actions.ZOOM_IN: | ||||||
|  |     zooms.zoomIn(); | ||||||
|  |     break; | ||||||
|  |   case actions.ZOOM_OUT: | ||||||
|  |     zooms.zoomOut(); | ||||||
|  |     break; | ||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -13,6 +13,8 @@ const DEFAULT_KEYMAP = [ | ||||||
|   { keys: [{ code: KeyboardEvent.DOM_VK_U }], action: [ actions.TABS_REOPEN]}, |   { keys: [{ code: KeyboardEvent.DOM_VK_U }], action: [ actions.TABS_REOPEN]}, | ||||||
|   { keys: [{ code: KeyboardEvent.DOM_VK_H }], action: [ actions.TABS_PREV, 1 ]}, |   { keys: [{ code: KeyboardEvent.DOM_VK_H }], action: [ actions.TABS_PREV, 1 ]}, | ||||||
|   { keys: [{ code: KeyboardEvent.DOM_VK_L }], action: [ actions.TABS_NEXT, 1 ]}, |   { keys: [{ code: KeyboardEvent.DOM_VK_L }], action: [ actions.TABS_NEXT, 1 ]}, | ||||||
|  |   { keys: [{ code: KeyboardEvent.DOM_VK_Z }, { code: KeyboardEvent.DOM_VK_I }], action: [ actions.ZOOM_IN ]}, | ||||||
|  |   { keys: [{ code: KeyboardEvent.DOM_VK_Z }, { code: KeyboardEvent.DOM_VK_O }], action: [ actions.ZOOM_OUT ]}, | ||||||
|   { keys: [{ code: KeyboardEvent.DOM_VK_F }], action: [ actions.FOLLOW_START, false ]}, |   { keys: [{ code: KeyboardEvent.DOM_VK_F }], action: [ actions.FOLLOW_START, false ]}, | ||||||
|   { keys: [{ code: KeyboardEvent.DOM_VK_F, shift: true }], action: [ actions.FOLLOW_START, true ]}, |   { keys: [{ code: KeyboardEvent.DOM_VK_F, shift: true }], action: [ actions.FOLLOW_START, true ]}, | ||||||
|   { keys: [{ code: KeyboardEvent.DOM_VK_H, shift: true }], action: [ actions.HISTORY_PREV ]}, |   { keys: [{ code: KeyboardEvent.DOM_VK_H, shift: true }], action: [ actions.HISTORY_PREV ]}, | ||||||
|  |  | ||||||
							
								
								
									
										34
									
								
								src/background/zooms.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								src/background/zooms.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,34 @@ | ||||||
|  | // For chromium
 | ||||||
|  | // const ZOOM_SETTINGS = [
 | ||||||
|  | //   0.25, 0.33, 0.50, 0.66, 0.75, 0.80, 0.90, 1.00,
 | ||||||
|  | //   1.10, 1.25, 1.50, 1.75, 2.00, 2.50, 3.00, 4.00, 5.00
 | ||||||
|  | // ];
 | ||||||
|  | 
 | ||||||
|  | const ZOOM_SETTINGS = [ | ||||||
|  |   0.33, 0.50, 0.66, 0.75, 0.80, 0.90, 1.00, | ||||||
|  |   1.10, 1.25, 1.50, 1.75, 2.00, 2.50, 3.00 | ||||||
|  | ]; | ||||||
|  | 
 | ||||||
|  | const zoomIn = (tabId = undefined) => { | ||||||
|  |   browser.tabs.getZoom(tabId).then((factor) => { | ||||||
|  |     for (let f of ZOOM_SETTINGS) { | ||||||
|  |       if (f > factor) { | ||||||
|  |         browser.tabs.setZoom(tabId, f); | ||||||
|  |         break; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | const zoomOut = (tabId = undefined) => { | ||||||
|  |   browser.tabs.getZoom(tabId).then((factor) => { | ||||||
|  |     for (let f of [].concat(ZOOM_SETTINGS).reverse()) { | ||||||
|  |       if (f < factor) { | ||||||
|  |         browser.tabs.setZoom(tabId, f); | ||||||
|  |         break; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export { zoomIn, zoomOut }; | ||||||
|  | @ -11,12 +11,16 @@ export const SCROLL_BOTTOM = 'scroll.bottom'; | ||||||
| export const FOLLOW_START = 'follow.start'; | export const FOLLOW_START = 'follow.start'; | ||||||
| export const HISTORY_PREV = 'history.prev'; | export const HISTORY_PREV = 'history.prev'; | ||||||
| export const HISTORY_NEXT = 'history.next'; | export const HISTORY_NEXT = 'history.next'; | ||||||
|  | export const ZOOM_IN = 'zoom.in'; | ||||||
|  | export const ZOOM_OUT = 'zoom.out'; | ||||||
| 
 | 
 | ||||||
| const BACKGROUND_ACTION_SET = new Set([ | const BACKGROUND_ACTION_SET = new Set([ | ||||||
|   TABS_CLOSE, |   TABS_CLOSE, | ||||||
|   TABS_REOPEN, |   TABS_REOPEN, | ||||||
|   TABS_PREV, |   TABS_PREV, | ||||||
|   TABS_NEXT |   TABS_NEXT, | ||||||
|  |   ZOOM_IN, | ||||||
|  |   ZOOM_OUT | ||||||
| ]); | ]); | ||||||
| 
 | 
 | ||||||
| const CONTENT_ACTION_SET = new Set([ | const CONTENT_ACTION_SET = new Set([ | ||||||
|  |  | ||||||
		Reference in a new issue