Eu escrevi um simples applet de indicadores para o Ubuntu em python com o gi.repository que eu estava executando com sucesso no meu Ubuntu 14.04 por um longo tempo sem nenhum problema. Depois que eu atualizei para o Ubuntu 16.04, comecei a ver um comportamento estranho. Eu tentei no Ubuntu 14.04 novamente para ter certeza e funciona bem, mas no Ubuntu 16.04 meus eventos de menu não são disparados e o aplicativo às vezes não responde quando tento alterar o ícone.
Algum indicador básico de código que funciona no Ubuntu 14.04, mas não no Ubuntu 16.04
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk as gtk
gi.require_version('AppIndicator3', '0.1')
from gi.repository import AppIndicator3 as appindicator
def main():
indicator = appindicator.Indicator.new(
'mytestindicator',
gtk.STOCK_INFO,
appindicator.IndicatorCategory.SYSTEM_SERVICES
)
indicator.set_status(appindicator.IndicatorStatus.ACTIVE)
indicator.set_menu(build_menu())
gtk.main()
def quit(source):
gtk.main_quit()
def build_menu():
menu = gtk.Menu()
item_quit = gtk.MenuItem('Quit')
item_quit.connect('activate', quit)
menu.append(item_quit)
menu.show_all()
return menu
if __name__ == '__main__':
main()
Então, minha pergunta é o que mudou entre o Ubuntu 14.04 e o 16.04 e como posso criar um applet indicador confiável que funcione sem problemas em ambos os sistemas?
Uma coisa que eu notei foi que no Ubuntu 14 eu tenho o gi.repository versão 3.12.0 mas no Ubuntu 16 ele é 3.20.0, não tenho certeza se isso importa.
Fiz a mesma pergunta em stackoverflow , mas achei que também deveria pergunte aqui