chore: remove deprecated getTrafficLightPosition() / setTrafficLightPosition() (#39479)
		
	chore: remove deprecated getTrafficLightPosition() / setTrafficLightPosition()
This commit is contained in:
		
					parent
					
						
							
								3a91d1f1e1
							
						
					
				
			
			
				commit
				
					
						90865fa97d
					
				
			
		
					 4 changed files with 40 additions and 79 deletions
				
			
		| 
						 | 
					@ -1595,25 +1595,6 @@ Passing `null` will reset the position to default.
 | 
				
			||||||
Returns `Point | null` - The custom position for the traffic light buttons in
 | 
					Returns `Point | null` - The custom position for the traffic light buttons in
 | 
				
			||||||
frameless window, `null` will be returned when there is no custom position.
 | 
					frameless window, `null` will be returned when there is no custom position.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#### `win.setTrafficLightPosition(position)` _macOS_ _Deprecated_
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* `position` [Point](structures/point.md)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Set a custom position for the traffic light buttons in frameless window.
 | 
					 | 
				
			||||||
Passing `{ x: 0, y: 0 }` will reset the position to default.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
> **Note**
 | 
					 | 
				
			||||||
> This function is deprecated. Use [setWindowButtonPosition](#winsetwindowbuttonpositionposition-macos) instead.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#### `win.getTrafficLightPosition()` _macOS_ _Deprecated_
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Returns `Point` - The custom position for the traffic light buttons in
 | 
					 | 
				
			||||||
frameless window, `{ x: 0, y: 0 }` will be returned when there is no custom
 | 
					 | 
				
			||||||
position.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
> **Note**
 | 
					 | 
				
			||||||
> This function is deprecated. Use [getWindowButtonPosition](#wingetwindowbuttonposition-macos) instead.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#### `win.setTouchBar(touchBar)` _macOS_
 | 
					#### `win.setTouchBar(touchBar)` _macOS_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* `touchBar` TouchBar | null
 | 
					* `touchBar` TouchBar | null
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,6 +12,46 @@ This document uses the following convention to categorize breaking changes:
 | 
				
			||||||
* **Deprecated:** An API was marked as deprecated. The API will continue to function, but will emit a deprecation warning, and will be removed in a future release.
 | 
					* **Deprecated:** An API was marked as deprecated. The API will continue to function, but will emit a deprecation warning, and will be removed in a future release.
 | 
				
			||||||
* **Removed:** An API or feature was removed, and is no longer supported by Electron.
 | 
					* **Removed:** An API or feature was removed, and is no longer supported by Electron.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Planned Breaking API Changes (28.0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Removed: `BrowserWindow.setTrafficLightPosition(position)`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`BrowserWindow.setTrafficLightPosition(position)` has been removed, the
 | 
				
			||||||
 | 
					`BrowserWindow.setWindowButtonPosition(position)` API should be used instead
 | 
				
			||||||
 | 
					which accepts `null` instead of `{ x: 0, y: 0 }` to reset the position to
 | 
				
			||||||
 | 
					system default.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					// Removed in Electron 28
 | 
				
			||||||
 | 
					win.setTrafficLightPosition({ x: 10, y: 10 })
 | 
				
			||||||
 | 
					win.setTrafficLightPosition({ x: 0, y: 0 })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Replace with
 | 
				
			||||||
 | 
					win.setWindowButtonPosition({ x: 10, y: 10 })
 | 
				
			||||||
 | 
					win.setWindowButtonPosition(null)
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Removed: `BrowserWindow.getTrafficLightPosition()`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`BrowserWindow.getTrafficLightPosition()` has been removed, the
 | 
				
			||||||
 | 
					`BrowserWindow.getWindowButtonPosition()` API should be used instead
 | 
				
			||||||
 | 
					which returns `null` instead of `{ x: 0, y: 0 }` when there is no custom
 | 
				
			||||||
 | 
					position.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					// Removed in Electron 28
 | 
				
			||||||
 | 
					const pos = win.getTrafficLightPosition()
 | 
				
			||||||
 | 
					if (pos.x === 0 && pos.y === 0) {
 | 
				
			||||||
 | 
					  // No custom position.
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Replace with
 | 
				
			||||||
 | 
					const ret = win.getWindowButtonPosition()
 | 
				
			||||||
 | 
					if (ret === null) {
 | 
				
			||||||
 | 
					  // No custom position.
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Planned Breaking API Changes (27.0)
 | 
					## Planned Breaking API Changes (27.0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Removed: macOS 10.13 / 10.14 support
 | 
					### Removed: macOS 10.13 / 10.14 support
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,5 @@
 | 
				
			||||||
import { EventEmitter } from 'events';
 | 
					import { EventEmitter } from 'events';
 | 
				
			||||||
import type { BaseWindow as TLWT } from 'electron/main';
 | 
					import type { BaseWindow as TLWT } from 'electron/main';
 | 
				
			||||||
import * as deprecate from '@electron/internal/common/deprecate';
 | 
					 | 
				
			||||||
const { BaseWindow } = process._linkedBinding('electron_browser_base_window') as { BaseWindow: typeof TLWT };
 | 
					const { BaseWindow } = process._linkedBinding('electron_browser_base_window') as { BaseWindow: typeof TLWT };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Object.setPrototypeOf(BaseWindow.prototype, EventEmitter.prototype);
 | 
					Object.setPrototypeOf(BaseWindow.prototype, EventEmitter.prototype);
 | 
				
			||||||
| 
						 | 
					@ -16,25 +15,6 @@ BaseWindow.prototype._init = function () {
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Deprecation.
 | 
					 | 
				
			||||||
const setTrafficLightPositionDeprecated = deprecate.warnOnce('setTrafficLightPosition', 'setWindowButtonPosition');
 | 
					 | 
				
			||||||
// Converting to any as the methods are defined under BrowserWindow in our docs.
 | 
					 | 
				
			||||||
(BaseWindow as any).prototype.setTrafficLightPosition = function (pos: Electron.Point) {
 | 
					 | 
				
			||||||
  setTrafficLightPositionDeprecated();
 | 
					 | 
				
			||||||
  if (typeof pos === 'object' && pos.x === 0 && pos.y === 0) {
 | 
					 | 
				
			||||||
    this.setWindowButtonPosition(null);
 | 
					 | 
				
			||||||
  } else {
 | 
					 | 
				
			||||||
    this.setWindowButtonPosition(pos);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const getTrafficLightPositionDeprecated = deprecate.warnOnce('getTrafficLightPosition', 'getWindowButtonPosition');
 | 
					 | 
				
			||||||
(BaseWindow as any).prototype.getTrafficLightPosition = function () {
 | 
					 | 
				
			||||||
  getTrafficLightPositionDeprecated();
 | 
					 | 
				
			||||||
  const pos = this.getWindowButtonPosition();
 | 
					 | 
				
			||||||
  return pos === null ? { x: 0, y: 0 } : pos;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Properties
 | 
					// Properties
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Object.defineProperty(BaseWindow.prototype, 'autoHideMenuBar', {
 | 
					Object.defineProperty(BaseWindow.prototype, 'autoHideMenuBar', {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2580,46 +2580,6 @@ describe('BrowserWindow module', () => {
 | 
				
			||||||
        expect(w.getWindowButtonPosition()).to.deep.equal(newPos);
 | 
					        expect(w.getWindowButtonPosition()).to.deep.equal(newPos);
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					 | 
				
			||||||
    // The set/getTrafficLightPosition APIs are deprecated.
 | 
					 | 
				
			||||||
    describe('BrowserWindow.getTrafficLightPosition(pos)', () => {
 | 
					 | 
				
			||||||
      it('returns { x: 0, y: 0 } when there is no custom position', () => {
 | 
					 | 
				
			||||||
        const w = new BrowserWindow({ show: false });
 | 
					 | 
				
			||||||
        expect(w.getTrafficLightPosition()).to.deep.equal({ x: 0, y: 0 });
 | 
					 | 
				
			||||||
      });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      it('gets position property for "hidden" titleBarStyle', () => {
 | 
					 | 
				
			||||||
        const w = new BrowserWindow({ show: false, titleBarStyle: 'hidden', trafficLightPosition: pos });
 | 
					 | 
				
			||||||
        expect(w.getTrafficLightPosition()).to.deep.equal(pos);
 | 
					 | 
				
			||||||
      });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      it('gets position property for "customButtonsOnHover" titleBarStyle', () => {
 | 
					 | 
				
			||||||
        const w = new BrowserWindow({ show: false, titleBarStyle: 'customButtonsOnHover', trafficLightPosition: pos });
 | 
					 | 
				
			||||||
        expect(w.getTrafficLightPosition()).to.deep.equal(pos);
 | 
					 | 
				
			||||||
      });
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    describe('BrowserWindow.setTrafficLightPosition(pos)', () => {
 | 
					 | 
				
			||||||
      it('resets the position when { x: 0, y: 0 } is passed', () => {
 | 
					 | 
				
			||||||
        const w = new BrowserWindow({ show: false, titleBarStyle: 'hidden', trafficLightPosition: pos });
 | 
					 | 
				
			||||||
        w.setTrafficLightPosition({ x: 0, y: 0 });
 | 
					 | 
				
			||||||
        expect(w.getTrafficLightPosition()).to.deep.equal({ x: 0, y: 0 });
 | 
					 | 
				
			||||||
      });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      it('sets position property for "hidden" titleBarStyle', () => {
 | 
					 | 
				
			||||||
        const w = new BrowserWindow({ show: false, titleBarStyle: 'hidden', trafficLightPosition: pos });
 | 
					 | 
				
			||||||
        const newPos = { x: 20, y: 20 };
 | 
					 | 
				
			||||||
        w.setTrafficLightPosition(newPos);
 | 
					 | 
				
			||||||
        expect(w.getTrafficLightPosition()).to.deep.equal(newPos);
 | 
					 | 
				
			||||||
      });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      it('sets position property for "customButtonsOnHover" titleBarStyle', () => {
 | 
					 | 
				
			||||||
        const w = new BrowserWindow({ show: false, titleBarStyle: 'customButtonsOnHover', trafficLightPosition: pos });
 | 
					 | 
				
			||||||
        const newPos = { x: 20, y: 20 };
 | 
					 | 
				
			||||||
        w.setTrafficLightPosition(newPos);
 | 
					 | 
				
			||||||
        expect(w.getTrafficLightPosition()).to.deep.equal(newPos);
 | 
					 | 
				
			||||||
      });
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ifdescribe(process.platform === 'win32')('BrowserWindow.setAppDetails(options)', () => {
 | 
					  ifdescribe(process.platform === 'win32')('BrowserWindow.setAppDetails(options)', () => {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue