[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

[MD:2985] Meadow 1.99a1 - Access violation.



me>  ということならこんな感じでなおりますね.
yasushi> 試してみました。今度は起動直後に固まりました。場所は上の
yasushi> WAIT_REPLY_MESSAGEのところです。

ごめんなさい.. 自分のところで動かしたら一発で固まってます^^;

 それにしても..

 WM_SETFOCUS-->PostMessage...->WAIT_REPLY_MESSAGE->mw32_WndProc->WM_SETFOCUS

 って繰り返してますね.

 WM_SETFOCUS の処理で mw32m_mew_focus_frame を無条件で呼び出して
いるのがこの WM_SETFOCUS ストーム(?)を引き起こしているみたいに見
えます.

 無条件で呼び出す意図はつかめていないのですが, 問題がなければ
 f != selected_frame のときだけ処理するようにしたほうがいいと思うの
 ですがどうでしょう> himiさん

yasushi> # 堀口さんところでは大丈夫なんですよね。なんでだろう。

 というわけでこれ↓は試してみました. 先ほどのに追加です. 私のとこ
ろでは一応動いているように見えます. 固まるかどうか試してみてくだ
さい.

Index: mw32fns.c
===================================================================
RCS file: /usr/local/Meadow/cvsroot/Meadow/src/mw32fns.c,v
retrieving revision 1.26
diff -u -r1.26 mw32fns.c
--- mw32fns.c	2002/02/09 12:52:59	1.26
+++ mw32fns.c	2002/02/26 03:03:32
@@ -2963,8 +2963,6 @@
 
   case WM_SETFOCUS:
 
-    mw32m_new_focus_frame (dpyinfo, f);
-
     /* This code is for switching selected-frame.  In order to
        generate no events before Emacs is set up, check whether
        selected_frame is initial terminal frame.  This is because
@@ -2973,9 +2971,11 @@
     if (SELECTED_FRAME ()
 	&& (SELECTED_FRAME () != XFRAME (Vterminal_frame))
 	&& (SELECTED_FRAME () != f))
-      PostMessage (hwnd, WM_EMACS_ACTIVATE, 
-		   (WPARAM) 0, (LPARAM) 0);
-
+      {
+	mw32m_new_focus_frame (dpyinfo, f);
+	PostMessage (hwnd, WM_EMACS_ACTIVATE, 
+		     (WPARAM) 0, (LPARAM) 0);
+      }
     /* TODO: caret setting!!! */
     return 0;

-- 
堀口恭太郎