xpra icon
Bug tracker and wiki

Opened 8 months ago

Last modified 7 days ago

#1482 new defect

In shadow mode pressed key works only once..

Reported by: B Owned by: B
Priority: major Milestone: 2.2
Component: core Version: trunk
Keywords: Cc:

Description

Hi,

in shadow mode permanent pressing a key only do the key once on shadowed server.

Host os: Xenial
client os: xenial

latest xpra version.

If u need more information, pls let me know...

Attachments (2)

backspace-client.log (64.1 KB) - added by Antoine Martin 8 months ago.
backspace pressed - client log
backspace-server.log (7.3 KB) - added by Antoine Martin 8 months ago.
backspace pressed - server log

Download all attachments as: .zip

Change History (11)

comment:1 Changed 8 months ago by Antoine Martin

Owner: changed from Antoine Martin to B

Do you mean to say there there is no key repeat?
I've just tried it on both Xenial and Fedora and it worked fine on both.

Please attach the "-d keyboard" output for both the client and the server.
Please also specify the exact version, see wiki/ReportingBugs for why "the latest version" is not a good answer.

comment:2 Changed 8 months ago by B

thanx for replying and sorry for my late answer:

if i press for instance keyboard key i for about 2 secs, only one i is printed in on the xpra server. Another example is that if I have an text and want to delete various thanx with the backspace, i have to press backspace for every char and cannot just keep pressing backspace...

(edit: converted to attachment):
attachment/ticket/1482/backspace-client.log

in that example i pressed backspace to delete various chars, but only one gots deleted....

greets

Last edited 8 months ago by Antoine Martin (previous) (diff)

comment:3 Changed 8 months ago by B

server log: (edit: converted to attachment)
attachment/ticket/1482/backspace-server.log

me again, another problem i figured out is that in shadow mode, if i press "/" on server _ gets printed

Client:

2017-04-02 21:28:00,464 parse_key_event(<gtk.gdk.Event at 0x7fa3bb7827d8: GDK_KEY_PRESS keyval=Shift_R>, True)=<GTKKeyEvent object, contents: {'modifiers': [], 'group': 0, 'string': '', 'keyname': 'Shift_R', 'pressed': True, 'keyval': 65506, 'keycode': 62}>
2017-04-02 21:28:00,464 handle_key_action(ClientWindow(1), <GTKKeyEvent object, contents: {'modifiers': [], 'group': 0, 'string': '', 'keyname': 'Shift_R', 'pressed': True, 'keyval': 65506, 'keycode': 62}>) wid=1
2017-04-02 21:28:00,464 send_key_action(1, <GTKKeyEvent object, contents: {'modifiers': [], 'group': 0, 'string': '', 'keyname': 'Shift_R', 'pressed': True, 'keyval': 65506, 'keycode': 62}>)
2017-04-02 21:28:00,952 parse_key_event(<gtk.gdk.Event at 0x7fa3bb782788: GDK_KEY_PRESS keyval=slash>, True)=<GTKKeyEvent object, contents: {'modifiers': ['shift'], 'group': 0, 'string': '/', 'keyname': 'slash', 'pressed': True, 'keyval': 47, 'keycode': 16}>
2017-04-02 21:28:00,952 handle_key_action(ClientWindow(1), <GTKKeyEvent object, contents: {'modifiers': ['shift'], 'group': 0, 'string': '/', 'keyname': 'slash', 'pressed': True, 'keyval': 47, 'keycode': 16}>) wid=1
2017-04-02 21:28:00,952 send_key_action(1, <GTKKeyEvent object, contents: {'modifiers': ['shift'], 'group': 0, 'string': '/', 'keyname': 'slash', 'pressed': True, 'keyval': 47, 'keycode': 16}>)
2017-04-02 21:28:01,167 parse_key_event(<gtk.gdk.Event at 0x7fa3bb7827d8: GDK_KEY_RELEASE keyval=slash>, False)=<GTKKeyEvent object, contents: {'modifiers': ['shift'], 'group': 0, 'string': '/', 'keyname': 'slash', 'pressed': False, 'keyval': 47, 'keycode': 16}>
2017-04-02 21:28:01,168 handle_key_action(ClientWindow(1), <GTKKeyEvent object, contents: {'modifiers': ['shift'], 'group': 0, 'string': '/', 'keyname': 'slash', 'pressed': False, 'keyval': 47, 'keycode': 16}>) wid=1
2017-04-02 21:28:01,168 send_key_action(1, <GTKKeyEvent object, contents: {'modifiers': ['shift'], 'group': 0, 'string': '/', 'keyname': 'slash', 'pressed': False, 'keyval': 47, 'keycode': 16}>)
2017-04-02 21:28:01,335 parse_key_event(<gtk.gdk.Event at 0x7fa3bb7827d8: GDK_KEY_RELEASE keyval=Shift_R>, False)=<GTKKeyEvent object, contents: {'modifiers': ['shift'], 'group': 0, 'string': '', 'keyname': 'Shift_R', 'pressed': False, 'keyval': 65506, 'keycode': 62}>
2017-04-02 21:28:01,336 handle_key_action(ClientWindow(1), <GTKKeyEvent object, contents: {'modifiers': ['shift'], 'group': 0, 'string': '', 'keyname': 'Shift_R', 'pressed': False, 'keyval': 65506, 'keycode': 62}>) wid=1
2017-04-02 21:28:01,336 send_key_action(1, <GTKKeyEvent object, contents: {'modifiers': ['shift'], 'group': 0, 'string': '', 'keyname': 'Shift_R', 'pressed': False, 'keyval': 65506, 'keycode': 62}>)
2017-04-02 21:28:13,664 parse_key_event(<gtk.gdk.Event at 0x7fa3bb7827d8: GDK_KEY_PRESS keyval=Shift_L>, True)=<GTKKeyEvent object, contents: {'modifiers': [], 'group': 0, 'string': '', 'keyname': 'Shift_L', 'pressed': True, 'keyval': 65505, 'keycode': 50}>
2017-04-02 21:28:13,664 handle_key_action(ClientWindow(1), <GTKKeyEvent object, contents: {'modifiers': [], 'group': 0, 'string': '', 'keyname': 'Shift_L', 'pressed': True, 'keyval': 65505, 'keycode': 50}>) wid=1

