view_entry(entry)
elsif event.keyval == Gdk::Keyval::GDK_Home
- if $allentries[0] && $allentries[0].button
- $allentries[0].button.grab_focus
+ index = 0
+ while $allentries[index] && $allentries[index].button && !visible($allentries[index])
+ index += 1
+ end
+ if $allentries[index] && $allentries[index].button
+ $allentries[index].button.grab_focus
end
elsif event.keyval == Gdk::Keyval::GDK_End
- if $allentries[-1] && $allentries[-1].button
- $allentries[-1].button.grab_focus
+ index = $allentries.size - 1
+ while $allentries[index] && $allentries[index].button && !visible($allentries[index])
+ index += 1
+ end
+ if $allentries[index] && $allentries[index].button
+ $allentries[index].button.grab_focus
end
else