Socket
Socket
Sign inDemoInstall

electron-localshortcut

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

electron-localshortcut - npm Package Compare versions

Comparing version 0.6.0 to 0.6.1

186

index.js
'use strict';
const electron = require('electron');
const globalShortcut = electron.globalShortcut;

@@ -14,137 +15,136 @@ const BrowserWindow = electron.BrowserWindow;

function isAccelerator(arg) {
return typeof arg === 'string';
return typeof arg === 'string';
}
function unregisterAllShortcuts(win) {
const shortcuts = windowsWithShortcuts.get(win);
shortcuts.forEach( sc =>
globalShortcut.unregister(sc.accelerator)
);
const shortcuts = windowsWithShortcuts.get(win);
shortcuts.forEach(sc =>
globalShortcut.unregister(sc.accelerator)
);
}
function registerAllShortcuts(win) {
const shortcuts = windowsWithShortcuts.get(win);
const shortcuts = windowsWithShortcuts.get(win);
shortcuts.forEach( sc =>
globalShortcut.register(sc.accelerator, sc.callback)
);
shortcuts.forEach(sc =>
globalShortcut.register(sc.accelerator, sc.callback)
);
}
function unregisterAll(win) {
if (win === undefined) {
// unregister shortcuts for any window in the app
unregisterAll(ANY_WINDOW);
return;
}
if (win === undefined) {
// unregister shortcuts for any window in the app
unregisterAll(ANY_WINDOW);
return;
}
if (!windowsWithShortcuts.has(win)) {
return;
}
if (!windowsWithShortcuts.has(win)) {
return;
}
unregisterAllShortcuts(win);
windowsWithShortcuts.delete(win);
unregisterAllShortcuts(win);
windowsWithShortcuts.delete(win);
}
function register(win, accelerator, callback) {
if (arguments.length === 2 && isAccelerator(win)) {
// register shortcut for any window in the app
// win = accelerator, accelerator = callback
register(ANY_WINDOW, win, accelerator);
return;
}
if (arguments.length === 2 && isAccelerator(win)) {
// register shortcut for any window in the app
// win = accelerator, accelerator = callback
register(ANY_WINDOW, win, accelerator);
return;
}
if (windowsWithShortcuts.has(win)) {
const shortcuts = windowsWithShortcuts.get(win);
shortcuts.push({
accelerator: accelerator,
callback: callback
});
} else {
windowsWithShortcuts.set(win, [{
accelerator: accelerator,
callback: callback
}]);
}
if (windowsWithShortcuts.has(win)) {
const shortcuts = windowsWithShortcuts.get(win);
shortcuts.push({
accelerator,
callback
});
} else {
windowsWithShortcuts.set(win, [{
accelerator,
callback
}]);
}
const focusedWin = BrowserWindow.getFocusedWindow();
if ((win === ANY_WINDOW && focusedWin !== null) || focusedWin === win) {
globalShortcut.register(accelerator, callback);
}
const focusedWin = BrowserWindow.getFocusedWindow();
if ((win === ANY_WINDOW && focusedWin !== null) || focusedWin === win) {
globalShortcut.register(accelerator, callback);
}
}
function indexOfShortcut(win, accelerator) {
if (!windowsWithShortcuts.has(win)) {
return -1;
}
if (!windowsWithShortcuts.has(win)) {
return -1;
}
const shortcuts = windowsWithShortcuts.get(win);
let shortcutToUnregisterIdx = -1;
shortcuts.some((s, idx) => {
if (s.accelerator === accelerator) {
shortcutToUnregisterIdx = idx;
return true;
}
return false;
});
return shortcutToUnregisterIdx;
const shortcuts = windowsWithShortcuts.get(win);
let shortcutToUnregisterIdx = -1;
shortcuts.some((s, idx) => {
if (s.accelerator === accelerator) {
shortcutToUnregisterIdx = idx;
return true;
}
return false;
});
return shortcutToUnregisterIdx;
}
function unregister(win, accelerator) {
if (arguments.length === 1 && isAccelerator(win)) {
// unregister shortcut for any window in the app
// win = accelerator
unregister(ANY_WINDOW, win);
return;
}
const shortcutToUnregisterIdx = indexOfShortcut(win, accelerator);
if (arguments.length === 1 && isAccelerator(win)) {
// unregister shortcut for any window in the app
// win = accelerator
unregister(ANY_WINDOW, win);
return;
}
const shortcutToUnregisterIdx = indexOfShortcut(win, accelerator);
if (shortcutToUnregisterIdx !== -1) {
globalShortcut.unregister(accelerator);
const shortcuts = windowsWithShortcuts.get(win);
shortcuts.splice(shortcutToUnregisterIdx);
}
if (shortcutToUnregisterIdx !== -1) {
globalShortcut.unregister(accelerator);
const shortcuts = windowsWithShortcuts.get(win);
shortcuts.splice(shortcutToUnregisterIdx, 1);
}
}
function isRegistered(win, accelerator) {
if (arguments.length === 1 && isAccelerator(win)) {
// check shortcut for any window in the app
// win = accelerator
return isRegistered(ANY_WINDOW, win);
}
if (arguments.length === 1 && isAccelerator(win)) {
// check shortcut for any window in the app
// win = accelerator
return isRegistered(ANY_WINDOW, win);
}
return indexOfShortcut(win, accelerator) !== -1;
return indexOfShortcut(win, accelerator) !== -1;
}
app.on('browser-window-focus', (e, win) => {
if (windowsWithShortcuts.has(ANY_WINDOW)) {
registerAllShortcuts(ANY_WINDOW);
}
if (windowsWithShortcuts.has(ANY_WINDOW)) {
registerAllShortcuts(ANY_WINDOW);
}
if (!windowsWithShortcuts.has(win)) {
return;
}
if (!windowsWithShortcuts.has(win)) {
return;
}
registerAllShortcuts(win);
registerAllShortcuts(win);
});
app.on('browser-window-blur', (e, win) => {
if (windowsWithShortcuts.has(ANY_WINDOW)) {
unregisterAllShortcuts(ANY_WINDOW);
}
if (windowsWithShortcuts.has(ANY_WINDOW)) {
unregisterAllShortcuts(ANY_WINDOW);
}
if (!windowsWithShortcuts.has(win)) {
return;
}
if (!windowsWithShortcuts.has(win)) {
return;
}
unregisterAllShortcuts(win);
unregisterAllShortcuts(win);
});
module.exports = {
register: register,
unregister: unregister,
isRegistered: isRegistered,
unregisterAll: unregisterAll,
enableAll: registerAllShortcuts,
disableAll: unregisterAllShortcuts
register,
unregister,
isRegistered,
unregisterAll,
enableAll: registerAllShortcuts,
disableAll: unregisterAllShortcuts
};
{
"name": "electron-localshortcut",
"version": "0.6.0",
"version": "0.6.1",
"description": "register/unregister a keyboard shortcut locally to a BrowserWindow instance, without using a Menu",

@@ -10,7 +10,4 @@ "repository": "parro-it/electron-localshortcut",

"start": "electron test.js",
"test": "eslint ."
"test": "xo"
},
"eslintConfig": {
"extends": "eslint-config-devenv"
},
"keywords": [

@@ -23,3 +20,17 @@ "electron",

"index.js"
]
],
"devDependencies": {
"electron-prebuilt": "^1.2.5",
"xo": "^0.16.0"
},
"xo": {
"esnext": true,
"envs": [
"node",
"browser"
],
"rules": {
"import/no-extraneous-dependencies": "off"
}
}
}

@@ -8,3 +8,3 @@ # electron-localshortcut

**Note:** Since this module internally use `global-shortcut` native module, you should not use it until the `ready` event of the app module is emitted. See [electron docs](https://github.com/atom/electron/edit/master/docs/api/global-shortcut.md).
**Note:** Since this module internally use `global-shortcut` native module, you should not use it until the `ready` event of the app module is emitted. See [electron docs](http://electron.atom.io/docs/latest/api/global-shortcut/).

@@ -11,0 +11,0 @@ [![Travis Build Status](https://img.shields.io/travis/parro-it/electron-localshortcut.svg)](http://travis-ci.org/parro-it/electron-localshortcut)

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc