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

Reply via email to