From: VEF00200 (T.Sato) Newsgroups: fj.comp.x11 Subject: Re: How to detect destroy?? Date: 27 Mar 2000 20:02:11 +0900 Organization: Nifty Serve Lines: 36 Message-ID: <8bnesk$6hm$1@nw032.infoweb.ne.jp> References: NNTP-Posting-Host: cs1y127.ppp.infoweb.ne.jp X-Trace: nw032.infoweb.ne.jp 954154708 6710 202.219.189.43 (27 Mar 2000 10:58:28 GMT) X-Complaints-To: - NNTP-Posting-Date: 27 Mar 2000 10:58:28 GMT X-Newsreader: Gnus v5.3/Emacs 19.34 Xref: ssm.kgc.co.jp fj.comp.x11:1056 candy writes: > Athena ウィジェットでプログラムを組んでいます。 > (Athena 好きなんですよ :-) > ウィンドウマネージャで destroy した時、ちゃんと終了したいのですが、 > どうやればいいのでしょうか? > > fallback resource に > "*translations: #override \\n" > " : quit_command_proc() \\n" > > などと書いてみたのですが、quit_command_proc() が呼び出されません。 ウィンドウ・マネージャからは WM_DELETE_WINDOW クライアント・メッセージ が送られるようになっています。 これに応じて終了処理を行なうためには、リソースでは ?.translations: #override \ WM_PROTOCOLS: quit_command_proc() のように指定しておき、ウィンドウをリアライズした後で Atom wm_delete_window; wm_delete_window = XInternAtom(XtDisplay(shell), "WM_DELETE_WINDOW", FALSE); XSetWMProtocols(XtDisplay(shell), XtWindow(shell), &wm_delete_window, 1); /* shell はトップレベルのシェル */ を実行すれば良い筈です。 -- T.Sato URL: http://member.nifty.ne.jp/tsato/ ― xfig の国際化情報、UK EMC Journal の記事の翻訳