summaryrefslogtreecommitdiff
path: root/ext/tk/lib/tk/menu.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ext/tk/lib/tk/menu.rb')
-rw-r--r--ext/tk/lib/tk/menu.rb9
1 files changed, 8 insertions, 1 deletions
diff --git a/ext/tk/lib/tk/menu.rb b/ext/tk/lib/tk/menu.rb
index f0f5dcd2e8..4b94ccd915 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