機能 #597 » wrap-around.patch
| core/plugin/command/command.rb | ||
|---|---|---|
|
type_strict widget => Plugin::GUI::HierarchyChild
|
||
|
children = widget.parent.children.select{ |w| w.is_a? widget.class }
|
||
|
index = children.index(widget)
|
||
|
if distance > 0 ? (children.size <= (index+distance)) : (0 > (index+distance))
|
||
|
notice "terminate #{widget}"
|
||
|
yield(widget, distance) if block_given?
|
||
|
else
|
||
|
term = children[index + distance]
|
||
|
term = term.active_chain.last if term.respond_to? :active_chain
|
||
|
term.active! if term
|
||
|
notice "activate #{term} #{widget.class} #{term.class}"
|
||
|
src_tl = widget.active_chain.last
|
||
|
if widget.is_a?(Plugin::GUI::Pane) and src_tl.is_a?(Plugin::GUI::Timeline) and term.is_a?(Plugin::GUI::Timeline)
|
||
|
slide_timeline_focus(src_tl, term) end end end
|
||
|
term = children[(index + distance) % children.size]
|
||
|
term = term.active_chain.last if term.respond_to? :active_chain
|
||
|
term.active! if term
|
||
|
notice "activate #{term} #{widget.class} #{term.class}"
|
||
|
src_tl = widget.active_chain.last
|
||
|
if widget.is_a?(Plugin::GUI::Pane) and src_tl.is_a?(Plugin::GUI::Timeline) and term.is_a?(Plugin::GUI::Timeline)
|
||
|
slide_timeline_focus(src_tl, term) end end
|
||
|
# タイムライン _src_ で選択されているディスプレイ上のy座標が同じ _dest_ のツイートに
|
||
|
# フォーカスを移動する
|
||