Привязки Python AppIndicator -> как проверить, открыто ли меню?

Вот минимальный пример AppIndicator:

#!/usr/bin/python

import gobject
import gtk
import appindicator

if __name__ == "__main__":
    ind = appindicator.Indicator("example-simple-client", "gtk-execute", appindicator.CATEGORY_APPLICATION_STATUS)
    ind.set_status (appindicator.STATUS_ACTIVE)
    menu = gtk.Menu()
    menu_items = gtk.MenuItem('Quit')
    menu.append(menu_items)
    menu_items.connect("activate", gtk.main_quit)
    menu_items.show()
    ind.set_menu(menu)
    gtk.main()

К сожалению, документация по этому вопросу очень неполная. То, что я ищу, - это способ проверить, было ли меню AppIndicator открыто пользователем (например, щелкнул значок индикатора). Так есть ли сигнал, который излучается при открытии меню?

2 ответа

Похоже, ответа нет, к сожалению.

print gobject.signal_list_names(ind)
('new-icon', 'new-attention-icon', 'new-status', 'new-label', 'x-ayatana-new-label', 'connection-changed', 'new-icon-theme-path')

Я попробовал все из них, и ни один из них не активируется при нажатии на индикатор. Для чего стоит разработчики Unity, похоже, хотят, чтобы все индикаторы вели себя одинаково, поэтому вполне возможно, что он намеренно ограничен.

Об этом сообщается об ошибке на панели запуска https://bugs.launchpad.net/screenlets/+bug/522152

Обратите внимание, что сигнал "активировать" доступен для подменю AppIndicator.

Другие вопросы по тегам