xpra icon
Bug tracker and wiki

Opened 3 years ago

Closed 2 years ago

Last modified 2 years ago

#72 closed defect (fixed)

no keys with modifiers accepted anymore

Reported by: pmarek Owned by: totaam
Priority: major Milestone: 0.0.7.x
Component: client Version: 0.0.7.34
Keywords: Cc:

Description (last modified by totaam)

I've had it now 3 times that no keys with modifiers are accepted anymore; ie. I can enter "abc", but no character like "!" (shift+1), "«" (AltGr+x), etc. These are simply not taken (xchat text input line).

I've now had that while running xpra with "-d all"; here's the (hopefully) relevant part of the log. I hope that this client log is enough.

I've marked a few lines with "==========" to explain the approximate state; perhaps having a timestamp every so often would be a good idea, too.

Attachments (1)

xpra-kbd-damaged.txt.bz2 (6.2 KB) - added by pmarek 3 years ago.

Download all attachments as: .zip

Change History (9)

Changed 3 years ago by pmarek

comment:1 Changed 3 years ago by pmarek

Here's something I found in the xpra server log, perhaps that helps, too.

TypeError: argument of type 'NoneType' is not iterable
Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib/xpra/xpra/protocol.py", line 286, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib/xpra/xpra/server.py", line 1838, in process_packet
    self._packet_handlers[packet_type](self, proto, packet)
  File "/usr/lib/xpra/xpra/server.py", line 1620, in _process_key_action
    self._make_keymask_match(modifiers, keycode, ignored_modifier_keynames=[keyname])
  File "/usr/lib/xpra/xpra/server.py", line 1081, in _make_keymask_match
    change_mask(wanted.difference(current), True, "add")
  File "/usr/lib/xpra/xpra/server.py", line 1030, in change_mask
    if modifier in self.xkbmap_mod_managed:
TypeError: argument of type 'NoneType' is not iterable
Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib/xpra/xpra/protocol.py", line 286, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib/xpra/xpra/server.py", line 1838, in process_packet
    self._packet_handlers[packet_type](self, proto, packet)
  File "/usr/lib/xpra/xpra/server.py", line 1736, in _process_pointer_position
    self._make_keymask_match(modifiers, ignored_modifier_keynames=self.xkbmap_mod_pointermissing)
  File "/usr/lib/xpra/xpra/server.py", line 1081, in _make_keymask_match
    change_mask(wanted.difference(current), True, "add")
  File "/usr/lib/xpra/xpra/server.py", line 1030, in change_mask
    if modifier in self.xkbmap_mod_managed:

comment:2 Changed 3 years ago by totaam

  • Description modified (diff)
  • Owner changed from antoine to totaam
  • Status changed from new to accepted

The client log looks ok, I am much more interested in the server log...

comment:3 Changed 3 years ago by totaam

The error in comment:1 has been fixed already, see r433 - that may well solve your problems

comment:4 Changed 3 years ago by pmarek

I've found multiple instances of these messages, too ... but that's all there is in the server log.

unhandled format 0 for clipboard data type

TypeError: object of type 'NoneType' has no len()
['setxkbmap', '-rules', 'evdev', '-model', 'pc104', '-layout', 'de']
['setxkbmap', '-option', '', '-option', 'ctrl:nocaps,terminate:ctrl_alt_bksp,compose:lwin']
['xkbcomp', '-', ':65'] with stdin=xkb_keymap {\n       xkb_keycodes  { ..
error setting xmodmap
Traceback (most recent call last):
  File "/usr/lib/xpra/xpra/server.py", line 734, in set_keymap
    if len(self.xkbmap_keycodes)>0:
  TypeError: object of type 'NoneType' has no len()
Last edited 3 years ago by totaam (previous) (diff)

comment:5 Changed 3 years ago by totaam

bug in comment:4 is fixed in r444 - as far as I can tell, this should only happen when old clients connect?

comment:6 Changed 3 years ago by totaam

silly bug fixed in r445, to test that this fixes it, also apply this:

Index: xpra/platform/client_extras_base.py
===================================================================
--- xpra/platform/client_extras_base.py	(revision 436)
+++ xpra/platform/client_extras_base.py	(working copy)
@@ -220,6 +220,7 @@
 
 
     def session_info(self, *args):
+        self.client._keys_changed()
         if self.session_info_window:
             self.session_info_window.present()
             return

To make the keys_changed fire everytime the session statistics tray menu is clicked, this used to break the keymap and no longer does.

comment:7 Changed 2 years ago by antoine

  • Resolution set to fixed
  • Status changed from accepted to closed

I assume this is fixed, please re-open if necessary.

comment:8 Changed 2 years ago by totaam

  • Milestone changed from current to 0.0.7.x
  • Version set to 0.0.7.34
Note: See TracTickets for help on using tickets.