Hi yehuda ;
You only have to program the idle trapping for one instance of your application's EXE - that is just the two window dialogues that could be open.
Suggestion:
1) Create a global active Window pointer
ie: Window go_active_win
2) In each working Window's "Activate" event update the current window pointer
ie: go_active_win = THIS
3) In the Idle event, you can introspect the active window via the pointer or use it to send a message to the dialog that needs to take a specific action
for example:
IF IsValid (go_active_win) THEN
go_active_win.Triggerevent ("ue_idle") // User event
END IF
HTH
Regards ... Chris