[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: