LINUX.ORG.RU

Странная работа DBus после обновления ArchLinux

 , , ,


0

1

Мой плагин на крысопанель странно работает. Перестали работать StatusNotifierItems для Qt4 (через sni-qt), причем только 64 бита (со skype практически все ок). С Gtk приложениями и Qt5 приложениями тоже все ок.

Симптом: плагин виснет надолго, потом у Qt приложения вываливается в commandline:

"sni-qt/4452" WARN  15:00:07.797 void StatusNotifierItemFactory::connectToSnw() IsStatusNotifierHostRegistered returned something which is not a bool: QVariant(, ) 
и оно идет в XEmbed, а плагин отвисает.

При этом:

qdbus org.kde.StatusNotifierWatcher /StatusNotifierWatcher org.kde.StatusNotifierWatcher.IsStatusNotifierHostRegistered
true

При этом в самом коде плагина:

    [DBus (name = "org.kde.StatusNotifierWatcher")]
    public class Watcher : Object
    {
        /* Signals */
        public signal void status_notifier_item_registered(string item);
        public signal void status_notifier_host_registered();
        public signal void status_notifier_item_unregistered(string item);
        public signal void status_notifier_host_unregistered();
        /* Hashes */
        private HashTable<string,uint> name_watcher;
        private HashTable<string,uint> hosts;
        /* Public properties */
        public string[] registered_status_notifier_items
        {owned get; protected set;}
        public bool is_status_notifier_host_registered
        {get {return true;}}

Как отдебажить сие?

★★

Ответ на: комментарий от post-factum

На нем и сижу. А с багом что делать-то. Нашел, когда баг проявляется - когда работает оба моих плагина из 1 процесса: и com.canonical.AppMenu.Registrar, и org.kde.StatusNotifierWatcher. Тогда прога, которая юзает оба интерфейса, подвешивает плагин. При этом в регистраре она регается, а watcher - не регается.

Athor ★★ ()
Ответ на: комментарий от deep-purple

Там один плагин не успевал создать все виджеты. Я создание виджетов из регистрации переместил в первый показ.

Athor ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.