음 웹서핑을 통해 알아본 바, xim에서 이벤트에 타임 스탬프를 제대로 전달하지 않아서,
GDK등에서, 이벤트를 무시해버려서 파이어폭스에서 메뉴등의 이벤트가 처리되지 못하는 문제가 생기는 모양인데,
Chiaki ISHIKAWA라는 사람이 패치를 내놓았고,
관련 패키지는 libx11-6 입니다.
이것 때문에, 파이어폭스에서 문제가 생기는 것인지는 정확히 알 수 없어,
이 패치를 적용해 컴파일한 libx11.so와 libx11-xcb.so파일로 바꿔서, 테스트 중입니다.
패치 내용은 아래 링크를 따라가시면 되는데, 소스가 같지 않기 때문에, 수동으로 적용하시고, 버전에 맞는 diff 패치 파일을 만드셔도 됩니다.
[url:3kxzygft]http://lists.x.org/archives/xorg-devel/2012-December/034823.html[/url:3kxzygft]
좀 써보고 문제가 발생하지 않는다면 좋겠습니다.
그리고, 제가 사용하는 우분투 버전은 13.04인데, 13.10의 패키지 소스를 받아서 본 결과,
그 안에도 이런 패치가 적용되지 않았네요.
13.10을 사용하시는 분 중에, 위의 패치를 적용해 컴파일 해 보실 분 계신가요?
libx11-6 패키지는 단 두개의 so파일이 전부이고, 나머지는 문서파일입니다.
그러니, 이 바이너리 파일만 교체하면 패치는 적용되리라 봅니다.
단 바이너리 파일이라, i386/amd64를 따로 빌드해야 합니다.
저의 경우 64비트 컴퓨터라, amd64빌드를 하고,
다음과 같이 32비트 빌드를 해놓고 테스트 중입니다.
[code:3kxzygft]sudo apt-get install ubuntu-dev-tools gcc-multilib pbuilder
pbuilder-dist raring i386 create
pbuilder-dist raring i386 login --bindmounts "/build 소스푼디렉토리"
apt-get install xmlto xtrans-dev x11proto-core-dev x11proto-input-dev x11proto-kb-dev x11proto-video-dev
cd /build
./configure
make
mkdir dso
cp src/.libs/libX11-xcb.so src/.libs/libX11.so dso/
exit
cd /usr/lib/x86_64-linux-gnu/
sudo cp libX11.so.6.3.0 libX11.so.6.3.0.orig
sudo cp libX11-xcb.so.1.0.0 libX11-xcb.so.1.0.0.orig
sudo service lightdm stop
프로그램들 종료
pidof X && sudo kill -9 $(pidof X)
sudo cp 소스압축푼디렉토리/dso/* /usr/lib/x86_64-linux-gnu/
sudo service lightdm start
[/code:3kxzygft]
테스트 해보고, 문제가 없으면,
i386/amd64로 빌드한 so바이너리 파일을 자료실에 올릴 생각입니다.
하지만, 13.10버전은 컴파일을 못하니, 다른 분이 좀 해주셨으면 합니다.
소스를 풀어 내는 방법은,
sudo apt-get source libx11-6:amd64
이고, modules/im/ximcp 디렉토리의 imDefLkup.c와 imTrans.c를 수정하시면 됩니다.