From: Yuuki H. <ma...@ma...> - 2015-12-27 05:48:31
|
原野です。 パネルに表示することができました。 必要だったのは以下2点です。 - C のコードが必要だった。 須藤さんのおっしゃる通り、callback 関連のコードを書きました。 - gobject-introspection 3.0.7 から1行コメントアウトする必要があった。 loader.rb の以下の行、 def define_singleton_method(klass, name, info) unlock_gvl = should_unlock_gvl?(info, klass) prepare = lambda do |arguments| arguments, block = build_arguments(info, arguments, &block) validate_arguments(info, "#{klass}.#{name}", arguments) [arguments, block] end singleton_class = (class << klass; self; end) singleton_class.__send__(:define_method, name) do |*arguments, &block| # ここをコメントアウトした。 # arguments, block = prepare.call(arguments, &block) if block.nil? and info.require_callback? to_enum(name, *arguments) else info.invoke({ 細かいことはよく解っていないのですが、 この行で変数 block が nil になってしまい、 MatePanelApplet::Applet.factory_main にブロックを渡しているにも関わらず Enumerator が返っていました。 以上です。ありがとうございました。 -- 原野 裕樹 mailto:ma...@ma... https://masm11.ddo.jp/~masm/ |