def cycle_controls
if RUBY_VERSION.to_f > 1.8
index = @active_pane.controls.keys.index @active_pane.controls.key(@active_control)
else
index = @active_pane.controls.keys.index @active_pane.controls.index(@active_control)
end
begin
index += 1
index = 0 if index >= @active_pane.controls.size
end until @active_pane.controls[@active_pane.controls.keys[index]].respond_to? :handle_char
old = @active_control
@active_control = @active_pane.controls[@active_pane.controls.keys[index]]
old.redraw
@active_control.redraw
end