PopupMenu と MouseGesture の同居に困った

PopupMenu と MouseGesture の同居に困った

GTK+ のアプリは基本的にマウスの右ボタンダウンでポップアップメニューが出る。
しかしもはや Linux 標準アプリになった Firefox はボタンアップで出る。
マウスジェスチャ機能があるからだ、当然 Opera も同様。

ということで違和感が無い人も多いと思うので遠慮なくボタンアップでポップアップを実装
…しようとしたんだけど完全な振り分け方法を思いつけなくてココだけで半日使った。

popup

まあとにかくここは上手くいったと思う、やはりデカいので入れ子にしたのは妥協だ。

しかし困った、入れ子のメニューは何故か右クリック時しかシグナルを吐いてくれない。
入れ子にしていないメニューは左クリックでもキチンとシグナルを吐くのにどういうこと?

GTK+ 製である Firefox はどうだ…ってコイツの右メニューには入れ子が無かったわ。
Totem で試すとしっかり右クリックで入れ子にも反応する、ますます解らなくなったぞ。
実装方法が変わると違うかも…何か方法があるはずだがよく解らない。

そうそう、試しに右ボタンダウンで出すように実装したら普通にシグナルを吐く。
どういうことかはバックアップしているのを試すと解ると思う。

それと画面 W クリックでフルスクリーンだが。
右メニューやダイアログを出しフォーカスが移ると GNOME メニューがコンニチハ。
これはどうすれば防げるか、Totem はそんなの出ないんだよなぁ…

gtk.gdk.Window

GDK にも何故か fullscreen メソッドがあるんだがもう何がなんだか解らん。
試しに入れてみたけど違いが無いみたいだけど。

せっかくリピートメニューと RadioAction を作ったのに実装する時間がなかったわい。
バックアップを置いておきますんで、くそぉ進まなかった。

y901x-buckup2.zip