<解決済>KDE上で意図しないメニューが表示されるバグ
注意
書きかけです。
概要
コンソールやkateなどでShift+任意のキーを押すとメニューが表示される。また、Ctrl+任意のキーでも同様である。
調査結果1
- kdebase-3.2.3とkdelibs-3.2.3では上記問題は発生しない
- kdebaseはこの問題には関係がないようである
調査2
kdebase-3.2.3とkdelibs-3.2.3では上記の問題は発生しないため、CVSを使い問題箇所の特定もしくは絞り込みを行う。ただし、現在の環境及びPortageツリーではバージョン3.2.3がコンパイルできないので、2004.2のchroot環境を作りその中で調査する。
chroot環境の作成とリリース版kdebase-3.2.3のコンパイル
- 2004-08-30 00:00:00 GMTのPortage Snapshotを作成
- 2004.2 Stage3を解凍
- Portage Snapshotを解凍
- Gentoo KDE-CVS ProjectからKDEのCVS用ebuildを入手。PORTDIR_OVERLAYを設定。
- chroot /hoge/fuga で2004.2環境の中に入る
- emerge xorg-x11
- mkdir -p /usr/portage/distfiles/cvs-src/kde
- cd /usr/portage/distfiles/cvs-src/kde
- tar xvjpf /usr/portage/distfiles/kdelibs-3.2.3.tar.bz2
- tar xvjpf /usr/portage/distfiles/kdebase-3.2.3.tar.bz2
- tar xvjpf /usr/portage/distfiles/arts-1.2.3.tar.bz2
- mv kdelibs-3.2.3 kdelibs
- mv kdebase-3.2.3 kdebase
- mv arts-1.2.3 arts
- export ECVS_SERVER=offline
- ACCEPT_KEYWORDS=x86 emerge kdebase
この段階で、一度Xを起動し問題がないことを確かめる(結果:問題なし)。
kdelibsを入れ替える
kdelibsはきちんと削除して再インストールすること。調査1の段階でこれを怠っていたため無駄な時間が生じた。
- emerge -C kdelibs
- export ECVS_SERVER=anoncvs.kde.org:/home/kde
- export ECVS_CO_OPTS='-D "2004-06-09 00:00:00 GMT"'
- ACCEPT_KEYWORDS=x86 emerge kdelibs
調査結果2
| 指定日時 | Shift | Ctrl |
| 3.2.3-RELEASE | o | △(機能しない) |
| 2004-06-09 00:00:00 GMT | x | x |
| 2004-05-01 00:00:00 GMT | o | ? |
| 2004-05-15 00:00:00 GMT | o | △ |
| 2004-05-27 00:00:00 GMT | o | △ |
| 2004-06-03 00:00:00 GMT | x | x |
| 2004-06-01 00:00:00 GMT | x | x |
| 2004-05-29 00:00:00 GMT | x | x |
| 2004-05-28 00:00:00 GMT | x | x |
| 2004-05-27 12:00:00 GMT | x | x |
| 2004-05-27 06:00:00 GMT | o | △ |
| 2004-05-27 09:00:00 GMT | x | x |
| 2004-05-27 07:30:00 GMT | o | △ |
| 2004-05-27 08:15:00 GMT | o | △ |
| 2004-05-27 08:40:00 GMT | o | △ |
| 2004-05-27 08:50:00 GMT | x | x |
| 2004-05-27 08:45:00 GMT | x | x |
2004-05-27 08:40:00 GMTから2004-05-27 08:45:00 GMTの間に行われた変更を調べたところ、kdecore/kaccel.cpp中のbool KAccelPrivate::eventFilter内のif条件の変更がShift+any keyでメニューが表示される問題を引き起こしているようだ。ただし、上記の結果の通りショートカットキーが無効になってしまうので、原因はこれではない。
なお、すべての変更箇所はkdelibs-040527-0840-040527-0845.diffで参照できる。
調査3
USE=debugでデバッグ機能を有効にしてコンパイル。デバックメッセージから問題を探る。
調査結果3
デバッグメッセージの採取方法は、kdebugdialog --fullmodeで125のinfoを有効にすると同時にファイルに落とす。下記はkateを起動しそのまま終了したときのログである。
問題の本質
KDE Bug#92824を見てください。
パッチ
20050313版
当座しのぎとして使えるパッチをKDE Bug#92824から入手できます。20050126版の不具合情報で挙げた問題は発生しないはずです。
20050126版
この問題が発生しなくなるパッチをBug #63529から入手できます。ただし、あくまで当座しのぎのためのものです。
20050126版パッチの不具合情報
最初に提出したパッチに再現性のあるバグがあることが判明しました。
- KOfficeに含まれるアプリケーションを起動
- 新規作成ダイアログが表示されるので適当なものを選択
- Ctrl+Wでファイルを閉じる
- 再度新規作成ダイアログが表示されるので、最初に選択したものと違うものを選択
- クラッシュ
また、KWordにおいて一部ショートカットキーが正常に機能しません。確認した範囲では、Ctrl+Aが正常に機能しませんでした。しかし、Ctrlの他にShiftも押すとこのバグが発生せずファイルを閉じたり全てを選択できるようです(Ctrl+Shift+Aのようにする)。
補足: Alt+TABのようなショートカットも機能しません。キーボードショートカットの変更ができません(キーを押しても認識しない)。
履歴
- 2005-01-10
- このページを作成
- 2005-03-05
- 20050126版パッチの情報を追加
- 2005-03-07
- 20050126版パッチの不具合情報を追加
- 2005-03-13
- 問題の本質, 20050313版パッチの情報を追加