|
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/
|