Bugfix - Terminal Docking Issues (#1145)

Bugfix - Terminal Docking Issues
This commit is contained in:
Eugene
2019-06-30 23:42:29 +02:00
committed by GitHub
3 changed files with 19 additions and 9 deletions

View File

@@ -1,7 +1,7 @@
appearance: appearance:
dock: off dock: off
dockScreen: current dockScreen: current
dockFill: 50 dockFill: 0.5
tabsLocation: top tabsLocation: top
cycleTabs: true cycleTabs: true
theme: Standard theme: Standard

View File

@@ -30,7 +30,8 @@ export class DockingService {
} }
const newBounds: Bounds = { x: 0, y: 0, width: 0, height: 0 } const newBounds: Bounds = { x: 0, y: 0, width: 0, height: 0 }
const fill = this.config.store.appearance.dockFill
const fill = this.config.store.appearance.dockFill <= 1 ? this.config.store.appearance.dockFill : 1;
const [minWidth, minHeight] = this.hostApp.getWindow().getMinimumSize() const [minWidth, minHeight] = this.hostApp.getWindow().getMinimumSize()
if (dockSide === 'left' || dockSide === 'right') { if (dockSide === 'left' || dockSide === 'right') {
@@ -63,15 +64,15 @@ export class DockingService {
} }
getScreens () { getScreens () {
return this.electron.screen.getAllDisplays().map((display, index) => { const primaryDisplayID = this.electron.screen.getPrimaryDisplay().id;
return this.electron.screen.getAllDisplays().sort((a,b) => (
a.bounds.x === b.bounds.x ? a.bounds.y - b.bounds.y : a.bounds.x - b.bounds.x
)).map((display,index) => {
return { return {
id: display.id, id: display.id,
name: [ name: display.id === primaryDisplayID ? 'Primary Display' : `Display ${index +1}`,
'Primary display',
'Secondary display',
][index] || `Display ${index + 1}`,
} }
}) });
} }
private repositionWindow () { private repositionWindow () {

View File

@@ -1,7 +1,7 @@
import * as yaml from 'js-yaml' import * as yaml from 'js-yaml'
import * as os from 'os' import * as os from 'os'
import { Subscription } from 'rxjs' import { Subscription } from 'rxjs'
import { Component, Inject, Input, HostBinding } from '@angular/core' import { Component, Inject, Input, HostBinding, NgZone } from '@angular/core'
import { import {
ElectronService, ElectronService,
DockingService, DockingService,
@@ -47,6 +47,7 @@ export class SettingsTabComponent extends BaseTabComponent {
public hostApp: HostAppService, public hostApp: HostAppService,
public homeBase: HomeBaseService, public homeBase: HomeBaseService,
public shellIntegration: ShellIntegrationService, public shellIntegration: ShellIntegrationService,
public zone: NgZone,
hotkeys: HotkeysService, hotkeys: HotkeysService,
@Inject(SettingsTabProvider) public settingsProviders: SettingsTabProvider[], @Inject(SettingsTabProvider) public settingsProviders: SettingsTabProvider[],
@Inject(Theme) public themes: Theme[], @Inject(Theme) public themes: Theme[],
@@ -68,6 +69,14 @@ export class SettingsTabComponent extends BaseTabComponent {
this.configSubscription = config.changed$.subscribe(onConfigChange) this.configSubscription = config.changed$.subscribe(onConfigChange)
onConfigChange() onConfigChange()
const onScreenChange = () => {
this.zone.run(() => this.screens = this.docking.getScreens());
}
electron.screen.on('display-added', onScreenChange);
electron.screen.on('display-removed', onScreenChange);
electron.screen.on('display-metrics-changed', onScreenChange);
hotkeys.getHotkeyDescriptions().then(descriptions => { hotkeys.getHotkeyDescriptions().then(descriptions => {
this.hotkeyDescriptions = descriptions this.hotkeyDescriptions = descriptions
}) })