Fixing the window - raise issue in X11.app with sawfish
The problem turns out to be that Apple made the decision that just switching to X11.app wouldn't change any stacking - the wm (window manager) should raise the stacking of the window. Trouble is, most window managers won't bother to raise the window it already knows (thinks) is on top (since it doesn't manage the MacOS windows).
Under Sawfish this is easy to solve. In sawfish-ui->Bindings->Window, map Button-1 to Raise and passthrough click if focussed instead of the usual Raise and passthrough click.
Or add this to your ~/.sawfish/custom file:
(custom-set-keymap (quote window-keymap) (quote (keymap (raise-and-pass-through-click-if-focused . "Button1-Click") (move-window-interactively . "W-Button1-Move") (popup-window-menu . "W-Button2-Click") (raise-lower-window . "W-Button3-Click") (lower-window . "W-Down") (raise-window . "W-Up"))))
There are some other bits in there too.
Unfortunately this won't work with my usual sawfish config that has button-1 do NO raising, and button-3 set to raise OR passthrough click...
Update:
Having a window (say an xload) in the upper layer breaks this fix. Just kill the offendin window and all is good.
Also, Exposé so frustratingly almost works. It shows the X11 windows, and even brings one to the front when you click it, but the X11 window manager doesn't know about the stacking change, so if the previously front window overlaps your new front window, it will recieve the click (and revert to the front) when you click in that region. gah.
Update:
Also, this fix has no effect if there is only one X11 window open. You need at least two for sawfish to even bother raising anything.
08:17 PM, 06 Oct 2004 by Mark Aufflick Permalink | Short Link







