IceWM implements three general focus models:
Exactly like Win95, OS/2 Warp. When window is clicked with a mouse, it is raised and activated.
When the mouse is moved, focus is set to window under a mouse. It should be possible to change focus with the keyboard when mouse is not moved.
When window is clicked, it is activated, but not raised. New windows do not automatically get the focus unless they are transient windows for the active window.
I am experimenting with this, to develop something more flexible then clickFocus.
Detailed configuration is possible using the configuration file options.