summaryrefslogtreecommitdiffstats
path: root/ext/tk/lib
diff options
context:
space:
mode:
Diffstat (limited to 'ext/tk/lib')
-rw-r--r--ext/tk/lib/tk.rb6
-rw-r--r--ext/tk/lib/tk/menu.rb9
2 files changed, 11 insertions, 4 deletions
diff --git a/ext/tk/lib/tk.rb b/ext/tk/lib/tk.rb
index 312452df1..907f602da 100644
--- a/ext/tk/lib/tk.rb
+++ b/ext/tk/lib/tk.rb
@@ -3165,9 +3165,9 @@ class TkObject<TkKernel
end
def tk_trace_variable(v)
- unless v.kind_of?(TkVariable)
- fail(ArgumentError, "type error (#{v.class}); must be TkVariable object")
- end
+ #unless v.kind_of?(TkVariable)
+ # fail(ArgumentError, "type error (#{v.class}); must be TkVariable object")
+ #end
v
end
private :tk_trace_variable
diff --git a/ext/tk/lib/tk/menu.rb b/ext/tk/lib/tk/menu.rb
index f0f5dcd2e..4b94ccd91 100644
--- a/ext/tk/lib/tk/menu.rb
+++ b/ext/tk/lib/tk/menu.rb
@@ -402,13 +402,20 @@ class TkOptionMenubutton<TkMenubutton
end
end
- def initialize(parent=nil, var=TkVariable.new, firstval=nil, *vals)
+ def initialize(parent=nil, var=nil, firstval=nil, *vals)
if parent.kind_of? Hash
keys = _symbolkey2str(parent)
parent = keys['parent']
var = keys['variable'] if keys['variable']
firstval, *vals = keys['values']
end
+ if parent.kind_of? TkVariable
+ vals.unshift(firstval) if firstval
+ firstval = var
+ var = parent
+ parent = nil
+ end
+ var = TkVariable.new unless var
fail 'variable option must be TkVariable' unless var.kind_of? TkVariable
@variable = var
firstval = @variable.value unless firstval