Vine Linux バグトラッキングシステム

課題の詳細を表示 コメントにジャンプ ] 課題の履歴 ] 印刷 ]
IDプロジェクトカテゴリ登録日最終更新
0000511Vine Linux1 バグ2007-04-06 02:412008-04-06 01:18
報告者anonymous 
担当者 
優先度再現性不明 
状態完了解決状況却下 
バージョン4.1 
修正予定バージョン修正済バージョン 
概要0000511: VJE+GEdit or rox filerでシフトkeyを押しただけでhang upする
説明症状:
geditもしくはrox-filerとvjeの組み合わせで、
text area上でshift, ctrl key等を単独で押しただけで
プログラムがhangしcpuの使用率が100%となり
強制終了させるしか方法がなくなる。

起きる場合と起きない場合の例は
* vjeがなければおきない
* uimだとおきない(immoduleがximでないので当然か?)
* 英数字は入力できる
* ctrl, shift, esc keyは押しただけでhang
* 日本語入力モードのとき未確定文字が
ある時はescを押してもhangしない。

ということで、明らかにwidgetもinput methodも必要
していないkey入力(つまり、key_press_eventや
gtk_filter_key_eventでfalseが返される)の場合にhangします。

geditもrox-filerもkey_press_eventの処理に共通点があって、
gdbで追ってみると、geditの場合、gedit_window.cの
gedit_window_key_press_event()の中で最後にparent widgetに
eventをpropagateさせた後、parent widgetの中で再び
event queueにkey eventが戻されるようで(何故?)、
また、全く同じkey eventで
gedit_window_key_press_event()が呼び出されます。
このため無限ループに陥っています(stackは消費しないので
永遠です。。。)

とてもgtkのlib内や、ましてvjeの中は追えないので、これ
以上の事は判りませんが、おそらくどちらにも問題がある
と思われます。

対策:
本質的な理由が判らないので次善の策しかない訳ですが、
少なくとも同じtime stampの同じGdkKeyEventが何度も
gedit_window_key_press_event()に渡される事は通常
絶他にないわけです。ですから、
gedit_window_key_press_event()に

if (prev_event.hardware_keycode == event->hardware_keycode &&
    prev_event.state == event->state &&
    prev_event.time == event->time)
           return TRUE;
prev_event = *event;

なる処理を
GTK_WIDGET_CLASS (gedit_window_parent_class)->key_press_event
(widget, event);
呼び出しの直前におけば問題なく使えるようになります。
rox-filerの場合もfiler.cの中のkey_press_event処理の部分
に全く同様の処理を追加すると、問題なく使えます。もちろん
もともと起き得ない事に対する処理なので他に影響は
ないと思います。

VJEはもうサポートされていないとはいえ、Vine 3.0にバンドル
されていたわけですし、使いやすいので気に入っています。
また、これ以外では問題もなく使える良いfepです。これらの
プログラムでも(特にrox-filer)使えるように
なると良いのですが。。。
タグ設定されていません。
arch
パッケージgedit, rox-filer
添付ファイル

- 関連

-  コメント
(0002531)
kazutaka (開発者)
2008-04-06 01:18

> 症状:
> geditもしくはrox-filerとvjeの組み合わせで、
> text area上でshift, ctrl key等を単独で押しただけで
> プログラムがhangしcpuの使用率が100%となり
> 強制終了させるしか方法がなくなる。

既に最初の投稿からかなり時間が経っていますが、
どなたからもリプライいただけないようなので、
残念ですが却下とします。

- 課題の履歴
変更日 ユーザー名 項目 変更内容
2007-04-06 02:41 anonymous 新規課題
2008-04-06 01:18 kazutaka 状態 新規 => 完了
2008-04-06 01:18 kazutaka 解決状況 不明 => 却下
2008-04-06 01:18 kazutaka コメント追加: 0002531


Copyright © 2000 - 2024 MantisBT Team
Copyright © 2012 - 2024 Project Vine
Powered by Mantis Bugtracker