トップ 最新

かってきままな日々

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 問題だし)、私もデバッグしてみるつもり。 私のところで再現するかどうかも今はまだ不明。