refactor: make autoHideMenuBar a property on BrowserWindows (#18555)

This commit is contained in:
Shelley Vohr 2019-06-03 09:09:47 -07:00 коммит произвёл GitHub
Родитель 4cb6be453a
Коммит 52c76d737a
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
5 изменённых файлов: 31 добавлений и 5 удалений

Просмотреть файл

@ -1146,9 +1146,10 @@ void TopLevelWindow::BuildPrototype(v8::Isolate* isolate,
&TopLevelWindow::IsExcludedFromShownWindowsMenu,
&TopLevelWindow::SetExcludedFromShownWindowsMenu)
#endif
.SetMethod("setAutoHideMenuBar", &TopLevelWindow::SetAutoHideMenuBar)
.SetMethod("isMenuBarAutoHide", &TopLevelWindow::IsMenuBarAutoHide)
.SetMethod("setMenuBarVisibility", &TopLevelWindow::SetMenuBarVisibility)
.SetMethod("_setAutoHideMenuBar", &TopLevelWindow::SetAutoHideMenuBar)
.SetMethod("_isMenuBarAutoHide", &TopLevelWindow::IsMenuBarAutoHide)
.SetProperty("autoHideMenuBar", &TopLevelWindow::IsMenuBarAutoHide,
&TopLevelWindow::SetAutoHideMenuBar)
.SetMethod("isMenuBarVisible", &TopLevelWindow::IsMenuBarVisible)
.SetMethod("setAspectRatio", &TopLevelWindow::SetAspectRatio)
.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
hide it immediately.
**[Deprecated](modernization/property-updates.md)**
#### `win.isMenuBarAutoHide()`
Returns `Boolean` - Whether menu bar automatically hides itself.
**[Deprecated](modernization/property-updates.md)**
#### `win.setMenuBarVisibility(visible)` _Windows_ _Linux_
* `visible` Boolean
@ -1642,6 +1646,13 @@ removed in future Electron releases.
### 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_
A `Boolean` property that determines whether the window is excluded from the applications Windows menu. `false` by default.

Просмотреть файл

@ -22,7 +22,6 @@ The Electron team is currently undergoing an initiative to convert separate gett
* `title`
* `documentEdited`
* `hasShadow`
* `autohideMenuBar`
* `menubarVisible`
* `visibleOnAllWorkspaces`
* `crashReporter` module
@ -54,6 +53,8 @@ The Electron team is currently undergoing an initiative to convert separate gett
* `applicationMenu`
* `badgeCount`
* `name`
* `BrowserWindow` module
* `autohideMenuBar`
* `NativeImage`
* `isMacTemplateImage`
* `SystemPreferences` module

Просмотреть файл

@ -1,7 +1,7 @@
'use strict'
const electron = require('electron')
const { WebContentsView, TopLevelWindow } = electron
const { WebContentsView, TopLevelWindow, deprecate } = electron
const { BrowserWindow } = process.electronBinding('window')
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

Просмотреть файл

@ -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()', () => {
it('should not steal focus', async () => {
const posDelta = 50