Indicators "scroll-event" support
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-
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-
("scroll-entry"), registering a call-back function. When it gets
called, it finds the scrolled application and informs (via dbus)
indicator-
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-
"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).
Related branches
- Ted Gould (community): Approve
-
Diff: 89 lines (+28/-4)3 files modifiedlibindicator/indicator-object-marshal.list (+2/-1)
libindicator/indicator-object.c (+23/-2)
libindicator/indicator-object.h (+3/-1)
- Ted Gould (community): Approve
-
Diff: 117 lines (+71/-0)3 files modifiedsrc/application-service-appstore.c (+40/-0)
src/application-service.xml (+6/-0)
src/indicator-application.c (+25/-0)
- Marco Trevisan (Treviño): Needs Information
- Ted Gould (community): Approve
-
Diff: 253 lines (+102/-6)5 files modifiedbindings/mono/libappindicator-api.metadata (+2/-0)
src/app-indicator.c (+82/-2)
src/app-indicator.h (+13/-2)
src/application-service-marshal.list (+1/-0)
src/notification-item.xml (+4/-2)
- Ted Gould (community): Approve
-
Diff: 62 lines (+15/-16)1 file modifiedsrc/applet-main.c (+15/-16)
- Mirco Müller (community): Approve
-
Diff: 13 lines (+2/-0)1 file modifiedservices/panel-service.c (+2/-0)
- Aurélien Gâteau (community): Approve
-
Diff: 32 lines (+15/-0)1 file modifiedpanel/applets/indicator/indicator.c (+15/-0)
Changed in indicator-application: | |
assignee: | nobody → Treviño (Marco Trevisan) (3v1n0) |
description: | updated |
Changed in unity: | |
status: | New → Incomplete |
status: | Incomplete → New |
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 |
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.