Indicators "scroll-event" support

Bug #708180 reported by Marco Trevisan (Treviño)
80
This bug affects 22 people
Affects Status Importance Assigned to Milestone
Application Indicators
Fix Released
Undecided
Marco Trevisan (Treviño)
Ayatana Ubuntu
Fix Released
Undecided
Marco Trevisan (Treviño)
Indicator Applet
Fix Released
Undecided
Marco Trevisan (Treviño)
Unity
Fix Released
Low
Marco Trevisan (Treviño)
libappindicator
Fix Released
Undecided
Marco Trevisan (Treviño)
libindicator
Fix Released
Undecided
Marco Trevisan (Treviño)
unity-2d
Fix Released
Undecided
Marco Trevisan (Treviño)
unity (Ubuntu)
Fix Released
Undecided
Marco Trevisan (Treviño)
unity-2d (Ubuntu)
Fix Released
Undecided
Marco Trevisan (Treviño)

Bug Description

Actually the only indicator which supports scrolling over it, is the indicator-sound. However libindicate support that signal for every indicator, but not for indicators (like indicator-application) which contain many other child entries.

So, in the current situation it's impossible to create an appindicator which get a signal on scroll-event over its icon (for example for making an indicator that controls the brightness of the screen...).

This is an implementation that allows that; basically:
* libindicator support the new "scroll-entry" signal (which get called
  using the target entry as parameter too) I think that maybe we could
  simply rewrite the "scroll" signal, but I kept it there for
  compatibility reasons; however, actually just the indicator-sound
  should be fixed in case of switch...

* indicator-application now is listening for that signal
  ("scroll-entry"), registering a call-back function. When it gets
  called, it finds the scrolled application and informs (via dbus)
  indicator-application-service that a scroll event has been
  registered for that application. Now the service (that is connected
  to every indicatorapp running) sends (via dbus, again) to the correct
  application the scroll-event informations.

* libappindicator now when it gets a dbus call from
  indicator-application about the incoming scroll event, sends a
  "scroll-event" signal to the appindicator application.

* unity (panel-service, in fact): now sends also a "scroll-entry"
  signal when an indicator is scrolled, with the target entry as
  parameter.

* unity-2d (unity-2d-panel in fact): now sends also a "scroll-entry"
  signal when an indicator is scrolled, with the target entry as
  parameter.

* indicator-applet (like unity): now sends also a "scroll-entry"
  signal when an indicator is scrolled, with the target entry as
  parameter.

As results, you can do

AppIndicator *indicator;
...
g_signal_connect (indicator, "scroll-event", G_CALLBACK (scroll_event), NULL);

To get the scroll event

Imho this is can be needed, and also should be an architecture to be used for other signals ("over-indicator" signal for example... or others related to the indicator, more than its content).

Tags: patch

Related branches

Revision history for this message
Marco Trevisan (Treviño) (3v1n0) wrote :
Revision history for this message
Marco Trevisan (Treviño) (3v1n0) wrote :
Revision history for this message
Marco Trevisan (Treviño) (3v1n0) wrote :
Revision history for this message
Marco Trevisan (Treviño) (3v1n0) wrote :
Revision history for this message
Marco Trevisan (Treviño) (3v1n0) wrote :
Changed in indicator-application:
assignee: nobody → Treviño (Marco Trevisan) (3v1n0)
description: updated
Mirco Müller (macslow)
Changed in unity:
status: New → Incomplete
status: Incomplete → New
Revision history for this message
Mirco Müller (macslow) wrote :

Marco, the unity-patch looks ok (approved it). But landing all this needs a bit of care though. Like you stated in the merge-request for the patch to unity your changes to libindicator, indicator-application and libappindicator need to be approved and merged first.

Changed in unity:
status: New → Confirmed
importance: Undecided → Low
Revision history for this message
Marco Trevisan (Treviño) (3v1n0) wrote :

Yes, (as written in the merge request) to get it working yes, however in Unity merging the patch shouldn't cause build breakage (the signal simply won't cause any effect).
The only "strong" dependency here is between libindicator (that defines the scroll-entry signal) and indicator-application (which implements the scroll-entry signal).

Ted Gould (ted)
Changed in libindicator:
status: New → Fix Released
Changed in indicator-applet:
status: New → Fix Released
Changed in indicator-application:
status: New → In Progress
Changed in indicator-application:
status: In Progress → Fix Committed
Changed in libappindicator:
assignee: nobody → Treviño (Marco Trevisan) (3v1n0)
status: New → Fix Committed
Changed in unity:
assignee: nobody → Treviño (Marco Trevisan) (3v1n0)
status: Confirmed → Fix Committed
Changed in ayatana-ubuntu:
status: New → In Progress
Changed in indicator-applet:
assignee: nobody → Treviño (Marco Trevisan) (3v1n0)
Changed in libindicator:
assignee: nobody → Treviño (Marco Trevisan) (3v1n0)
Changed in ayatana-ubuntu:
assignee: nobody → Treviño (Marco Trevisan) (3v1n0)
Changed in unity:
status: Fix Committed → Fix Released
Changed in indicator-application:
status: Fix Committed → Fix Released
Changed in libappindicator:
status: Fix Committed → Fix Released
Changed in ayatana-ubuntu:
status: In Progress → Fix Released
Changed in unity-2d:
assignee: nobody → Treviño (Marco Trevisan) (3v1n0)
status: New → Fix Committed
description: updated
Changed in unity-2d (Ubuntu):
status: New → Fix Committed
Changed in unity-2d (Ubuntu):
assignee: nobody → Treviño (Marco Trevisan) (3v1n0)
Changed in unity (Ubuntu):
status: New → Fix Committed
assignee: nobody → Treviño (Marco Trevisan) (3v1n0)
status: Fix Committed → Fix Released
Changed in unity-2d (Ubuntu):
status: Fix Committed → Fix Released
Changed in unity-2d:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.