refactor: make autoHideMenuBar a property on BrowserWindows (#18555)
This commit is contained in:
parent
4cb6be453a
commit
52c76d737a
5 changed files with 31 additions and 5 deletions
|
@ -1146,9 +1146,10 @@ void TopLevelWindow::BuildPrototype(v8::Isolate* isolate,
|
||||||
&TopLevelWindow::IsExcludedFromShownWindowsMenu,
|
&TopLevelWindow::IsExcludedFromShownWindowsMenu,
|
||||||
&TopLevelWindow::SetExcludedFromShownWindowsMenu)
|
&TopLevelWindow::SetExcludedFromShownWindowsMenu)
|
||||||
#endif
|
#endif
|
||||||
.SetMethod("setAutoHideMenuBar", &TopLevelWindow::SetAutoHideMenuBar)
|
.SetMethod("_setAutoHideMenuBar", &TopLevelWindow::SetAutoHideMenuBar)
|
||||||
.SetMethod("isMenuBarAutoHide", &TopLevelWindow::IsMenuBarAutoHide)
|
.SetMethod("_isMenuBarAutoHide", &TopLevelWindow::IsMenuBarAutoHide)
|
||||||
.SetMethod("setMenuBarVisibility", &TopLevelWindow::SetMenuBarVisibility)
|
.SetProperty("autoHideMenuBar", &TopLevelWindow::IsMenuBarAutoHide,
|
||||||
|
&TopLevelWindow::SetAutoHideMenuBar)
|
||||||
.SetMethod("isMenuBarVisible", &TopLevelWindow::IsMenuBarVisible)
|
.SetMethod("isMenuBarVisible", &TopLevelWindow::IsMenuBarVisible)
|
||||||
.SetMethod("setAspectRatio", &TopLevelWindow::SetAspectRatio)
|
.SetMethod("setAspectRatio", &TopLevelWindow::SetAspectRatio)
|
||||||
.SetMethod("previewFile", &TopLevelWindow::PreviewFile)
|
.SetMethod("previewFile", &TopLevelWindow::PreviewFile)
|
||||||
|
|
|
@ -1470,10 +1470,14 @@ menu bar will only show when users press the single `Alt` key.
|
||||||
If the menu bar is already visible, calling `setAutoHideMenuBar(true)` won't
|
If the menu bar is already visible, calling `setAutoHideMenuBar(true)` won't
|
||||||
hide it immediately.
|
hide it immediately.
|
||||||
|
|
||||||
|
**[Deprecated](modernization/property-updates.md)**
|
||||||
|
|
||||||
#### `win.isMenuBarAutoHide()`
|
#### `win.isMenuBarAutoHide()`
|
||||||
|
|
||||||
Returns `Boolean` - Whether menu bar automatically hides itself.
|
Returns `Boolean` - Whether menu bar automatically hides itself.
|
||||||
|
|
||||||
|
**[Deprecated](modernization/property-updates.md)**
|
||||||
|
|
||||||
#### `win.setMenuBarVisibility(visible)` _Windows_ _Linux_
|
#### `win.setMenuBarVisibility(visible)` _Windows_ _Linux_
|
||||||
|
|
||||||
* `visible` Boolean
|
* `visible` Boolean
|
||||||
|
@ -1642,6 +1646,13 @@ removed in future Electron releases.
|
||||||
|
|
||||||
### Properties
|
### Properties
|
||||||
|
|
||||||
|
#### `win.autoHideMenuBar`
|
||||||
|
|
||||||
|
A `Boolean` property that determines whether the window menu bar should hide itself automatically. Once set, the menu bar will only show when users press the single `Alt` key.
|
||||||
|
|
||||||
|
If the menu bar is already visible, setting this property to `true` won't
|
||||||
|
hide it immediately.
|
||||||
|
|
||||||
#### `win.excludedFromShownWindowsMenu` _macOS_
|
#### `win.excludedFromShownWindowsMenu` _macOS_
|
||||||
|
|
||||||
A `Boolean` property that determines whether the window is excluded from the application’s Windows menu. `false` by default.
|
A `Boolean` property that determines whether the window is excluded from the application’s Windows menu. `false` by default.
|
||||||
|
|
|
@ -22,7 +22,6 @@ The Electron team is currently undergoing an initiative to convert separate gett
|
||||||
* `title`
|
* `title`
|
||||||
* `documentEdited`
|
* `documentEdited`
|
||||||
* `hasShadow`
|
* `hasShadow`
|
||||||
* `autohideMenuBar`
|
|
||||||
* `menubarVisible`
|
* `menubarVisible`
|
||||||
* `visibleOnAllWorkspaces`
|
* `visibleOnAllWorkspaces`
|
||||||
* `crashReporter` module
|
* `crashReporter` module
|
||||||
|
@ -54,6 +53,8 @@ The Electron team is currently undergoing an initiative to convert separate gett
|
||||||
* `applicationMenu`
|
* `applicationMenu`
|
||||||
* `badgeCount`
|
* `badgeCount`
|
||||||
* `name`
|
* `name`
|
||||||
|
* `BrowserWindow` module
|
||||||
|
* `autohideMenuBar`
|
||||||
* `NativeImage`
|
* `NativeImage`
|
||||||
* `isMacTemplateImage`
|
* `isMacTemplateImage`
|
||||||
* `SystemPreferences` module
|
* `SystemPreferences` module
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
'use strict'
|
'use strict'
|
||||||
|
|
||||||
const electron = require('electron')
|
const electron = require('electron')
|
||||||
const { WebContentsView, TopLevelWindow } = electron
|
const { WebContentsView, TopLevelWindow, deprecate } = electron
|
||||||
const { BrowserWindow } = process.electronBinding('window')
|
const { BrowserWindow } = process.electronBinding('window')
|
||||||
|
|
||||||
Object.setPrototypeOf(BrowserWindow.prototype, TopLevelWindow.prototype)
|
Object.setPrototypeOf(BrowserWindow.prototype, TopLevelWindow.prototype)
|
||||||
|
@ -191,4 +191,7 @@ Object.assign(BrowserWindow.prototype, {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// Deprecations
|
||||||
|
deprecate.fnToProperty(BrowserWindow.prototype, 'autoHideMenuBar', '_isMenuBarAutoHide', '_setAutoHideMenuBar')
|
||||||
|
|
||||||
module.exports = BrowserWindow
|
module.exports = BrowserWindow
|
||||||
|
|
|
@ -513,6 +513,16 @@ describe('BrowserWindow module', () => {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('BrowserWindow autoHideMenuBar property', () => {
|
||||||
|
it('has an autoHideMenuBar property', () => {
|
||||||
|
expect(w).to.have.a.property('autoHideMenuBar')
|
||||||
|
|
||||||
|
// TODO(codebytere): remove when propertyification is complete
|
||||||
|
expect(w.setAutoHideMenuBar).to.be.a('function')
|
||||||
|
expect(w.isMenuBarAutoHide).to.be.a('function')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
describe('BrowserWindow.moveTop()', () => {
|
describe('BrowserWindow.moveTop()', () => {
|
||||||
it('should not steal focus', async () => {
|
it('should not steal focus', async () => {
|
||||||
const posDelta = 50
|
const posDelta = 50
|
||||||
|
|
Loading…
Reference in a new issue