From 8a5f3b9db713fce3c1da6daa71626fca2b42c8aa Mon Sep 17 00:00:00 2001 From: Markus Olsson Date: Thu, 16 Mar 2017 19:09:45 +0100 Subject: [PATCH 1/5] the click callback accepts an event as its third param See https://github.com/electron/electron/blob/6d45052eeaf57faf239523b1b328cf37281ae030/lib/browser/api/menu-item.js#L52 --- electron/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/electron/index.d.ts b/electron/index.d.ts index 0b98ae1944..b5a657ab61 100644 --- a/electron/index.d.ts +++ b/electron/index.d.ts @@ -2492,7 +2492,7 @@ declare namespace Electron { /** * Callback when the menu item is clicked. */ - click?: (menuItem: MenuItem, browserWindow: BrowserWindow) => void; + click?: (menuItem: MenuItem, browserWindow: BrowserWindow, event: Event) => void; /** * Can be normal, separator, submenu, checkbox or radio. */ From a207b07344f3720ca65c218a8766d8f7d1379f4b Mon Sep 17 00:00:00 2001 From: Markus Olsson Date: Thu, 16 Mar 2017 19:10:12 +0100 Subject: [PATCH 2/5] Fix signature for menu item click instance method See https://github.com/electron/electron/blob/6d45052eeaf57faf239523b1b328cf37281ae030/lib/browser/api/menu-item.js#L44 --- electron/index.d.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/electron/index.d.ts b/electron/index.d.ts index b5a657ab61..c7ba10f83c 100644 --- a/electron/index.d.ts +++ b/electron/index.d.ts @@ -2455,7 +2455,11 @@ declare namespace Electron { */ constructor(options: MenuItemOptions); - click: (menuItem: MenuItem, browserWindow: BrowserWindow, event: Event) => void; + /** + * A Function that is fired when the MenuItem recieves a click event + */ + click: (event: Event, browserWindow: BrowserWindow, webContents: WebContents) => void; + /** * Read-only property. */ From 021ee30fe2aff40307a6cd4f3f00894f9c64c995 Mon Sep 17 00:00:00 2001 From: Markus Olsson Date: Thu, 16 Mar 2017 19:10:25 +0100 Subject: [PATCH 3/5] Add tests to verify new signatures --- electron/test/main.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/electron/test/main.ts b/electron/test/main.ts index 276a15d851..35a85a81dc 100644 --- a/electron/test/main.ts +++ b/electron/test/main.ts @@ -531,12 +531,19 @@ var winWindows = new BrowserWindow({ // menu-item // https://github.com/atom/electron/blob/master/docs/api/menu-item.md -var menuItem = new MenuItem({}); +var menuItem = new MenuItem({ + click: (menuItem: Electron.MenuItem, browserWindow: Electron.BrowserWindow, event: Electron.Event) => { + console.log('click', menuItem, browserWindow, event); + } +}); + +const fakeEvent: Electron.Event = { + preventDefault: () => { }, + sender: winWindows.webContents, +} menuItem.label = 'Hello World!'; -menuItem.click = (menuItem, browserWindow) => { - console.log('click', menuItem, browserWindow); -}; +menuItem.click(fakeEvent, winWindows, winWindows.webContents) // menu // https://github.com/atom/electron/blob/master/docs/api/menu.md From 262a66c3090af69a4d328bdbe70aae662353206a Mon Sep 17 00:00:00 2001 From: Markus Olsson Date: Thu, 16 Mar 2017 21:37:31 +0100 Subject: [PATCH 4/5] Add myself to the definitions list --- electron/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/electron/index.d.ts b/electron/index.d.ts index c7ba10f83c..3fab5cdf63 100644 --- a/electron/index.d.ts +++ b/electron/index.d.ts @@ -1,6 +1,6 @@ // Type definitions for Electron v1.4.8 // Project: http://electron.atom.io/ -// Definitions by: jedmao , rhysd , Milan Burda , aliib , Daniel Perez Alvarez +// Definitions by: jedmao , rhysd , Milan Burda , aliib , Daniel Perez Alvarez , Markus Olsson // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// From a6c1c773a5aca88aa4ef7ecdd64c71af488b4b43 Mon Sep 17 00:00:00 2001 From: Markus Olsson Date: Fri, 17 Mar 2017 00:32:16 +0100 Subject: [PATCH 5/5] Spelling --- electron/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/electron/index.d.ts b/electron/index.d.ts index 3fab5cdf63..11103b3a18 100644 --- a/electron/index.d.ts +++ b/electron/index.d.ts @@ -2456,7 +2456,7 @@ declare namespace Electron { constructor(options: MenuItemOptions); /** - * A Function that is fired when the MenuItem recieves a click event + * A function that is fired when the MenuItem receives a click event */ click: (event: Event, browserWindow: BrowserWindow, webContents: WebContents) => void;