After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 633005 - volumeIcon: Unmute on manual volume changes
volumeIcon: Unmute on manual volume changes
Status: RESOLVED OBSOLETE
Product: gnome-shell
Classification: Core
Component: general
unspecified
Other Linux
: Normal normal
: ---
Assigned To: Giovanni Campagna
gnome-shell-maint
Depends on:
Blocks:
 
 
Reported: 2010-10-23 22:19 UTC by drago01
Modified: 2011-03-19 21:40 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
volumeIcon: Unmute on manual volume changes (2.34 KB, patch)
2010-10-23 22:19 UTC, drago01
none Details | Review
volumeIcon: Unmute on manual volume changes (1.52 KB, patch)
2010-10-23 22:22 UTC, drago01
none Details | Review
volumeIcon: Unmute on manual volume changes (1.50 KB, patch)
2010-10-23 22:24 UTC, drago01
needs-work Details | Review

Description drago01 2010-10-23 22:19:27 UTC
Quoting IRC conversation:
---------
<drago01> hadess: just wanted to ask you what your opinion is on how volume changes while muted should work .. g-v-c-applet unmutes the sink when the user changes the volume while muted, while the shell implementation does not
<hadess> drago01: it probably should
<hadess> drago01: the status icon behaviour is what jon wanted
<hadess> drago01: so it's probably the right thing to do with the shell as well
---------
Comment 1 drago01 2010-10-23 22:19:43 UTC
Created attachment 173094 [details] [review]
volumeIcon: Unmute on manual volume changes

Unmute when the user changes the volume (using the slider or mousewheel),
to reflect the icon state and match the gnome-volume-control-applet behaviour.
Comment 2 drago01 2010-10-23 22:22:55 UTC
Created attachment 173095 [details] [review]
volumeIcon: Unmute on manual volume changes

Unmute when the user changes the volume (using the slider or mousewheel),
to reflect the icon state and match the gnome-volume-control-applet behaviour.

---

Remove unrelated hunk.
Comment 3 drago01 2010-10-23 22:24:54 UTC
Created attachment 173097 [details] [review]
volumeIcon: Unmute on manual volume changes

Unmute when the user changes the volume (using the slider or mousewheel),
to reflect the icon state and match the gnome-volume-control-applet behaviour.

---

Fix whitespace (should probably not write patches at 00:20 am ;) ).
Comment 4 Giovanni Campagna 2010-10-26 13:28:47 UTC
Review of attachment 173097 [details] [review]:

::: js/ui/status/volume.js
@@ +84,3 @@
         }
+
+        if (this._output.volume > 0) {

Why if > 0?
I think it should be only if the volume is louder (this is what g-v-c-a does for scrolling, whereas the slider is reset to 0 when muted)

@@ +85,3 @@
+
+        if (this._output.volume > 0) {
+            this._output.change_is_muted(false);

You also need to set this._output.is_muted, or manually update this._outputSwitch

@@ +186,3 @@
+        if (this[property].volume > 0) {
+            this[property].change_is_muted(false);
+            this._notifyVolumeChange();

You cannot do this here, as ::value-changed is emitted for every micro change (you would hear a continuous beep while dragging).
Move it to the ::drag-end signal handler.
Comment 5 drago01 2010-10-26 13:35:20 UTC
(In reply to comment #4)
> Review of attachment 173097 [details] [review]:
> 
> ::: js/ui/status/volume.js
> @@ +84,3 @@
>          }
> +
> +        if (this._output.volume > 0) {
> 
> Why if > 0?
> I think it should be only if the volume is louder (this is what g-v-c-a does
> for scrolling, whereas the slider is reset to 0 when muted)

OK

> @@ +85,3 @@
> +
> +        if (this._output.volume > 0) {
> +            this._output.change_is_muted(false);
> 
> You also need to set this._output.is_muted, or manually update
> this._outputSwitch

OK

> @@ +186,3 @@
> +        if (this[property].volume > 0) {
> +            this[property].change_is_muted(false);
> +            this._notifyVolumeChange();
> 
> You cannot do this here, as ::value-changed is emitted for every micro change
> (you would hear a continuous beep while dragging).
> Move it to the ::drag-end signal handler.

Well dragging isn't the only way to change a sliders value (you can scroll or even use the arrow keys).
Comment 6 Giovanni Campagna 2010-10-26 13:41:41 UTC
(In reply to comment #5)
> (In reply to comment #4)
> > @@ +186,3 @@
> > +        if (this[property].volume > 0) {
> > +            this[property].change_is_muted(false);
> > +            this._notifyVolumeChange();
> > 
> > You cannot do this here, as ::value-changed is emitted for every micro change
> > (you would hear a continuous beep while dragging).
> > Move it to the ::drag-end signal handler.
> 
> Well dragging isn't the only way to change a sliders value (you can scroll or
> even use the arrow keys).

Unfortunately, we cannot know when scrolling ends, so both g-v-c-a and new volume indicator have no beep for scrolling or key press.

(I'm referring only to this._notifyVolumeChanged here)
Comment 7 Giovanni Campagna 2011-03-19 19:41:22 UTC
I'm tentatively obsoleting this because the shell has no more a separate muted button, and when the slider is 0 (muted), moving it anywhere changes volume.
Comment 8 drago01 2011-03-19 21:40:27 UTC
(In reply to comment #7)
> I'm tentatively obsoleting this because the shell has no more a separate muted
> button, and when the slider is 0 (muted), moving it anywhere changes volume.

Yeah makes sense, that's the reason why I haven't bothered to update the patch.