The TODO bundle uses the "textmate" ruby library, specifically a function TextMate.each_text_file to enumerate the files. And that function looks at TM_SELECTED_FILES.
So to change the behavior open the Bundle editor, find TODO/Show TODO List, and insert as first line:
TM_SELECTED_FILES=''
Now the TODO bundle will always go through the entire project, wether there is a file selected in the project drawer or not.
Why not add this to TODO's Preference pane, or to have two tmCommand “Show TODO List in selected Files” and “Show TODO List in Project” both bound to ^⇧T ?
Or maybe better to have the chance to filter TODO's HTML output for “Show TODO in selected files only”, and “Show TODO in current file”
--Hans