Hi, since Opera 10.6x one needs to run a composite manager because the dropdown window for visited URLs in the "Goto Page" window (opened with F2) needs compositing effects since 10.6x :-( I guess more and more programs will required this.
xcompmgr has many problems with ctwm (like loosing focus, disabling the raise function, leaving parts of windows from other workspaces on the screen), so I tried with compiz. This works almost fine, but has two problems when changing workspaces. 1) distortions may occur when warping to a window with f.warpto and - the window is iconified and WarpUnmapped is defined in .ctwmrc - the window is not on the current workspace manager - NoRaiseOnWarp is not defined in .ctwmrc - the window overlaps some other window then deiconfied. If all these conditions are met either the window that was warped to might not be fully shown but parts of a window that should be below are still visible. Or, when iconifying the window again, parts of this window may still be shown on the windows that were below it. 2) When changing a workspace with a key binding and a window that is shown on all workspaces has been raised since the workspace has been visited the last time, similar distortions occur. One example: - there are two (or more) workspaces WS1 and WS1 - one window A which is shown in all workspaces - in WS1 there are windows W1 and W2, in WS2 one window W3 - the windows are placed such that W* overlaps part of A Now go to WS1 and arrange the windows such that W1 overlaps A and A overlaps W2. Then switch to WS2. Raise A to the top. If A is ontop already, raise W3 first then raise A so that it is ontop of all windows. Now place the mouse pointer into A and switch back to WS1 with a key binding so that the mouse focus stays in A. In WS1 now A will have the focus, but it won't be fully shown, parts of W1 which was overlapping A before will be painted on A. When leaving A with the mouse pointer it is re-painted and shown correctly, but when moving the mouse into W1 it is also fully painted and overlays the plan window, even if AutoRaise is not specified. I.e., ctwm now acts as if 'AutoRaise { "A" "W1" }' was defined. Solution: Both problems can be fixed by defining ChangeWorkspaceFunction f.refresh in .ctwmrc. Note that 1) can be fixed by changing the code for f.warpto. If the window that we warp to is no in the current workspace, ctwm first deiconifies and raises the window, then changes the workspace and warps the pointer into the windows I wrote a patch (before I detected the ChangeWorkspaceFunction ;-)) which changes this behaviour for all calls to WarpToWindow and switches the workspace before deiconifying and raising the window. To me this sounds more intuitive, so I wonder if there is any special reason for deiconifying and raising before changing the workspace? cu, Frank -- Dipl.-Inform. Frank Steiner Web: http://www.bio.ifi.lmu.de/~steiner/ Lehrstuhl f. Bioinformatik Mail: http://www.bio.ifi.lmu.de/~steiner/m/ LMU, Amalienstr. 17 Phone: +49 89 2180-4049 80333 Muenchen, Germany Fax: +49 89 2180-99-4049 * Rekursion kann man erst verstehen, wenn man Rekursion verstanden hat. *