IceWM implements four general focus models:
Exactly like Win95, OS/2 Warp. When window is clicked with a mouse, it is raised and activated.
Window is raised and focused when titlebar or frame border is clicked. Window is focused but not raised when window interior is clicked.
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 a 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.