[devel] Проблема с Caribou: особенности DBus из Python?
Paul Wolneykien
manowar на altlinux.org
Сб Апр 28 01:52:56 MSK 2012
Всем привет.
Подготавливая программы для нового выпуска планшетного дистрибутива,
обнаружил очень странную проблему. Дело в том, что если CaribouDaemon
запускается из автостарта, то вызов методов через DBus осуществляется с
типом аргументов int32, что неправильно. Однако, если его убить и
перезапустить (неважно каким образом), то методы начинают вызываться с
правильным типом аргументов — uint32. Принимая во внимание, что а) Питон
является языком без жёсткого типизирования, и б) типы данных для DBus
должны определяться автоматически, я пока не знаю что с этим делать.
Разницу в типах аргументов удалось заметить посредством dbus-monitor.
Непригодность int32 — посредством dbus-send.
Проблема выражается в том, что во многих программах клавиатура не
всплывает без перезапуска caribou.
Речь идёт о вызове keyboard_proxy.Show() в caribou/daemon/main.py:
http://git.altlinux.org/srpms/c/caribou.git?p=caribou.git;a=blob;f=caribou/caribou/daemon/main.py;h=0084b2dab7f620b4ea0a2ea67e3097722eaba209;hb=f789613d0841f50b8b2d90fa4788bb68dfd3b898#l132
Если среди участников Team есть люди, знающие DBus в связке с
Питоном, прошу их откликнуться.
Павел.
Подробная информация о списке рассылки Devel