help with the interaction between the window manager and an application
I am a using the xcircuit package quite intensivly. It is a great piece of
software IMHO.
The Hamm version of the package (1.7) worked very nice for me under hamm with
Hamm's fvwm2 version.
However the slink version of the package (2.06) has the following problem
under slink with slink's fvwm2 version:
Problem: The main window won't accept keyboard input even though the buttons
and menus all work.
The upstream developer has tracked down the problem as follows:
<start quoting the upstream developer>
I downloaded and compiled WindowMaker, and it is clear that it breaks the
input focus mechanism on XCircuit. I am aware of the problem. Presumably any
other window managers which exhibit the same behavior trace back to the same
problem.
It's not a "bug" per se in xcircuit; it's an interaction between xcircuit and
the window manager. I tracked down what I think is the problem, which is that
the window manager wants to grab all keystrokes itself, and does something
called an "active grab" on the window. This apparently prevents xcircuit from
receiving keystroke events. If you put the line
XGrabKey(dpy, AnyKey, AnyModifier, win, True, GrabModeAsync, GrabModeAsync);
in file "xcircuit.c", somewhere around line 1839 (just after the program calls
the XGrabButton() function), this will solve the problem for xcircuit.
Unfortunately, forcing an active grab will prevent keystrokes in any other
window as long as xcircuit is running. You can consider it a temporary fix
until I figure out what the real solution is.
<end qouting the upstream developer>
Can anybody comment on this ?
Thank you.
Reply to: