操作
バグ #1521
完了gtk3: postboxのコマンドからのテキスト入力でクラッシュする
プラグイン名:
ブランチ:
クラッシュする:
はい
説明
プラグインのコマンドでpostboxにテキストを設定するような実装があると以下のエラーとともにクラッシュする。
なお、これは 小春六花プラグイン でpostboxに入力したテキストをゴボゴボしようとした際に得られたエラーである。
/home/ahiru/mikutter/vendor/ruby/3.0.0/gems/pluggaloid-1.5.0/lib/pluggaloid/plugin.rb:321:in `method_missing': undefined method `widgetof' for #<Plugin:0x00005634af1e2ff0 @name=:gtk, @defined_time=2021-10-24 21:08:57.982451022 +0900, @events=#<Set: {}>, @filters=#<Set: {}>> (NoMethodError) from /home/ahiru/.mikutter/plugin/mikutter_koharu_rikka/mikutter_koharu_rikka.rb:64:in `block (2 levels) in <top (required)>' from /home/ahiru/mikutter/plugin/gui/command.rb:27:in `block (2 levels) in get_menu_items' from /home/ahiru/mikutter/core/mui/gtk_contextmenu.rb:45:in `block (2 levels) in build!' from /home/ahiru/mikutter/core/mui/gtk_extension.rb:35:in `block in safety_signal_connect' from /home/ahiru/mikutter/vendor/ruby/3.0.0/bundler/gems/ruby-gnome-554fe3ebba5d/gobject-introspection/lib/gobject-introspection/loader.rb:682:in `invoke' from /home/ahiru/mikutter/vendor/ruby/3.0.0/bundler/gems/ruby-gnome-554fe3ebba5d/gobject-introspection/lib/gobject-introspection/loader.rb:682:in `invoke' from /home/ahiru/mikutter/vendor/ruby/3.0.0/bundler/gems/ruby-gnome-554fe3ebba5d/gobject-introspection/lib/gobject-introspection/loader.rb:112:in `main_iteration' from /home/ahiru/mikutter/plugin/gtk3/mainloop.rb:18:in `block (2 levels) in mainloop' from /home/ahiru/mikutter/plugin/gtk3/mainloop.rb:12:in `loop' from /home/ahiru/mikutter/plugin/gtk3/mainloop.rb:12:in `block in mainloop' from /home/ahiru/mikutter/plugin/gtk3/mainloop.rb:10:in `catch' from /home/ahiru/mikutter/plugin/gtk3/mainloop.rb:10:in `mainloop' from mikutter.rb:79:in `boot!' from mikutter.rb:115:in `<main>'
プラグイン側でエラーを吐いている箇所は以下のような実装になっている。
box = Plugin[:gtk].widgetof(opt.widget).widget_post.buffer
gtk3ブランチではgtkプラグインがgtk3プラグインになったため、Plugin[:gtk]
の widgetof
を呼び出そうとして失敗しており、Plugin[:gtk3]
に書き換えたところプラグインは正常に動作した。
後方互換のためgtkプラグインをgtk3プラグインのエイリアスのような形で残してもらえるとよさそう。
なお、環境は mikutter topic/887-gtk(コミットハッシュ: 682d875f), Windows 10 (WSL2 Ubuntu 20.04.3 LTS), ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-linux]
操作