Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Obs Studio
提交
89d6d5ff
O
Obs Studio
项目概览
小白菜888
/
Obs Studio
通知
4
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Obs Studio
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
89d6d5ff
编写于
8月 21, 2016
作者:
C
cg2121
提交者:
jp9000
8月 21, 2016
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
UI: Add option to make projectors always on top
Closes jp9000/obs-studio#563
上级
18276c0c
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
41 addition
and
20 deletion
+41
-20
obs/data/locale/en-US.ini
obs/data/locale/en-US.ini
+1
-0
obs/forms/OBSBasicSettings.ui
obs/forms/OBSBasicSettings.ui
+18
-11
obs/platform-osx.mm
obs/platform-osx.mm
+2
-2
obs/platform-windows.cpp
obs/platform-windows.cpp
+2
-2
obs/platform-x11.cpp
obs/platform-x11.cpp
+2
-2
obs/platform.hpp
obs/platform.hpp
+3
-3
obs/window-basic-settings.cpp
obs/window-basic-settings.cpp
+8
-0
obs/window-projector.cpp
obs/window-projector.cpp
+5
-0
未找到文件。
obs/data/locale/en-US.ini
浏览文件 @
89d6d5ff
...
...
@@ -376,6 +376,7 @@ Basic.Settings.General.Language="Language"
Basic.Settings.General.WarnBeforeStartingStream
=
"Show confirmation dialog when starting streams"
Basic.Settings.General.WarnBeforeStoppingStream
=
"Show confirmation dialog when stopping streams"
Basic.Settings.General.HideProjectorCursor
=
"Hide cursor over projectors"
Basic.Settings.General.ProjectorAlwaysOnTop
=
"Make projectors always on top"
Basic.Settings.General.Snapping
=
"Source Alignment Snapping"
Basic.Settings.General.ScreenSnapping
=
"Snap Sources to edge of screen"
Basic.Settings.General.CenterSnapping
=
"Snap Sources to horizontal and vertical center"
...
...
obs/forms/OBSBasicSettings.ui
浏览文件 @
89d6d5ff
...
...
@@ -185,21 +185,21 @@
</property>
</widget>
</item>
<item
row=
"
6
"
column=
"1"
>
<item
row=
"
7
"
column=
"1"
>
<widget
class=
"QCheckBox"
name=
"recordWhenStreaming"
>
<property
name=
"text"
>
<string>
Basic.Settings.General.RecordWhenStreaming
</string>
</property>
</widget>
</item>
<item
row=
"
8
"
column=
"1"
>
<item
row=
"
9
"
column=
"1"
>
<widget
class=
"QCheckBox"
name=
"systemTrayEnabled"
>
<property
name=
"text"
>
<string>
Basic.Settings.General.SysTrayEnabled
</string>
</property>
</widget>
</item>
<item
row=
"
9
"
column=
"1"
>
<item
row=
"
10
"
column=
"1"
>
<widget
class=
"QCheckBox"
name=
"systemTrayWhenStarted"
>
<property
name=
"enabled"
>
<bool>
false
</bool>
...
...
@@ -209,14 +209,14 @@
</property>
</widget>
</item>
<item
row=
"1
0
"
column=
"0"
colspan=
"2"
>
<item
row=
"1
1
"
column=
"0"
colspan=
"2"
>
<widget
class=
"Line"
name=
"line_4"
>
<property
name=
"orientation"
>
<enum>
Qt::Horizontal
</enum>
</property>
</widget>
</item>
<item
row=
"1
1
"
column=
"0"
colspan=
"2"
>
<item
row=
"1
2
"
column=
"0"
colspan=
"2"
>
<widget
class=
"QGroupBox"
name=
"groupBox_10"
>
<property
name=
"enabled"
>
<bool>
true
</bool>
...
...
@@ -316,7 +316,7 @@
</property>
</widget>
</item>
<item
row=
"
7
"
column=
"1"
>
<item
row=
"
8
"
column=
"1"
>
<widget
class=
"QCheckBox"
name=
"keepRecordStreamStops"
>
<property
name=
"enabled"
>
<bool>
false
</bool>
...
...
@@ -326,6 +326,13 @@
</property>
</widget>
</item>
<item
row=
"6"
column=
"1"
>
<widget
class=
"QCheckBox"
name=
"projectorAlwaysOnTop"
>
<property
name=
"text"
>
<string>
Basic.Settings.General.ProjectorAlwaysOnTop
</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget
class=
"QWidget"
name=
"streamPage"
>
...
...
@@ -2538,8 +2545,8 @@
<rect>
<x>
0
</x>
<y>
0
</y>
<width>
98
</width>
<height>
28
</height>
<width>
80
</width>
<height>
16
</height>
</rect>
</property>
</widget>
...
...
@@ -2903,9 +2910,9 @@
<property
name=
"geometry"
>
<rect>
<x>
0
</x>
<y>
-206
</y>
<width>
803
</width>
<height>
820
</height>
<y>
0
</y>
<width>
559
</width>
<height>
681
</height>
</rect>
</property>
<layout
class=
"QVBoxLayout"
name=
"verticalLayout_16"
>
...
...
obs/platform-osx.mm
浏览文件 @
89d6d5ff
...
...
@@ -132,12 +132,12 @@ vector<string> GetPreferredLocales()
return
result
;
}
bool
IsAlwaysOnTop
(
Q
MainWindow
*
window
)
bool
IsAlwaysOnTop
(
Q
Widget
*
window
)
{
return
(
window
->
windowFlags
()
&
Qt
::
WindowStaysOnTopHint
)
!=
0
;
}
void
SetAlwaysOnTop
(
Q
MainWindow
*
window
,
bool
enable
)
void
SetAlwaysOnTop
(
Q
Widget
*
window
,
bool
enable
)
{
Qt
::
WindowFlags
flags
=
window
->
windowFlags
();
...
...
obs/platform-windows.cpp
浏览文件 @
89d6d5ff
...
...
@@ -203,13 +203,13 @@ void SetAeroEnabled(bool enable)
func
(
enable
?
DWM_EC_ENABLECOMPOSITION
:
DWM_EC_DISABLECOMPOSITION
);
}
bool
IsAlwaysOnTop
(
Q
MainWindow
*
window
)
bool
IsAlwaysOnTop
(
Q
Widget
*
window
)
{
DWORD
exStyle
=
GetWindowLong
((
HWND
)
window
->
winId
(),
GWL_EXSTYLE
);
return
(
exStyle
&
WS_EX_TOPMOST
)
!=
0
;
}
void
SetAlwaysOnTop
(
Q
MainWindow
*
window
,
bool
enable
)
void
SetAlwaysOnTop
(
Q
Widget
*
window
,
bool
enable
)
{
HWND
hwnd
=
(
HWND
)
window
->
winId
();
SetWindowPos
(
hwnd
,
enable
?
HWND_TOPMOST
:
HWND_NOTOPMOST
,
0
,
0
,
0
,
0
,
...
...
obs/platform-x11.cpp
浏览文件 @
89d6d5ff
...
...
@@ -148,12 +148,12 @@ vector<string> GetPreferredLocales()
return
{};
}
bool
IsAlwaysOnTop
(
Q
MainWindow
*
window
)
bool
IsAlwaysOnTop
(
Q
Widget
*
window
)
{
return
(
window
->
windowFlags
()
&
Qt
::
WindowStaysOnTopHint
)
!=
0
;
}
void
SetAlwaysOnTop
(
Q
MainWindow
*
window
,
bool
enable
)
void
SetAlwaysOnTop
(
Q
Widget
*
window
,
bool
enable
)
{
Qt
::
WindowFlags
flags
=
window
->
windowFlags
();
...
...
obs/platform.hpp
浏览文件 @
89d6d5ff
...
...
@@ -22,7 +22,7 @@
#include <string>
#include <vector>
class
Q
MainWindow
;
class
Q
Widget
;
struct
MonitorInfo
{
int32_t
x
,
y
;
...
...
@@ -45,8 +45,8 @@ std::string GetDefaultVideoSavePath();
std
::
vector
<
std
::
string
>
GetPreferredLocales
();
bool
IsAlwaysOnTop
(
Q
MainWindow
*
window
);
void
SetAlwaysOnTop
(
Q
MainWindow
*
window
,
bool
enable
);
bool
IsAlwaysOnTop
(
Q
Widget
*
window
);
void
SetAlwaysOnTop
(
Q
Widget
*
window
,
bool
enable
);
#ifdef _WIN32
uint32_t
GetWindowsVersion
();
...
...
obs/window-basic-settings.cpp
浏览文件 @
89d6d5ff
...
...
@@ -272,6 +272,7 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
HookWidget
(
ui
->
warnBeforeStreamStart
,
CHECK_CHANGED
,
GENERAL_CHANGED
);
HookWidget
(
ui
->
warnBeforeStreamStop
,
CHECK_CHANGED
,
GENERAL_CHANGED
);
HookWidget
(
ui
->
hideProjectorCursor
,
CHECK_CHANGED
,
GENERAL_CHANGED
);
HookWidget
(
ui
->
projectorAlwaysOnTop
,
CHECK_CHANGED
,
GENERAL_CHANGED
);
HookWidget
(
ui
->
recordWhenStreaming
,
CHECK_CHANGED
,
GENERAL_CHANGED
);
HookWidget
(
ui
->
keepRecordStreamStops
,
CHECK_CHANGED
,
GENERAL_CHANGED
);
HookWidget
(
ui
->
systemTrayEnabled
,
CHECK_CHANGED
,
GENERAL_CHANGED
);
...
...
@@ -887,6 +888,10 @@ void OBSBasicSettings::LoadGeneralSettings()
"BasicWindow"
,
"HideProjectorCursor"
);
ui
->
hideProjectorCursor
->
setChecked
(
hideProjectorCursor
);
bool
projectorAlwaysOnTop
=
config_get_bool
(
GetGlobalConfig
(),
"BasicWindow"
,
"ProjectorAlwaysOnTop"
);
ui
->
projectorAlwaysOnTop
->
setChecked
(
projectorAlwaysOnTop
);
loading
=
false
;
}
...
...
@@ -2236,6 +2241,9 @@ void OBSBasicSettings::SaveGeneralSettings()
config_set_bool
(
GetGlobalConfig
(),
"BasicWindow"
,
"HideProjectorCursor"
,
ui
->
hideProjectorCursor
->
isChecked
());
config_set_bool
(
GetGlobalConfig
(),
"BasicWindow"
,
"ProjectorAlwaysOnTop"
,
ui
->
projectorAlwaysOnTop
->
isChecked
());
if
(
WidgetChanged
(
ui
->
recordWhenStreaming
))
config_set_bool
(
GetGlobalConfig
(),
"BasicWindow"
,
...
...
obs/window-projector.cpp
浏览文件 @
89d6d5ff
...
...
@@ -53,6 +53,11 @@ void OBSProjector::Init(int monitor)
setGeometry
(
mi
.
x
,
mi
.
y
,
mi
.
cx
,
mi
.
cy
);
bool
alwaysOnTop
=
config_get_bool
(
GetGlobalConfig
(),
"BasicWindow"
,
"ProjectorAlwaysOnTop"
);
if
(
alwaysOnTop
)
SetAlwaysOnTop
(
this
,
true
);
show
();
if
(
source
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录