On 2006-06-06 21:18:02 +0200, Ola Lundqvist wrote:
> With this in mind I'm not really sure if this is a vnc problem or
> a console/X problem. If you do similar things with for example just
> an xterm instead of the vnc client, do the same thing happen then?
I've started a normal X server (with the fvwm2 window manager), and
from a remote machine, I did a ssh, then "xev -display :0.0". When I
type Ctrl-Meta-F2 to switch to the virtual terminal 2, xev outputs:
----------------------------------------------------------------------
KeyPress event, serial 30, synthetic NO, window 0x2000001,
root 0x44, subw 0x2000002, time 85303, (47,45), root:(808,472),
state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 30, synthetic NO, window 0x2000001,
root 0x44, subw 0x2000002, time 85323, (47,45), root:(808,472),
state 0x4, keycode 115 (keysym 0xffe7, Meta_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
VisibilityNotify event, serial 30, synthetic NO, window 0x2000001,
state VisibilityFullyObscured
----------------------------------------------------------------------
Then I can do various things in the virtual terminal (xev outputs
nothing, as expected). After a "chvt 7", xev outputs:
----------------------------------------------------------------------
VisibilityNotify event, serial 30, synthetic NO, window 0x2000001,
state VisibilityUnobscured
Expose event, serial 30, synthetic NO, window 0x2000001,
(0,0), width 178, height 10, count 3
Expose event, serial 30, synthetic NO, window 0x2000001,
(0,10), width 10, height 58, count 2
Expose event, serial 30, synthetic NO, window 0x2000001,
(68,10), width 110, height 58, count 1
Expose event, serial 30, synthetic NO, window 0x2000001,
(0,68), width 178, height 110, count 0
KeyRelease event, serial 30, synthetic NO, window 0x2000001,
root 0x44, subw 0x2000002, time 306663, (47,45), root:(808,472),
state 0xc, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
KeyRelease event, serial 30, synthetic NO, window 0x2000001,
root 0x44, subw 0x2000002, time 306663, (47,45), root:(808,472),
state 0x8, keycode 115 (keysym 0xffe7, Meta_L), same_screen YES,
XLookupString gives 0 bytes:
----------------------------------------------------------------------
So, the KeyRelease events are sent *after* returning to the X server.
This seems to be the problem. Can you reproduce it if you do the same
things I did?
--
Vincent Lefèvre <[EMAIL PROTECTED]> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / SPACES project at LORIA