Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lindexi_gd
Uno
提交
d378ff9f
U
Uno
项目概览
lindexi_gd
/
Uno
大约 1 年 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
Uno
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d378ff9f
编写于
6月 01, 2023
作者:
J
Jerome Laban
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(linux): Adjust initial position on ubuntu distro
上级
03c86c15
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
53 addition
and
18 deletion
+53
-18
src/AddIns/Uno.UI.MediaPlayer.Skia.Gtk/VideoView.cs
src/AddIns/Uno.UI.MediaPlayer.Skia.Gtk/VideoView.cs
+53
-18
未找到文件。
src/AddIns/Uno.UI.MediaPlayer.Skia.Gtk/VideoView.cs
浏览文件 @
d378ff9f
...
...
@@ -88,15 +88,25 @@ namespace Uno.UI.Media
{
if
(
_videoWindow
?.
TransientFor
is
not
null
)
{
if
(
this
.
Log
().
IsEnabled
(
Microsoft
.
Extensions
.
Logging
.
LogLevel
.
Debug
)
)
if
(
_lastArrange
is
{
Width
:
>
1
,
Height
:
>
1
}
)
{
this
.
Log
().
Debug
(
$"
{
GetHashCode
():
X8
}
Showing video window"
);
if
(
this
.
Log
().
IsEnabled
(
Microsoft
.
Extensions
.
Logging
.
LogLevel
.
Debug
))
{
this
.
Log
().
Debug
(
$"
{
GetHashCode
():
X8
}
Showing video window"
);
}
// Only show the child window if there's a parent set. If not, the window will
// appear floating outside the app.
_videoWindow
.
Show
();
ApplyLastArrange
();
}
else
{
if
(
this
.
Log
().
IsEnabled
(
Microsoft
.
Extensions
.
Logging
.
LogLevel
.
Debug
))
{
this
.
Log
().
Debug
(
$"
{
GetHashCode
():
X8
}
Skipping show show video window, the parent widget is not arranged"
);
}
}
// Only show the child window if there's a parent set. If not, the window will
// appear floating outside the app.
_videoWindow
.
Show
();
ApplyLastArrange
();
}
else
{
...
...
@@ -138,7 +148,6 @@ namespace Uno.UI.Media
DestroyChildWindow
();
_mediaPlayer
=
value
;
CreateChildWindow
();
}
}
...
...
@@ -171,7 +180,7 @@ namespace Uno.UI.Media
if
(
this
.
Log
().
IsEnabled
(
Microsoft
.
Extensions
.
Logging
.
LogLevel
.
Debug
))
{
this
.
Log
().
Debug
(
$"
{
GetHashCode
():
X8
}
Attaching player
"
);
this
.
Log
().
Debug
(
$"
{
GetHashCode
():
X8
}
Creating Child Window
"
);
}
//
...
...
@@ -198,15 +207,14 @@ namespace Uno.UI.Media
// Make the video window black (as we're will not be rendering it)
_videoWindow
.
AppPaintable
=
true
;
// Show the window once, so that we can get an ID for it.
_videoWindow
.
Show
();
// Hide it immediately so it does not show outside of our own window
_videoWindow
.
Hide
();
// Realize the window, so that we can get an ID for it to provide to VLC
// It is important to create the window without showing it first, otherwise
// the window will be rendered on top of the app, and will not be able to
// be moved or resized, or may not be rendered at the right position in the current
// widget's window.
_videoWindow
.
Realize
();
AssignWindowId
();
AttachToWidget
();
}
internal
static
void
ReportMacOSNotSupported
()
...
...
@@ -219,9 +227,16 @@ namespace Uno.UI.Media
private
void
AttachToWidget
()
{
if
(
IsRealized
&&
_videoWindow
is
not
null
)
if
(
IsRealized
)
{
// Reparent the window to the current window, so it appears inside, positition outside the bounds of the window
CreateChildWindow
();
if
(
_videoWindow
is
null
)
{
throw
new
InvalidOperationException
(
$"_videoWindow cannot be null"
);
}
// Reparent the window to the current window, so it appears inside, position outside the bounds of the window
// to avoid a temporary visual glitch
_videoWindow
.
Window
.
Reparent
(
Toplevel
.
Window
,
Allocation
.
X
,
Allocation
.
Y
);
...
...
@@ -268,6 +283,26 @@ namespace Uno.UI.Media
}
}
protected
override
void
OnSizeAllocated
(
Rectangle
allocation
)
{
base
.
OnSizeAllocated
(
allocation
);
if
(
this
.
Log
().
IsEnabled
(
Microsoft
.
Extensions
.
Logging
.
LogLevel
.
Debug
))
{
this
.
Log
().
Debug
(
$"
{
GetHashCode
():
X8
}
OnSizeAllocated(
{
allocation
.
Width
}
x
{
allocation
.
Height
}
)"
);
}
if
(
_lastArrange
is
null
&&
allocation
is
{
Width
:
>
1
,
Height
:
>
1
})
{
// Store the first valid allocation to avoid the
// child window to show at a wrong initial position.
_lastArrange
=
allocation
;
ApplyLastArrange
();
}
}
private
void
DetachFromWidget
()
{
if
(!
IsRealized
&&
_videoWindow
is
not
null
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录