请选择 进入手机版 | 继续访问电脑版

LibreOffice 中文社区

 找回密码
 马上加入

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
开启左侧

[已提交官方] libreoffice 7.2.0.4 writer 在启用页面文字格后中英文不显示

[复制链接]
zrqlx126 发表于 2021-8-27 11:33:55 | 显示全部楼层 |阅读模式
问题描述:libreoffice7.2.0.4 writer 如果启用页面文字格后,在输入特定大小的中文或者英文后,表现为空白,且光标同时丢失,无法继续编辑。

重现步骤:新建文本文档 > 页面设置 > 文字格 > 行格/列格,然后输入任意中文或英文文字,改变文字大小,在特定大小后即无法显示输入的文字,且光标一同丢失,无法继续编辑。

当前的行为和结果:设置文字格,输入特定大小文字,无法显示,并丢失光标,无法继续编辑。

期望的行为和结果:设置文字格,输入特定大小文字,依然正常显示,并且可继续编辑。

操作系统和软件版本:ubuntu 21.10 daily amd64, libreoffice 7.2.0.4

用于测试的附件(非必须):

系统环境

系统环境

点评

https://bugs.documentfoundation.org/show_bug.cgi?id=144122  发表于 2021-8-27 17:27
jmxhyz 发表于 2021-8-27 13:38:05 | 显示全部楼层
与字体有关。换其它字体旧没问题。Noto的字体不显示。
驿窗 发表于 2021-8-27 15:12:47 | 显示全部楼层
我能够重现这个问题~

很奇怪,这是页面样式的bug,还是noto字体的bug?
开源/Linux大众化,从驿窗开始!
 楼主| zrqlx126 发表于 2021-8-27 15:47:09 | 显示全部楼层
jmxhyz 发表于 2021-8-27 13:38
与字体有关。换其它字体旧没问题。Noto的字体不显示。

换用其他字体,语言环境,在win安装x86或者x64版本,同样的问题。可以肯定与字体无关。注意该版本是7.2.0.4版本,需要说明的是以前的版本是没有问题的,甚至7.2.0开发版也是没有问题的。

suokunlong 发表于 2021-8-27 16:35:03 | 显示全部楼层
倒退型的问题很好解决,等会儿我来bibisect一下
开放,包容,奉献。
suokunlong 发表于 2021-8-27 17:09:26 | 显示全部楼层
我使用 https://go.suokunlong.cn:88/cgit/lo/bibisect-linux-64-7.2-CN/ 进行了二进制二分查找,定位到了如下两个坏的和好的版本:

第一个确定是坏的 commit:
2021-05-20 22:38:03 +0200 301278b656e76b6f42af5cf8a6f5c6c02acfffeb
sw: allow the height of a line to be larger than 65536 twips

最后一个确定是好的 commit:
2021-05-20 20:27:38 +0200 bb166403ef1026e3665b2d60810c71955d7402c0
use toggle instead of click for CheckButton

由此,可以定位到以下范围,坏的commit必定是其中之一:
https://go.suokunlong.cn:88/cgit ... cf8a6f5c6c02acfffeb

这里面有两个源代码commit:
2021-05-20        sw: allow the height of a line to be larger than 65536 twips
2021-05-20        ofz: fix build

很明显第二个与这个问题肯定无关,因此造成这个倒退问题的源代码提交肯定是第一个:
[Plain Text] 纯文本查看 复制代码
commit 301278b656e76b6f42af5cf8a6f5c6c02acfffeb
Author: Miklos Vajna <vmiklos@collabora.com>
Date:   Thu May 20 18:02:12 2021 +0200

    sw: allow the height of a line to be larger than 65536 twips
    
    The line height can be quite large if the line contains an as-char
    image.
    
    Found by temporarily changing static_cast<sal_uInt16>() in sw/ to a
    template function to make these conversions implicit (excluding cases
    where the input and output types can't convert implicitly), then asking
    -fsanitize=implicit-unsigned-integer-truncation
    -fsanitize=implicit-signed-integer-truncation to flag the problematic
    conversions.
    
    The first hit was in SwFlyCntPortion::SetBase() (that's where 67408
    turns into 1872), then the same pattern at many other places.
    
    Change-Id: Ie12f490ed8dd5c531f11506c97598ce4f7610e2e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115873
    Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
    Tested-by: Jenkins

开放,包容,奉献。
suokunlong 发表于 2021-8-27 17:27:34 | 显示全部楼层
开放,包容,奉献。
*滑块验证:
您需要登录后才可以回帖 登录 | 马上加入

本版积分规则

Archiver|手机版|小黑屋|LibreOffice 中文社区 ( 粤ICP备13080851号-4 )

GMT+8, 2021-9-28 01:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表