Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 3858|回复: 6

[原创]BUG 修复,lazarus输入汉字,输入1个出两个

[复制链接]

该用户从未签到

发表于 2013-1-28 19:57:39 | 显示全部楼层 |阅读模式
本帖最后由 steven 于 2013-1-28 20:18 编辑

环境:
ubuntu 8.04 LTS
lazarus 1.1.0
fcitx 输入法
现象:在edit 组件里面,输入汉字,英文,汉字不显示,英文输入1个字母,出现2个字母,显示双汉字
官方解决方法:
  若干处解决方法,在bugtracker上都无效
私有解决方法:

sudo gedit /usr/share/lazarus/1.1.0/lcl/interfaces/gtk2/gtk2proc.inc
在这个图形化编辑器里面,修改 checkdeadkey 这个过程的呼叫的地方,直接注释掉这个过程的调用

//checkDeadKey;

保存
然后进入 su 状态
cd /usr/share/lazarus/1.1.0
make
最后重新启动lazarus,编写测试程序,ok
效果:输入汉字,字符,都ok了

推导:1.0.2 等其他版本同理
是否导致新的bug: 未知
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2013-1-29 02:18:21 | 显示全部楼层
经查,这个东东是处理死键问题的,如果没有这个需求,可以屏蔽死键

在某些非U.S.英语键盘上,有些键用於给字母加上音调。因为它们本身不产生字元,所以称之为「死键」。例如,使用德语键盘时,对於U.S.键盘上的+/=键,德语键盘的对应位置就是一个死键,未按下Shift键时它用於标识锐音,按下Shift键时则用於标识抑音。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2013-1-30 18:30:32 | 显示全部楼层
本帖最后由 zouzhongming 于 2013-1-30 18:36 编辑

非常感谢你发现该问题的解决方法:

请问一下:该BUG在其他输入法也存在,我用过SCIM,iBUS都有类似现象,但为什么用提升到超级管理员的权限进入LAZARUS编程就不存在这个问题,编译出来的程序也必须在提升为超级管理员的权限下运行也不存在这个问题,为什么普通用户会有呢?

我用的是Debian 6.06 GNOME 2.30.2

在sudoers中加入
Cmnd_Alias CA =/home/mmgl/mmgl/mmgl
# 最后的mmgl是管理程序名,前面的都是目录。

# User privilege specification
mmgl    ALL=(ALL)NOPASSWD:CA

然后在debian的主菜单中添加新建项目,名称中输入‘美容管理’,命令中输入sudo /home/mmgl/mmgl/mmgl 即可,然后在主菜单中将此起动器添加至桌面。
点击图标即可运行。
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2013-2-2 02:05:21 | 显示全部楼层
本帖最后由 steven 于 2013-2-2 02:07 编辑

对这个问题,不太清楚,你可以参考 checkdeadkey 的代码,他的作用就是检测非 US键盘上的死键,如果发现按了这种键,就检查输入法是否打开了,并且自动重新将焦点赋给当前输入widget(控件) 用的 gtk 下面XIM(输入法消息)的函数,可能就是这个机制导致需要sudo权限
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2013-2-2 02:28:43 | 显示全部楼层
我在Asianux 64位环境下按此方法修改,解决了此问题。
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2013-2-2 20:46:23 | 显示全部楼层
恭喜
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2013-5-24 06:04:14 | 显示全部楼层
现在还在用8.04开发。

13.04  L 1.0.8没有问题
回复 支持 反对

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-5-3 00:00 , Processed in 0.264818 second(s), 18 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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