
When opening new floating windows on a multihead display, they will often unpredictably appear on a different screen to the one that currently has focus. Example: Bind a key to run 'gmrun'. Run gmrun from one screen and take note of which screen it appears on. Switch to another screen and do the same thing. gmrun will generally appear on the same screen each time. This seems unpredictable to me. I think new windows should always appear on the current workspace (unless it's transient perhaps). This allows me to, for example, choose which screen a new window appears on by switching to it first. In the current situation, I have to somehow remember where X prefers to launch an application and try to arrange my workspaces and screens such that the application will appear in the right location. This patch makes new float windows appear on the current screen as I think they should. The contrib patch makes contrib compatible with this change. I've undone some of the floating layer work in this patch. It seems the floating layer stuff was written explicitly to support the current way of placing floating windows. If there were good reasons for this functionality, please convince me my patch does the wrong thing. Otherwise, I think this patch has the benefit of being more predictable and simpler in code.