Set label/category anyway if inscript key cannot convert to keyval.

This commit is contained in:
Daiki Ueno
2011-03-11 12:53:54 +09:00
parent 0cd01bf165
commit 6787308061

View File

@ -125,14 +125,16 @@ class Keyboard(gobject.GObject):
# group(1) is inscript keyboard # group(1) is inscript keyboard
entry = data.get_entry_for_keycode(keycode) entry = data.get_entry_for_keycode(keycode)
for l in xrange(4): for l in xrange(4):
keysym = None
if entry and entry[l]: if entry and entry[l]:
try: try:
keyval = gtk.gdk.unicode_to_keyval(ord(entry[l])) keyval = gtk.gdk.unicode_to_keyval(ord(entry[l]))
keysym = eekboard.Keysym.new(keyval) keysym = eekboard.Keysym.new(keyval)
except: except:
print >> sys.stderr, "can't convert %s to keyval" % entry[l] keysym = eekboard.Keysym.new(0)
if not keysym: keysym.set_label(entry[l].encode('UTF-8'))
keysym.set_category(eekboard.SymbolCategory.LETTER)
print >> sys.stderr, "can't convert %s (%d) to keyval" % (entry[l], keycode)
else:
keysym = element.get_symbol_at_index(1, l, 0, 0) keysym = element.get_symbol_at_index(1, l, 0, 0)
matrix.set_symbol(1, l, keysym) matrix.set_symbol(1, l, keysym)
element.set_symbol_matrix(matrix) element.set_symbol_matrix(matrix)