[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