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. *

Reply via email to