diff --git a/app/ui/window.ts b/app/ui/window.ts index cbe89bfa..28dccde2 100644 --- a/app/ui/window.ts +++ b/app/ui/window.ts @@ -221,7 +221,7 @@ export function newWindow( // app buttons for (const ev of ['maximize', 'unmaximize', 'minimize', 'restore'] as any) { window.on(ev, () => { - rpc.emit('windowGeometry change', {}); + rpc.emit('windowGeometry change', {isMaximized: window.isMaximized()}); }); } window.on('move', () => { diff --git a/lib/actions/ui.ts b/lib/actions/ui.ts index af947222..a2fa6d75 100644 --- a/lib/actions/ui.ts +++ b/lib/actions/ui.ts @@ -102,9 +102,10 @@ export function setFontSmoothing() { }; } -export function windowGeometryUpdated(): HyperActions { +export function windowGeometryUpdated({isMaximized}: {isMaximized: boolean}): HyperActions { return { - type: UI_WINDOW_GEOMETRY_CHANGED + type: UI_WINDOW_GEOMETRY_CHANGED, + isMaximized }; } diff --git a/lib/constants/ui.ts b/lib/constants/ui.ts index b2796216..9a4f67f6 100644 --- a/lib/constants/ui.ts +++ b/lib/constants/ui.ts @@ -69,6 +69,7 @@ export interface UIWindowUnmaximizeAction { } export interface UIWindowGeometryChangedAction { type: typeof UI_WINDOW_GEOMETRY_CHANGED; + isMaximized: boolean; } export interface UIOpenFileAction { type: typeof UI_OPEN_FILE; diff --git a/lib/index.tsx b/lib/index.tsx index 5d31ef04..41296004 100644 --- a/lib/index.tsx +++ b/lib/index.tsx @@ -215,8 +215,8 @@ rpc.on('move', (window) => { store_.dispatch(uiActions.windowMove(window)); }); -rpc.on('windowGeometry change', () => { - store_.dispatch(uiActions.windowGeometryUpdated()); +rpc.on('windowGeometry change', (data) => { + store_.dispatch(uiActions.windowGeometryUpdated(data)); }); rpc.on('add notification', ({text, url, dismissable}) => { diff --git a/lib/reducers/ui.ts b/lib/reducers/ui.ts index 4405f6fc..b2aef703 100644 --- a/lib/reducers/ui.ts +++ b/lib/reducers/ui.ts @@ -1,6 +1,3 @@ -import {remote} from 'electron'; -// TODO: Should be updates to new async API https://medium.com/@nornagon/electrons-remote-module-considered-harmful-70d69500f31 - import Immutable, {Immutable as ImmutableType} from 'seamless-immutable'; import {decorateUIReducer} from '../utils/plugins'; import {CONFIG_LOAD, CONFIG_RELOAD} from '../constants/config'; @@ -113,8 +110,6 @@ const initial: uiState = Immutable>({ disableLigatures: false }); -const currentWindow = remote.getCurrentWindow(); - const reducer: IUiReducer = (state = initial, action) => { let state_ = state; let isMax; @@ -380,7 +375,7 @@ const reducer: IUiReducer = (state = initial, action) => { break; case UI_WINDOW_GEOMETRY_CHANGED: - isMax = currentWindow.isMaximized(); + isMax = action.isMaximized; if (state.maximized !== isMax) { state_ = state.set('maximized', isMax); }