Xpra: Ticket #1482: In shadow mode pressed key works only once..

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...



Sun, 02 Apr 2017 10:14:23 GMT - Antoine Martin: owner changed

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.


Sun, 02 Apr 2017 19:23:12 GMT - 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


Sun, 02 Apr 2017 19:37:53 GMT - 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


Mon, 03 Apr 2017 09:30:02 GMT - Antoine Martin: attachment set

backspace pressed - client log


Mon, 03 Apr 2017 09:30:14 GMT - Antoine Martin: attachment set

backspace pressed - server log


Mon, 03 Apr 2017 15:58:02 GMT - 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.


Mon, 03 Apr 2017 19:01:31 GMT - 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


Tue, 04 Apr 2017 08:56:22 GMT - Antoine Martin: milestone set

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


Tue, 04 Apr 2017 18:41:56 GMT - 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

Thu, 20 Jul 2017 07:11:49 GMT - Antoine Martin: owner, status, milestone changed

re-scheduling - see also #1465.


Mon, 04 Dec 2017 16:08:24 GMT - Antoine Martin: owner, status changed

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.


Sat, 23 Dec 2017 12:59:11 GMT - Antoine Martin: status changed; resolution set


Sat, 23 Jan 2021 05:25:28 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1482