機能 #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_ のツイートに 
   | 
||
| 
       # フォーカスを移動する 
   | 
||