<解決済>KDE上で意図しないメニューが表示されるバグ

注意

書きかけです。

概要

コンソールやkateなどでShift+任意のキーを押すとメニューが表示される。また、Ctrl+任意のキーでも同様である。

調査結果1

  1. kdebase-3.2.3とkdelibs-3.2.3では上記問題は発生しない
  2. kdebaseはこの問題には関係がないようである

調査2

kdebase-3.2.3とkdelibs-3.2.3では上記の問題は発生しないため、CVSを使い問題箇所の特定もしくは絞り込みを行う。ただし、現在の環境及びPortageツリーではバージョン3.2.3がコンパイルできないので、2004.2のchroot環境を作りその中で調査する。

chroot環境の作成とリリース版kdebase-3.2.3のコンパイル

  1. 2004-08-30 00:00:00 GMTのPortage Snapshotを作成
  2. 2004.2 Stage3を解凍
  3. Portage Snapshotを解凍
  4. Gentoo KDE-CVS ProjectからKDEのCVS用ebuildを入手。PORTDIR_OVERLAYを設定。
  5. chroot /hoge/fuga で2004.2環境の中に入る
  6. emerge xorg-x11
  7. mkdir -p /usr/portage/distfiles/cvs-src/kde
  8. cd /usr/portage/distfiles/cvs-src/kde
  9. tar xvjpf /usr/portage/distfiles/kdelibs-3.2.3.tar.bz2
  10. tar xvjpf /usr/portage/distfiles/kdebase-3.2.3.tar.bz2
  11. tar xvjpf /usr/portage/distfiles/arts-1.2.3.tar.bz2
  12. mv kdelibs-3.2.3 kdelibs
  13. mv kdebase-3.2.3 kdebase
  14. mv arts-1.2.3 arts
  15. export ECVS_SERVER=offline
  16. ACCEPT_KEYWORDS=x86 emerge kdebase

この段階で、一度Xを起動し問題がないことを確かめる(結果:問題なし)。

kdelibsを入れ替える

kdelibsはきちんと削除して再インストールすること。調査1の段階でこれを怠っていたため無駄な時間が生じた。

  1. emerge -C kdelibs
  2. export ECVS_SERVER=anoncvs.kde.org:/home/kde
  3. export ECVS_CO_OPTS='-D "2004-06-09 00:00:00 GMT"'
  4. 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版パッチの不具合情報

最初に提出したパッチに再現性のあるバグがあることが判明しました。

  1. KOfficeに含まれるアプリケーションを起動
  2. 新規作成ダイアログが表示されるので適当なものを選択
  3. Ctrl+Wでファイルを閉じる
  4. 再度新規作成ダイアログが表示されるので、最初に選択したものと違うものを選択
  5. クラッシュ

また、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版パッチの情報を追加