Just for the record, I'm a gwm user and not really a ctwm user
(just playing around a bit), but I've had the same problem with
flash fullscreen (but in gwm I can handle this type of stuff
in my profile without changing the window manager source).
The problem seems to be that flash fullscreen terminates
immediately if you fiddle with the focus, not only when it
loses focus, but also if you *give* it focus. Strange.

To see that this is so, change

  XSetInputFocus (dpy, w, RevertToPointerRoot, tim);

in function SetFocus in file util.c to

  if(tmp_win && tmp_win->full_name != "npviewer.bin")
    XSetInputFocus (dpy, w, RevertToPointerRoot, tim);

(Also, add "npviewer.bin" to the "NoBorder" and "AlwaysOnTop"
lists in your .ctwmrc file, and add a specification of

  "npviewer.bin"  "+0+0"

to the "WindowGeometries" list.)  Then, flash fullscreen should
not be a problem anymore.

As a cleaner solution, I have added a "NoExplicitFocus" list to
the .ctwmrc file, which is queried instead of hardcoding the
application name in SetFocus.  Patches to this list?


Another useful change:
In the "if (LookInList (Scr->WindowGeometries..." block in
function AddWindow in file add_window.c, change

  ask_user = False;

to

  if ((mask_ & XValue) && (mask_ & YValue)) ask_user = False;

This allows giving size specifications in the WindowGeometries
list in the .ctwmrc file, while still allowing manual placement
of windows.


Happy hacking!
Tadziu

Reply via email to