[Anthy-dev 690] Re: focus context, skk.scm

Zurück zum Archiv-Index

Etsushi Kato ekato****@ees*****
2004年 3月 21日 (日) 00:16:12 JST


もう一つ focused context がおかしくなる例がありました。また XIM 関連で
申し訳ないのですが、OpenOffice を使っているときにフォーカスをそのウィ
ンドウから一旦外したあと、元のウィンドウに戻すと、applet のラベルが変
更されません。Tgif での文字入力中でも同様な症状です。

これらのアプリケーションでは、ウィンドウからフォーカスを外しても、
XIM_UNSET_IC_FOCUS が生じないようで、そのため XimIC::unsetFocus() も呼
ばれず mIsActive が true のままになります。その後、そのウィンドウにフォー
カスを戻すと XIM_SET_IC_FOCUS が呼ばれ、XimIC::setFocus() が動きますが、
mIsActive が true なので、ラベルなどがアップデートされません。

ということで、mIsActive でも setFocus() で focusIn() と
mConvdisp->set_focus() を呼ぶべきかなと思います。

とりあえず少しはましになるといった程度の hack ですが、このあたりは難
しそうですね…

--- ximic.cpp.orig	2004-02-26 02:17:21.000000000 +0900
+++ ximic.cpp	2004-03-20 23:59:12.000000000 +0900
@@ -362,12 +362,11 @@
 
 void XimIC::setFocus()
 {
-    if (mIsActive) {
-	return ;
+    if (!mIsActive) {
+	nrActiveIC ++;
     }
     current_ic = this;
     mIsActive = true;
-    nrActiveIC ++;
     ui_update_ic_stat();
     ui_update_input_mode(m_kkContext->getMode());
     m_kkContext->focusIn();

-- 
Etsushi Kato
ekato****@ees*****



Anthy-dev メーリングリストの案内
Zurück zum Archiv-Index