Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
88a4b7a0
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
88a4b7a0
编写于
11月 08, 2016
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
title - make fullscreen state available to browser
上级
ae23162b
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
54 addition
and
15 deletion
+54
-15
src/vs/base/browser/browser.ts
src/vs/base/browser/browser.ts
+35
-8
src/vs/code/electron-main/window.ts
src/vs/code/electron-main/window.ts
+4
-0
src/vs/workbench/electron-browser/integration.ts
src/vs/workbench/electron-browser/integration.ts
+2
-0
src/vs/workbench/electron-browser/main.ts
src/vs/workbench/electron-browser/main.ts
+11
-0
src/vs/workbench/electron-browser/shell.ts
src/vs/workbench/electron-browser/shell.ts
+1
-6
src/vs/workbench/services/message/browser/media/messageList.css
.../workbench/services/message/browser/media/messageList.css
+0
-0
src/vs/workbench/services/message/browser/messageList.ts
src/vs/workbench/services/message/browser/messageList.ts
+1
-1
未找到文件。
src/vs/base/browser/browser.ts
浏览文件 @
88a4b7a0
...
...
@@ -9,9 +9,11 @@ import * as Platform from 'vs/base/common/platform';
import
Event
,
{
Emitter
}
from
'
vs/base/common/event
'
;
import
{
IDisposable
}
from
'
vs/base/common/lifecycle
'
;
class
Zoom
Manager
{
class
Window
Manager
{
public
static
INSTANCE
=
new
ZoomManager
();
public
static
INSTANCE
=
new
WindowManager
();
private
_fullscreen
:
boolean
;
private
_zoomLevel
:
number
=
0
;
private
_zoomFactor
:
number
=
0
;
...
...
@@ -22,6 +24,9 @@ class ZoomManager {
private
_onDidChangeZoomLevel
:
Emitter
<
number
>
=
new
Emitter
<
number
>
();
public
onDidChangeZoomLevel
:
Event
<
number
>
=
this
.
_onDidChangeZoomLevel
.
event
;
private
_onDidChangeFullscreen
:
Emitter
<
void
>
=
new
Emitter
<
void
>
();
public
onDidChangeFullscreen
:
Event
<
void
>
=
this
.
_onDidChangeFullscreen
.
event
;
public
getZoomLevel
():
number
{
return
this
.
_zoomLevel
;
}
...
...
@@ -62,27 +67,49 @@ class ZoomManager {
(
<
any
>
ctx
).
backingStorePixelRatio
||
1
;
return
dpr
/
bsr
;
}
public
setFullscreen
(
fullscreen
:
boolean
):
void
{
if
(
this
.
_fullscreen
===
fullscreen
)
{
return
;
}
this
.
_fullscreen
=
fullscreen
;
this
.
_onDidChangeFullscreen
.
fire
();
}
public
isFullscreen
():
boolean
{
return
this
.
_fullscreen
;
}
}
/** A zoom index, e.g. 1, 2, 3 */
export
function
getZoomLevel
():
number
{
return
Zoom
Manager
.
INSTANCE
.
getZoomLevel
();
return
Window
Manager
.
INSTANCE
.
getZoomLevel
();
}
/** The zoom scale for an index, e.g. 1, 1.2, 1.4 */
export
function
getZoomFactor
():
number
{
return
Zoom
Manager
.
INSTANCE
.
getZoomFactor
();
return
Window
Manager
.
INSTANCE
.
getZoomFactor
();
}
export
function
getPixelRatio
():
number
{
return
Zoom
Manager
.
INSTANCE
.
getPixelRatio
();
return
Window
Manager
.
INSTANCE
.
getPixelRatio
();
}
export
function
setZoomLevel
(
zoomLevel
:
number
):
void
{
Zoom
Manager
.
INSTANCE
.
setZoomLevel
(
zoomLevel
);
Window
Manager
.
INSTANCE
.
setZoomLevel
(
zoomLevel
);
}
export
function
setZoomFactor
(
zoomFactor
:
number
):
void
{
Zoom
Manager
.
INSTANCE
.
setZoomFactor
(
zoomFactor
);
Window
Manager
.
INSTANCE
.
setZoomFactor
(
zoomFactor
);
}
export
function
onDidChangeZoomLevel
(
callback
:
(
zoomLevel
:
number
)
=>
void
):
IDisposable
{
return
ZoomManager
.
INSTANCE
.
onDidChangeZoomLevel
(
callback
);
return
WindowManager
.
INSTANCE
.
onDidChangeZoomLevel
(
callback
);
}
export
function
setFullscreen
(
fullscreen
:
boolean
):
void
{
WindowManager
.
INSTANCE
.
setFullscreen
(
fullscreen
);
}
export
function
isFullscreen
():
boolean
{
return
WindowManager
.
INSTANCE
.
isFullscreen
();
}
export
function
onDidChangeFullscreen
(
callback
:
()
=>
void
):
IDisposable
{
return
WindowManager
.
INSTANCE
.
onDidChangeFullscreen
(
callback
);
}
const
userAgent
=
navigator
.
userAgent
;
...
...
src/vs/code/electron-main/window.ts
浏览文件 @
88a4b7a0
...
...
@@ -96,6 +96,7 @@ export interface IWindowConfiguration extends ParsedArgs {
userEnv
:
platform
.
IProcessEnvironment
;
zoomLevel
?:
number
;
fullscreen
?:
boolean
;
workspacePath
?:
string
;
...
...
@@ -442,6 +443,9 @@ export class VSCodeWindow {
windowConfiguration
.
zoomLevel
=
zoomLevel
;
}
// Set fullscreen state
windowConfiguration
.
fullscreen
=
this
.
_win
.
isFullScreen
();
// Config (combination of process.argv and window configuration)
const
environment
=
parseArgs
(
process
.
argv
);
const
config
=
objects
.
assign
(
environment
,
windowConfiguration
);
...
...
src/vs/workbench/electron-browser/integration.ts
浏览文件 @
88a4b7a0
...
...
@@ -140,6 +140,7 @@ export class ElectronIntegration {
// Fullscreen Events
ipc
.
on
(
'
vscode:enterFullScreen
'
,
(
event
)
=>
{
this
.
partService
.
joinCreation
().
then
(()
=>
{
browser
.
setFullscreen
(
true
);
this
.
partService
.
addClass
(
'
fullscreen
'
);
if
(
!
this
.
partService
.
isTitleBarHidden
())
{
...
...
@@ -150,6 +151,7 @@ export class ElectronIntegration {
ipc
.
on
(
'
vscode:leaveFullScreen
'
,
(
event
)
=>
{
this
.
partService
.
joinCreation
().
then
(()
=>
{
browser
.
setFullscreen
(
false
);
this
.
partService
.
removeClass
(
'
fullscreen
'
);
if
(
!
this
.
partService
.
isTitleBarHidden
())
{
...
...
src/vs/workbench/electron-browser/main.ts
浏览文件 @
88a4b7a0
...
...
@@ -9,6 +9,7 @@ import nls = require('vs/nls');
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
WorkbenchShell
}
from
'
vs/workbench/electron-browser/shell
'
;
import
{
IOptions
}
from
'
vs/workbench/common/options
'
;
import
*
as
browser
from
'
vs/base/browser/browser
'
;
import
{
domContentLoaded
}
from
'
vs/base/browser/dom
'
;
import
errors
=
require
(
'
vs/base/common/errors
'
);
import
platform
=
require
(
'
vs/base/common/platform
'
);
...
...
@@ -29,6 +30,8 @@ import fs = require('fs');
import
gracefulFs
=
require
(
'
graceful-fs
'
);
import
{
IPath
,
IOpenFileRequest
}
from
'
vs/workbench/electron-browser/common
'
;
import
{
webFrame
}
from
'
electron
'
;
gracefulFs
.
gracefulify
(
fs
);
// enable gracefulFs
const
timers
=
(
<
any
>
window
).
MonacoEnvironment
.
timers
;
...
...
@@ -40,10 +43,18 @@ export interface IWindowConfiguration extends ParsedArgs, IOpenFileRequest {
userEnv
:
any
;
/* vs/code/electron-main/env/IProcessEnvironment*/
workspacePath
?:
string
;
zoomLevel
?:
number
;
fullscreen
?:
boolean
;
}
export
function
startup
(
configuration
:
IWindowConfiguration
):
TPromise
<
void
>
{
// Ensure others can listen to zoom level changes
browser
.
setZoomLevel
(
webFrame
.
getZoomLevel
());
browser
.
setZoomFactor
(
webFrame
.
getZoomFactor
());
browser
.
setFullscreen
(
!!
configuration
.
fullscreen
);
// Shell Options
const
filesToOpen
=
configuration
.
filesToOpen
&&
configuration
.
filesToOpen
.
length
?
toInputs
(
configuration
.
filesToOpen
)
:
null
;
const
filesToCreate
=
configuration
.
filesToCreate
&&
configuration
.
filesToCreate
.
length
?
toInputs
(
configuration
.
filesToCreate
)
:
null
;
...
...
src/vs/workbench/electron-browser/shell.ts
浏览文件 @
88a4b7a0
...
...
@@ -18,7 +18,6 @@ import errors = require('vs/base/common/errors');
import
{
toErrorMessage
}
from
'
vs/base/common/errorMessage
'
;
import
product
from
'
vs/platform/product
'
;
import
pkg
from
'
vs/platform/package
'
;
import
*
as
browser
from
'
vs/base/browser/browser
'
;
import
{
ContextViewService
}
from
'
vs/platform/contextview/browser/contextViewService
'
;
import
timer
=
require
(
'
vs/base/common/timer
'
);
import
{
Workbench
}
from
'
vs/workbench/electron-browser/workbench
'
;
...
...
@@ -87,7 +86,7 @@ import { IURLService } from 'vs/platform/url/common/url';
import
{
ReloadWindowAction
}
from
'
vs/workbench/electron-browser/actions
'
;
import
{
WorkspaceConfigurationService
}
from
'
vs/workbench/services/configuration/node/configurationService
'
;
import
{
ExtensionHostProcessWorker
}
from
'
vs/workbench/electron-browser/extensionHost
'
;
import
{
remote
,
webFrame
}
from
'
electron
'
;
import
{
remote
}
from
'
electron
'
;
// self registering services
import
'
vs/platform/opener/browser/opener.contribution
'
;
...
...
@@ -365,10 +364,6 @@ export class WorkbenchShell {
this
.
onUnexpectedError
(
error
);
});
// Ensure others can listen to zoom level changes
browser
.
setZoomLevel
(
webFrame
.
getZoomLevel
());
browser
.
setZoomFactor
(
webFrame
.
getZoomFactor
());
// Shell Class for CSS Scoping
$
(
this
.
container
).
addClass
(
'
monaco-shell
'
);
...
...
src/vs/workbench/services/message/browser/messageList.css
→
src/vs/workbench/services/message/browser/me
dia/me
ssageList.css
浏览文件 @
88a4b7a0
文件已移动
src/vs/workbench/services/message/browser/messageList.ts
浏览文件 @
88a4b7a0
...
...
@@ -5,7 +5,7 @@
'
use strict
'
;
import
'
vs/css!./messageList
'
;
import
'
vs/css!./me
dia/me
ssageList
'
;
import
nls
=
require
(
'
vs/nls
'
);
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
Builder
,
$
}
from
'
vs/base/browser/builder
'
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录