Menu

VJE-DeltaとXFree86

 VJE-Delta (vje)をXIMに、XFree86 4.3.0を使っていると、たとえばMozillaがFlash pluginが起動したときに落ちてしまう。以下のパッチを当ててXlibを作り直せば、とりあえず直る。

--- lib/X11/imDefIm.c.orig	Sat Dec 14 10:53:56 2002
+++ lib/X11/imDefIm.c	Mon Dec  1 02:36:45 2003
@@ -2081,6 +2081,7 @@
 	    _XimRegisterServerFilter(im);
 	    return True;
 	}
+	_XimShutdown(im);
 #ifdef XIM_CONNECTABLE
     } else if (IS_DELAYBINDABLE(im)) {
 	if (_XimDelayModeSetAttr(im))
--- lib/X11/ICWrap.c.orig	Mon Nov 25 23:04:53 2002
+++ lib/X11/ICWrap.c	Mon Dec  1 02:38:55 2003
@@ -346,7 +346,7 @@
 XSetICFocus(ic)
     XIC ic;
 {
-  if (ic->core.im)
+  if (ic != NULL && ic->core.im)
       (*ic->methods->set_focus) (ic);
 }

 imDefIm.cの修正はすでにXFree86 4.4.0やfreedesktop.orgのlibX11 6.2.1では修正済みの単純なバグフィックスだが、ICWrap.cのハックはvjeの問題をlibX11側で回避するものだ。vjeからどういう経路でXSetICFocus(NULL)が呼ばれるのかわかっていないのだが、ちゃんと追っかけないといけないなー。VJE-Deltaは商用製品だがXIMフロントエンド(vje)部分はソースが付属しているので、原因がわかれば我々で対処できるはず。

コメントを残す

メールアドレスが公開されることはありません。