New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
右クリックメニューに示されるショートカットキーとマウスジェスチャーの表示をやめる #977
Comments
右クリックメニューの修正を進めていきたいと思います。 |
Gio::Menuを利用した右クリックメニュー構築ではサブメニューを無効化することができなくなりました。 メニュー項目の削除がサブメニューで一段深くなっている理由
他にもスレビューの右クリックメニューにある 対応策としては
実装の難しさを比べると サブメニュー内無効化 と 確認ダイアログ は比較的容易と考えています。 関連の情報 (sensitiveプロパティ?) |
上記コメントの通りサブメニュー表示の解決が難しいため作業を中断し保留したいと思います。 |
計画や作業の進行が止まっているためissueを閉じて課題を一度取り下げます。 |
右クリックメニューに示されるショートカットキーとマウスジェスチャーの表示をやめる
背景や動機
将来の機能廃止やGTK4対応のためGTKのコードを少しづつ更新してますが右クリックメニューの
Gtk::Menu
は構築が大幅に変わります。GTK3から
Gio::Menu
を使ってメニュー構造のデータを作りGtk::Menu
にバインドする方法が導入されました。現在、メニューの項目にあるショートカットキー(アクセラレータキー)やマウスジェスチャーは
Gtk::Menu
の構築後に後付で追加しています。新しい
Gio::Menu
は構築したデータ構造の要素が変更不可になるため現在の後付処理ができなくなります。解決方法
メニュー項目にショートカットキーやマウスジェスチャーを追加せず表示を止めることを提案します。
それによってコードの肥大化や実行時の負荷を抑えることができ保守性を維持することが可能です。
代替案
現状を維持してショートカットキーなどを表示する
Gtk::Menu
はGTK4で廃止されるためそれに依存するコードは変更する必要があります。GTK4への移行は多くのステップが必要なため変更を遅らせると進行に影響が出ます。
後付ではなく最初の構築でショートカットキーなどを追加する
構築した後にショートカットキーなど設定変更をしたときメニュー項目に反映することができません。
メニューを再構築する方法は実装の肥大化や実行時の負荷の解決にかかる労力が割に合わないと予想しています。
メニューに直接追加ではなくアプリケーションにショートカットキーなどを登録する
現状の実装から大幅に変わるため実現可能か検討・検証が必要ですが開発リソースが足りません。
追加の情報
GTK4では
Gtk::Menu
を置き換えるUIとしてGtk::Popover
が用意されています。GTK3にもありますが一部の機能が未実装であるため現状での移行は見送っています。
The text was updated successfully, but these errors were encountered: