Estou tentando investigar esse bug ; A essência é, se você tiver um indicador de aplicativo Unity, e você rolar sobre ele, o evento de rolagem é sempre 'up', mesmo se você rolar para baixo.
Aqui está um exemplo de script Python que cria um indicador de aplicativo. Execute-o e, em seguida, passe o mouse sobre o indicador (o ícone do Firefox) e role para cima e para baixo. A saída é sempre:
from gi.repository import Gtk, Gdk, AppIndicator3
if __name__ == "__main__":
menu = Gtk.Menu()
quit = Gtk.MenuItem("Quit")
quit.connect("activate", Gtk.main_quit)
menu.append(quit)
menu.show_all()
def scroll(ind, steps, direction):
print steps, direction
if direction != Gdk.ScrollDirection.UP:
print "Things seem ok"
indicator = AppIndicator3.Indicator.new('testscroll', '', AppIndicator3.IndicatorCategory.APPLICATION_STATUS)
indicator.set_status(AppIndicator3.IndicatorStatus.ACTIVE)
indicator.set_icon("/usr/share/pixmaps/firefox.png")
indicator.connect("scroll-event", scroll)
indicator.set_menu(menu)
Gtk.main()
Eu posso ver que o sinal está sendo definido aqui mas não consigo ver onde o evento de rolagem está realmente sendo emitido.
Onde o sinal de evento de rolagem é emitido? Onde no código o 'bug' provavelmente se originaria e reportaria incorretamente uma direção para cima? (Sou novo no desenvolvimento do Ubuntu, então peço desculpas se algo estiver óbvio)