mirror of
https://github.com/quine-global/hyper.git
synced 2026-01-17 05:58:41 -09:00
parent
235b289bee
commit
2ebb2369d1
5 changed files with 1 additions and 95 deletions
39
app/index.js
39
app/index.js
|
|
@ -3,7 +3,6 @@ const {resolve} = require('path');
|
||||||
|
|
||||||
// Packages
|
// Packages
|
||||||
const {parse: parseUrl} = require('url');
|
const {parse: parseUrl} = require('url');
|
||||||
const electron = require('electron');
|
|
||||||
const {app, BrowserWindow, shell, Menu} = require('electron');
|
const {app, BrowserWindow, shell, Menu} = require('electron');
|
||||||
const {gitDescribe} = require('git-describe');
|
const {gitDescribe} = require('git-describe');
|
||||||
const uuid = require('uuid');
|
const uuid = require('uuid');
|
||||||
|
|
@ -248,40 +247,6 @@ app.on('ready', () => installDevExtensions(isDev).then(() => {
|
||||||
win.maximize();
|
win.maximize();
|
||||||
});
|
});
|
||||||
|
|
||||||
const findMenuItem = (items, id) => items.filter(item => item.id === id)[0];
|
|
||||||
|
|
||||||
const getMenuItem = id => findMenuItem(Menu.getApplicationMenu().items, id);
|
|
||||||
|
|
||||||
const getSubmenuItem = (menuItem, id) => findMenuItem(menuItem.submenu.items, id);
|
|
||||||
|
|
||||||
let isQuickFullScreenEnabled = false;
|
|
||||||
|
|
||||||
const toggleQuickFullScreenMenuItems = isQuickFullScreen => {
|
|
||||||
const windowMenu = getMenuItem('WINDOW');
|
|
||||||
const enterQuickFullScreenMenu = getSubmenuItem(windowMenu, 'ENTER_QUICK_FULL_SCREEN');
|
|
||||||
const leaveQuickFullScreenMenu = getSubmenuItem(windowMenu, 'LEAVE_QUICK_FULL_SCREEN');
|
|
||||||
enterQuickFullScreenMenu.visible = !isQuickFullScreen;
|
|
||||||
leaveQuickFullScreenMenu.visible = isQuickFullScreen;
|
|
||||||
isQuickFullScreenEnabled = isQuickFullScreen;
|
|
||||||
};
|
|
||||||
|
|
||||||
rpc.on('enter quick full screen', () => {
|
|
||||||
toggleQuickFullScreenMenuItems(true);
|
|
||||||
app.config.window.recordState(win);
|
|
||||||
const {width, height} = electron.screen.getPrimaryDisplay().workAreaSize;
|
|
||||||
win.setSize(width, height);
|
|
||||||
win.center();
|
|
||||||
});
|
|
||||||
|
|
||||||
rpc.on('leave quick full screen', () => {
|
|
||||||
toggleQuickFullScreenMenuItems(false);
|
|
||||||
const winSet = app.config.window.get();
|
|
||||||
const [width, height] = winSet.size;
|
|
||||||
win.setSize(width, height);
|
|
||||||
const [x, y] = winSet.position;
|
|
||||||
win.setPosition(x, y);
|
|
||||||
});
|
|
||||||
|
|
||||||
rpc.on('resize', ({uid, cols, rows}) => {
|
rpc.on('resize', ({uid, cols, rows}) => {
|
||||||
const session = sessions.get(uid);
|
const session = sessions.get(uid);
|
||||||
session.resize({cols, rows});
|
session.resize({cols, rows});
|
||||||
|
|
@ -360,9 +325,7 @@ app.on('ready', () => installDevExtensions(isDev).then(() => {
|
||||||
|
|
||||||
// the window can be closed by the browser process itself
|
// the window can be closed by the browser process itself
|
||||||
win.on('close', () => {
|
win.on('close', () => {
|
||||||
if (!isQuickFullScreenEnabled) {
|
app.config.window.recordState(win);
|
||||||
app.config.window.recordState(win);
|
|
||||||
}
|
|
||||||
windowSet.delete(win);
|
windowSet.delete(win);
|
||||||
rpc.destroy();
|
rpc.destroy();
|
||||||
deleteSessions();
|
deleteSessions();
|
||||||
|
|
|
||||||
23
app/menu.js
23
app/menu.js
|
|
@ -254,7 +254,6 @@ module.exports = ({createWindow, updatePlugins}) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const windowMenu = {
|
const windowMenu = {
|
||||||
id: 'WINDOW',
|
|
||||||
role: 'window',
|
role: 'window',
|
||||||
submenu: [
|
submenu: [
|
||||||
{
|
{
|
||||||
|
|
@ -313,28 +312,6 @@ module.exports = ({createWindow, updatePlugins}) => {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
role: 'togglefullscreen'
|
role: 'togglefullscreen'
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'ENTER_QUICK_FULL_SCREEN',
|
|
||||||
label: 'Enter Quick Full Screen',
|
|
||||||
accelerator: isMac ? 'Cmd+Enter' : 'Ctrl+Shift+Enter',
|
|
||||||
visible: true,
|
|
||||||
click(item, focusedWindow) {
|
|
||||||
if (focusedWindow) {
|
|
||||||
focusedWindow.rpc.emit('enter quick full screen req');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'LEAVE_QUICK_FULL_SCREEN',
|
|
||||||
label: 'Leave Quick Full Screen',
|
|
||||||
accelerator: isMac ? 'Cmd+Enter' : 'Ctrl+Shift+Enter',
|
|
||||||
visible: false,
|
|
||||||
click(item, focusedWindow) {
|
|
||||||
if (focusedWindow) {
|
|
||||||
focusedWindow.rpc.emit('leave quick full screen req');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,6 @@ import {
|
||||||
UI_MOVE_PREV_PANE,
|
UI_MOVE_PREV_PANE,
|
||||||
UI_SHOW_PREFERENCES,
|
UI_SHOW_PREFERENCES,
|
||||||
UI_WINDOW_MOVE,
|
UI_WINDOW_MOVE,
|
||||||
UI_ENTER_QUICK_FULL_SCREEN,
|
|
||||||
UI_LEAVE_QUICK_FULL_SCREEN,
|
|
||||||
UI_OPEN_FILE
|
UI_OPEN_FILE
|
||||||
} from '../constants/ui';
|
} from '../constants/ui';
|
||||||
|
|
||||||
|
|
@ -32,28 +30,6 @@ import {setActiveGroup} from './term-groups';
|
||||||
|
|
||||||
const {stat} = window.require('fs');
|
const {stat} = window.require('fs');
|
||||||
|
|
||||||
export function enterQuickFullScreen() {
|
|
||||||
return dispatch => {
|
|
||||||
dispatch({
|
|
||||||
type: UI_ENTER_QUICK_FULL_SCREEN,
|
|
||||||
effect() {
|
|
||||||
rpc.emit('enter quick full screen');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function leaveQuickFullScreen() {
|
|
||||||
return dispatch => {
|
|
||||||
dispatch({
|
|
||||||
type: UI_LEAVE_QUICK_FULL_SCREEN,
|
|
||||||
effect() {
|
|
||||||
rpc.emit('leave quick full screen');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function increaseFontSize() {
|
export function increaseFontSize() {
|
||||||
return (dispatch, getState) => {
|
return (dispatch, getState) => {
|
||||||
dispatch({
|
dispatch({
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,4 @@ export const UI_SHOW_PREFERENCES = 'UI_SHOW_PREFERENCES';
|
||||||
export const UI_WINDOW_MOVE = 'UI_WINDOW_MOVE';
|
export const UI_WINDOW_MOVE = 'UI_WINDOW_MOVE';
|
||||||
export const UI_WINDOW_MAXIMIZE = 'UI_WINDOW_MAXIMIZE';
|
export const UI_WINDOW_MAXIMIZE = 'UI_WINDOW_MAXIMIZE';
|
||||||
export const UI_WINDOW_UNMAXIMIZE = 'UI_WINDOW_UNMAXIMIZE';
|
export const UI_WINDOW_UNMAXIMIZE = 'UI_WINDOW_UNMAXIMIZE';
|
||||||
export const UI_ENTER_QUICK_FULL_SCREEN = 'UI_ENTER_QUICK_FULL_SCREEN';
|
|
||||||
export const UI_LEAVE_QUICK_FULL_SCREEN = 'UI_LEAVE_QUICK_FULL_SCREEN';
|
|
||||||
export const UI_OPEN_FILE = 'UI_OPEN_FILE';
|
export const UI_OPEN_FILE = 'UI_OPEN_FILE';
|
||||||
|
|
|
||||||
|
|
@ -80,14 +80,6 @@ rpc.on('split request vertical', () => {
|
||||||
store_.dispatch(termGroupActions.requestVerticalSplit());
|
store_.dispatch(termGroupActions.requestVerticalSplit());
|
||||||
});
|
});
|
||||||
|
|
||||||
rpc.on('enter quick full screen req', () => {
|
|
||||||
store_.dispatch(uiActions.enterQuickFullScreen());
|
|
||||||
});
|
|
||||||
|
|
||||||
rpc.on('leave quick full screen req', () => {
|
|
||||||
store_.dispatch(uiActions.leaveQuickFullScreen());
|
|
||||||
});
|
|
||||||
|
|
||||||
rpc.on('reset fontSize req', () => {
|
rpc.on('reset fontSize req', () => {
|
||||||
store_.dispatch(uiActions.resetFontSize());
|
store_.dispatch(uiActions.resetFontSize());
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue