Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
qemu
提交
f98f43ea
Q
qemu
项目概览
openeuler
/
qemu
通知
10
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Q
qemu
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
f98f43ea
编写于
2月 27, 2015
作者:
G
Gerd Hoffmann
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
gtk: handle switch_surface(NULL) properly
Signed-off-by:
N
Gerd Hoffmann
<
kraxel@redhat.com
>
上级
f2a58101
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
21 addition
and
5 deletion
+21
-5
ui/gtk.c
ui/gtk.c
+21
-5
未找到文件。
ui/gtk.c
浏览文件 @
f98f43ea
...
...
@@ -363,6 +363,9 @@ static void gd_update_geometry_hints(VirtualConsole *vc)
GtkWindow
*
geo_window
;
if
(
vc
->
type
==
GD_VC_GFX
)
{
if
(
!
vc
->
gfx
.
ds
)
{
return
;
}
if
(
s
->
free_scale
)
{
geo
.
min_width
=
surface_width
(
vc
->
gfx
.
ds
)
*
VC_SCALE_MIN
;
geo
.
min_height
=
surface_height
(
vc
->
gfx
.
ds
)
*
VC_SCALE_MIN
;
...
...
@@ -574,22 +577,28 @@ static void gd_switch(DisplayChangeListener *dcl,
VirtualConsole
*
vc
=
container_of
(
dcl
,
VirtualConsole
,
gfx
.
dcl
);
bool
resized
=
true
;
trace_gd_switch
(
vc
->
label
,
surface_width
(
surface
),
surface_height
(
surface
));
trace_gd_switch
(
vc
->
label
,
surface
?
surface_width
(
surface
)
:
0
,
surface
?
surface_height
(
surface
)
:
0
);
if
(
vc
->
gfx
.
surface
)
{
cairo_surface_destroy
(
vc
->
gfx
.
surface
);
vc
->
gfx
.
surface
=
NULL
;
}
if
(
vc
->
gfx
.
convert
)
{
pixman_image_unref
(
vc
->
gfx
.
convert
);
vc
->
gfx
.
convert
=
NULL
;
}
if
(
vc
->
gfx
.
ds
&&
if
(
vc
->
gfx
.
ds
&&
surface
&&
surface_width
(
vc
->
gfx
.
ds
)
==
surface_width
(
surface
)
&&
surface_height
(
vc
->
gfx
.
ds
)
==
surface_height
(
surface
))
{
resized
=
false
;
}
vc
->
gfx
.
ds
=
surface
;
if
(
vc
->
gfx
.
convert
)
{
pixman_image_unref
(
vc
->
gfx
.
convert
);
vc
->
gfx
.
convert
=
NULL
;
if
(
!
surface
)
{
return
;
}
if
(
surface
->
format
==
PIXMAN_x8r8g8b8
)
{
...
...
@@ -690,6 +699,9 @@ static gboolean gd_draw_event(GtkWidget *widget, cairo_t *cr, void *opaque)
if
(
!
gtk_widget_get_realized
(
widget
))
{
return
FALSE
;
}
if
(
!
vc
->
gfx
.
ds
)
{
return
FALSE
;
}
fbw
=
surface_width
(
vc
->
gfx
.
ds
);
fbh
=
surface_height
(
vc
->
gfx
.
ds
);
...
...
@@ -771,6 +783,10 @@ static gboolean gd_motion_event(GtkWidget *widget, GdkEventMotion *motion,
int
fbh
,
fbw
;
int
ww
,
wh
;
if
(
!
vc
->
gfx
.
ds
)
{
return
TRUE
;
}
fbw
=
surface_width
(
vc
->
gfx
.
ds
)
*
vc
->
gfx
.
scale_x
;
fbh
=
surface_height
(
vc
->
gfx
.
ds
)
*
vc
->
gfx
.
scale_y
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录