かってきままな日々
2020-05-06 (We) [長年日記]
_ あーーしまった!!
Wayfire って X 上でも動くんだった!
「Wayfire だから whereby でデモできないなー」って思ってたけど、 X 上で動かせばできたじゃん!
今頃気づいた… 今試して、ちゃんとデモできることが確認できた。
これ、気づいてれば 5/4 のネット会議で使えたわ。。
間抜け… orz
_ menu 修正
menu を修正した。
Emacs-Lisp メニューやら Lisp-Interaction メニューが空っぽに なってしまう現象を指摘されていたので。
どこから当たってみようかなぁ、と手当たりしだいに printf を 突っ込むも、全然解らず。
そういや、「似たような現象が X の時にあった」との情報を もらってた。git log して探してみたところ、見つけた。去年11月。
emacs-devel のスレッドの URL を書いてくれてたので、読んでみた。
なるほど、HiDPI での問題だったのか。でもうちは HiDPI はサーバ側 に任せてるので、関係ない。そんなこと起きない。 でも、参考になるかもしれないので、デバッグ報告をじっくり読んでみた。
deep_p
が true の場合は menu 全体を作るけど、
false の場合は、menubar に menuitem だけ作って、menu そのものは
後で必要になった時に作るらしい。なるほど、そりゃその方がスピードも
上がるしメモリ効率も良さそう。
ただ、それを gtk にだけ任せてると、menu を作るタイミングがないので、
menubar 上の click イベントは keyboard event に変換して、
そのイベントのハンドラで menu を作って、開くっぽい。
なるほど、だいたいの流れは解った。
でも、menubar 上で click したことが、私の emacs には判らないんだよね。 だから、その後ろがスタートしない。
判らないものはどうしようもないので、deep_p
を常に true として
扱うようにした。そしたら empty menu 問題は解決した。
ただ、その副作用かどうかはまだ確認できてないんだけど、
- menu を開く
- checkbox をホバー (*1)
- その checkbox をクリックする
- menu が閉じる
- 同じ menu をもう一度開く
- 同じ checkbox をもう一度ホバー (*2)
- その checkbox をクリックする (*3)
- menu が閉じる
この時、(*1) では問題なく item がハイライトされるのに、 (*2) ではハイライトされない。 ハイライトされないだけで、(*3) は問題なく機能する。
このバグも治さないといけないことに気づいた。
さて。それはともかく。
あっちはあっちで大変なバグを見つけたみたいだし。 あっちの方が重要そうなので(abort 問題だし)、私もデバッグしてみるつもり。 私のところで再現するかどうかも今はまだ不明。