
On Fri, Feb 01, 2008 at 03:00:47PM -0600, Spencer Janssen wrote:
I think this solution is *really* ugly. Also, I don't think we can necessarily rely on the property that decorations windows are the only override-redirect windows in the windowset.
Sorry Spencer, but I deduce, from your words, that all my job has been base on completely false assumptions, and probably we must have some serious code review. I'm not kidding, and I'm not ironic. I do really take into consideration of just being plainly wrong on everything. You know I have high respect for your knowledge. 1) handle (MapRequestEvent {ev_window = w}) = withDisplay $ \dpy -> do wa <- io $ getWindowAttributes dpy w -- ignore override windows -- need to ignore mapping requests by managed windows not on the current workspace managed <- isClient w when (not (wa_override_redirect wa) && not managed) $ do manage w 2) a window with override_redirect *must* always pass true. 3) no modifier is allowed to change the stack set! they can *only* manipulate the (window,rectangle) list to be returned in Operations.windows. Modifier *DO NOT* manipulate the stack. Once "restackWindows d vs" has being called, track of layouts/modifiers' activity can be found only in the layout field of the workspace type. If any of these three assumptions is false, we should probably consider to revert immediately. I'm serious, and I understand that we must provide a certain level of code correctness. Cheers, Andrea