Cool thanks for the pre redisplay suggestion.
> so the code I had written was able to detect whether the mode-line was
> being displayed in the active window or not.
IIUC your old code was not correct in some circumstance (maybe in the
presence of multiple frames, can't remember), but indeed the change in
Emacs-24.4 (which was made to fix another problem) breaks such hacks.
The best I can offer so far goes along the following lines:
1- use post-command-hook (or better yet pre-redisplay-function) to set
a global variable `my-selected-window'.
2- use that variable instead of (selected-window) in your modeline :eval code.
Stefan