Server:

2017-04-02 21:27:59,759  doing a full keyboard reset, keys now pressed={}
2017-04-02 21:28:00,472 client 1: parse_key_event(<gtk.gdk.Event at 0x7fa3bb7827d8: GDK_KEY_PRESS keyval=Shift_R>, True)=<GTKKeyEvent object, contents: {'modifiers': [], 'group': 0, 'string': '', 'k
ue, 'keyval': 65506, 'keycode': 62}>
2017-04-02 21:28:00,474 client 1: handle_key_action(ClientWindow(1), <GTKKeyEvent object, contents: {'modifiers': [], 'group': 0, 'string': '', 'keyname': 'Shift_R', 'pressed': True, 'keyval': 65506
2017-04-02 21:28:00,478 client 1: send_key_action(1, <GTKKeyEvent object, contents: {'modifiers': [], 'group': 0, 'string': '', 'keyname': 'Shift_R', 'pressed': True, 'keyval': 65506, 'keycode': 62}
2017-04-02 21:28:00,479 Warning: failed to remove the following modifiers:
2017-04-02 21:28:00,479  mod2
2017-04-02 21:28:00,479  keys still pressed={}
2017-04-02 21:28:00,480  doing a full keyboard reset, keys now pressed={}
2017-04-02 21:28:00,960 client 1: parse_key_event(<gtk.gdk.Event at 0x7fa3bb782788: GDK_KEY_PRESS keyval=slash>, True)=<GTKKeyEvent object, contents: {'modifiers': ['shift'], 'group': 0, 'string': '
: True, 'keyval': 47, 'keycode': 16}>
2017-04-02 21:28:00,964 client 1: handle_key_action(ClientWindow(1), <GTKKeyEvent object, contents: {'modifiers': ['shift'], 'group': 0, 'string': '/', 'keyname': 'slash', 'pressed': True, 'keyval':
2017-04-02 21:28:00,964 client 1: send_key_action(1, <GTKKeyEvent object, contents: {'modifiers': ['shift'], 'group': 0, 'string': '/', 'keyname': 'slash', 'pressed': True, 'keyval': 47, 'keycode': 
2017-04-02 21:28:00,965 Warning: failed to remove the following modifiers:
2017-04-02 21:28:00,965  mod2
2017-04-02 21:28:00,965  keys still pressed={62: 'Shift_R'}
2017-04-02 21:28:00,966  doing a full keyboard reset, keys now pressed={}
2017-04-02 21:28:01,175 client 1: parse_key_event(<gtk.gdk.Event at 0x7fa3bb7827d8: GDK_KEY_RELEASE keyval=slash>, False)=<GTKKeyEvent object, contents: {'modifiers': ['shift'], 'group': 0, 'string'
ed': False, 'keyval': 47, 'keycode': 16}>
2017-04-02 21:28:01,178 client 1: handle_key_action(ClientWindow(1), <GTKKeyEvent object, contents: {'modifiers': ['shift'], 'group': 0, 'string': '/', 'keyname': 'slash', 'pressed': False, 'keyval'
2017-04-02 21:28:01,181 client 1: send_key_action(1, <GTKKeyEvent object, contents: {'modifiers': ['shift'], 'group': 0, 'string': '/', 'keyname': 'slash', 'pressed': False, 'keyval': 47, 'keycode':
2017-04-02 21:28:01,182 Warning: failed to remove the following modifiers:
2017-04-02 21:28:01,183  mod2
2017-04-02 21:28:01,183  keys still pressed={50: 'Shift_L', 61: 'minus'}
2017-04-02 21:28:01,184  doing a full keyboard reset, keys now pressed={}

greets

Last edited 8 months ago by Antoine Martin (previous) (diff)

Changed 8 months ago by Antoine Martin

Attachment: backspace-client.log added

backspace pressed - client log

Changed 8 months ago by Antoine Martin

Attachment: backspace-server.log added

backspace pressed - server log

comment:4 Changed 8 months ago by Antoine Martin

Looks like we're trying to unset a modifier, that goes wrong and we end up unpressing "Backspace" instead:

client 1: send_key_action(1, <GTKKeyEvent object, contents: \
    {'modifiers': [], 'group': 0, 'string': '', 'keyname': 'BackSpace', 'pressed': True, 'keyval': 65288, 'keycode': 2
Warning: failed to remove the following modifiers:
 mod2
 keys still pressed={22: 'BackSpace'}
 doing a full keyboard reset, keys now pressed={}

Please provide more details so I can try to reproduce this, see wiki/Keyboard.

comment:5 Changed 8 months ago by B

Hi,

with --no-keyboard-sync the "no repeating problem" is gone.

xmodmap -pke
keycode 16 = 7 slash ampsersand....
...
keycode 61 = minus underscore slash ....

2017-04-03 20:59:45,087 handle_key_action(GLClientWindow(1 : gtk2.GLWindowBacking(1, (3600, 1200), YUV420P)), <GTKKeyEvent object, contents: {'modifiers': ['shift'], 'group': 0, 'string': '/', 'keyname': 'slash', 'pressed': True, 'keyval': 47, 'keycode': 16}>) wid=1
2017-04-03 20:59:45,088 send_key_action(1, <GTKKeyEvent object, contents: {'modifiers': ['shift'], 'group': 0, 'string': '/', 'keyname': 'slash', 'pressed': True, 'keyval': 47, 'keycode': 16}>)
2017-04-03 20:59:45,293 parse_key_event(<gtk.gdk.Event at 0x7f4ff8179d78: GDK_KEY_RELEASE keyval=slash>, False)=<GTKKeyEvent object, contents: {'modifiers': ['shift'], 'group': 0, 'string': '/', 'keyname': 'slash', 'pressed': False, 'keyval': 47, 'keycode': 16}>
2017-04-03 20:59:45,294 handle_key_action(GLClientWindow(1 : gtk2.GLWindowBacking(1, (3600, 1200), YUV420P)), <GTKKeyEvent object, contents: {'modifiers': ['shift'], 'group': 0, 'string': '/', 'keyname': 'slash', 'pressed': False, 'keyval': 47, 'keycode': 16}>) wid=1
2017-04-03 20:59:45,295 send_key_action(1, <GTKKeyEvent object, contents: {'modifiers': ['shift'], 'group': 0, 'string': '/', 'keyname': 'slash', 'pressed': False, 'keyval': 47, 'keycode': 16}>)

hmm...looks good to me...but only prints an "_" to the screen on server

greets

comment:6 Changed 8 months ago by Antoine Martin

Milestone: 2.1

The required information is still missing, see the link in comment:4.
ie: setxkbmap -print, xmodmap -pke, xmodmap -pm, etc..

comment:7 Changed 8 months ago by B

Hi,
im using de on server and de on client. I tried to switch already in tray symbol to de, without any success.

$ setxkbmap -print
xkb_keymap {
	xkb_keycodes  { include "evdev+aliases(qwertz)"	};
	xkb_types     { include "complete"	};
	xkb_compat    { include "complete"	};
	xkb_symbols   { include "pc+de+us:2+inet(evdev)"	};
	xkb_geometry  { include "pc(pc105)"	};
};
$ xmodmap -pke
keycode  11 = 2 quotedbl 2 at twosuperior oneeighth -> 2(is ok),Ä(should be "),²(is ok)
keycode  12 = 3 section 3 numbersign threesuperior sterling
keycode  13 = 4 dollar 4 dollar onequarter currency
keycode  14 = 5 percent 5 percent onehalf threeeighths
keycode  15 = 6 ampersand 6 asciicircum notsign fiveeighths ->6(is ok),K(should be &)
keycode  16 = 7 slash 7 ampersand braceleft seveneighths -> 7(is ok),_(should be /),¨(should be [) 
keycode  17 = 8 parenleft 8 asterisk bracketleft trademark
keycode  18 = 9 parenright 9 parenleft bracketright plusminus
keycode  19 = 0 equal 0 parenright braceright degree -> 0(is ok), `(should be =)
keycode  20 = ssharp question minus underscore backslash questiondown U1E9E -> ß(is ok), _(should be ?)
keycode  21 = dead_acute dead_grave equal plus dead_cedilla dead_ogonek


keycode  34 = udiaeresis Udiaeresis bracketleft braceleft dead_diaeresis dead_abovering
keycode  35 = plus asterisk bracketright braceright asciitilde macron
keycode  36 = Return NoSymbol Return
keycode  37 = Control_L NoSymbol Control_L

keycode  47 = odiaeresis Odiaeresis semicolon colon dead_doubleacute dead_belowdot
keycode  48 = adiaeresis Adiaeresis apostrophe quotedbl dead_circumflex dead_caron
keycode  49 = dead_circumflex degree grave asciitilde U2032 U2033
keycode  50 = Shift_L NoSymbol Shift_L
keycode  51 = numbersign apostrophe backslash bar rightsinglequotemark dead_breve

keycode  59 = comma semicolon comma less periodcentered multiply
keycode  60 = period colon period greater U2026 division
keycode  61 = minus underscore slash question endash emdash
keycode  62 = Shift_R NoSymbol Shift_R
keycode  63 = KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply XF86ClearGrab KP_Multiply KP_Multiply XF86ClearGrab
keycode  64 = Alt_L Meta_L Alt_L Meta_L
$ xmodmap -pm
xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):
shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

xkbprint -label name $DISPLAY --> no output

xev:

KeyPress event, serial 37, synthetic NO, window 0x5800001,
    root 0x4b5, subw 0x0, time 977811682, (866,596), root:(932,648),
    state 0x11, keycode 61 (keysym 0x5f, underscore), same_screen YES,
    XLookupString gives 1 bytes: (5f) "_"
    XmbLookupString gives 1 bytes: (5f) "_"
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x5800001,
    root 0x4b5, subw 0x0, time 977811863, (866,596), root:(932,648),
    state 0x11, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x5800001,
    root 0x4b5, subw 0x0, time 977811864, (866,596), root:(932,648),
    state 0x10, keycode 61 (keysym 0x2d, minus), same_screen YES,
    XLookupString gives 1 bytes: (2d) "-"
    XFilterEvent returns: False

- should be /

KeyRelease event, serial 37, synthetic NO, window 0x5800001,
    root 0x4b5, subw 0x0, time 977952140, (564,495), root:(630,547),
    state 0x11, keycode 21 (keysym 0xfe50, dead_grave), same_screen YES,
    XLookupString gives 1 bytes: (60) "`"
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x5800001,
    root 0x4b5, subw 0x0, time 977952140, (564,495), root:(630,547),
    state 0x11, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 37, synthetic NO, window 0x5800001,
    root 0x4b5, subw 0x0, time 977952141, (564,495), root:(630,547),
    state 0x10, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x5800001,
    root 0x4b5, subw 0x0, time 977952441, (564,495), root:(630,547),
    state 0x11, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

` should be =

2729            emdash                      61      0       3
47              slash                       61      1       0
63              question                    61      1       1
65506           Shift_R                     62      0       0
65450           KP_Multiply                 63      0       0
65450           KP_Multiply                 
Last edited 8 months ago by Antoine Martin (previous) (diff)

comment:8 Changed 5 months ago by Antoine Martin

Milestone: 2.12.2
Owner: changed from B to Antoine Martin
Status: newassigned

re-scheduling - see also #1465.

comment:9 Changed 7 days ago by Antoine Martin

Owner: changed from Antoine Martin to B
Status: assignednew

I am unable to reproduce the key repeat problem with the latest beta builds.

As for the key mapping problems, there have been fixes in this area so maybe this is fixed already:

If not, please specify which exact keys are being pressed, with which modifiers held. Preferably specifying the keys on a keyboard diagram such as this one: https://en.wikipedia.org/wiki/German_keyboard_layout so that I can reproduce using my own keyboard by setting it to a 'de' layout.

Note: See TracTickets for help on using tickets.