This comment from a pygobject developer casts more insight and claims the problem is in libappindicator:
https://bugzilla.gnome.org/show_bug.cgi?id=732470#c5 Citing: "The issue seems to be related to libappindicator using a GI annotation for the scroll-events direction with (type Gdk.ScrollDirection), whereas the signal is created using G_TYPE_UINT as the GValue argument type [1]. Emitting 'scroll-event' either with dbus or Python as Christoph has shown passes a GValue holding an integer. When pygobject receives the signal, it tries to marshal this GValue as an enum based on the introspection information (using g_value_get_enum) which is what causes the assertion shown above. Beyond the assertion warning, g_value_get_enum() also returns 0 which ends up being GTK_SCROLL_UP (very similar to bug 693664). We could hack around this in pygobject by also accepting integer types as valid enum values, but I believe the root of the problem lies in libappindicator using an annotation which differs in fundamental type than what the signal describes for its GValue marshaller (G_TYPE_ENUM vs. G_TYPE_UINT). [1] http://bazaar.launchpad.net/~indicator-applet-developers/libappindicator/trunk.14.10/view/head:/src/app-indicator.c#L526 " -- You received this bug notification because you are a member of DX Packages, which is subscribed to libappindicator in Ubuntu. Matching subscriptions: dx-packages https://bugs.launchpad.net/bugs/1071738 Title: Indicator scroll event says direction UP on 12.10 even when scrolling down Status in “libappindicator” package in Ubuntu: Confirmed Bug description: I am using AppIndicator via Python. On Ubuntu 12.10 (stock install, python-appindicator: Installed: 12.10.0-0ubuntu1) when I listen for scroll event signals, the direction is always reported as UP, never as DOWN - even when scrolling down. This was working on 12.04. My application variety depends on this functionality, here is the relevant bug report for it: https://bugs.launchpad.net/variety/+bug/1071598 Here is sample code to demonstrate the problem (OK on 12.04, buggy on 12.10): 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() To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/libappindicator/+bug/1071738/+subscriptions -- Mailing list: https://launchpad.net/~dx-packages Post to : dx-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~dx-packages More help : https://help.launchpad.net/ListHelp