2010-01-18 14:20:07 +01:00
|
|
|
Index: data/apps_gnome_settings_daemon_keybindings.schemas.in
|
2009-02-20 22:09:29 +01:00
|
|
|
===================================================================
|
2010-04-01 03:30:17 +02:00
|
|
|
--- data/apps_gnome_settings_daemon_keybindings.schemas.in.orig 2010-01-13 02:51:57.000000000 +1100
|
|
|
|
+++ data/apps_gnome_settings_daemon_keybindings.schemas.in 2010-01-13 16:44:53.000000000 +1100
|
|
|
|
@@ -14,6 +14,17 @@
|
2009-02-20 22:09:29 +01:00
|
|
|
</schema>
|
|
|
|
|
|
|
|
<schema>
|
|
|
|
+ <key>/schemas/apps/gnome_settings_daemon/toggle_mute</key>
|
|
|
|
+ <applyto>/apps/gnome_settings_daemon/toggle_mute</applyto>
|
|
|
|
+ <type>bool</type>
|
|
|
|
+ <default>TRUE</default>
|
|
|
|
+ <locale name="C">
|
|
|
|
+ <short>Toggle Mute</short>
|
|
|
|
+ <long>Toggle the sound mixer's mute status when then mute button is pressed.</long>
|
|
|
|
+ </locale>
|
|
|
|
+ </schema>
|
|
|
|
+
|
|
|
|
+ <schema>
|
|
|
|
<key>/schemas/apps/gnome_settings_daemon/keybindings/volume_mute</key>
|
|
|
|
<applyto>/apps/gnome_settings_daemon/keybindings/volume_mute</applyto>
|
|
|
|
<type>string</type>
|
2010-01-18 14:20:07 +01:00
|
|
|
Index: plugins/media-keys/gsd-media-keys-manager.c
|
2009-02-20 22:09:29 +01:00
|
|
|
===================================================================
|
2010-04-01 03:30:17 +02:00
|
|
|
--- plugins/media-keys/gsd-media-keys-manager.c.orig 2010-01-13 02:51:57.000000000 +1100
|
|
|
|
+++ plugins/media-keys/gsd-media-keys-manager.c 2010-01-13 16:44:53.000000000 +1100
|
|
|
|
@@ -636,8 +636,10 @@ do_sound_action (GsdMediaKeysManager *ma
|
2009-02-20 22:09:29 +01:00
|
|
|
int type)
|
|
|
|
{
|
|
|
|
gboolean muted;
|
|
|
|
+ gboolean toggle_mute;
|
|
|
|
guint vol, norm_vol_step;
|
|
|
|
int vol_step;
|
|
|
|
+ GError *error;
|
|
|
|
|
|
|
|
if (manager->priv->stream == NULL)
|
|
|
|
return;
|
2010-04-01 03:30:17 +02:00
|
|
|
@@ -658,7 +660,23 @@ do_sound_action (GsdMediaKeysManager *ma
|
2009-02-20 22:09:29 +01:00
|
|
|
switch (type) {
|
|
|
|
case MUTE_KEY:
|
2010-04-01 03:30:17 +02:00
|
|
|
muted = !muted;
|
|
|
|
- gvc_mixer_stream_change_is_muted (manager->priv->stream, muted);
|
|
|
|
+
|
2009-02-20 22:09:29 +01:00
|
|
|
+ error = NULL;
|
|
|
|
+ toggle_mute = gconf_client_get_bool (manager->priv->conf_client,
|
|
|
|
+ GCONF_MISC_DIR "/toggle_mute",
|
|
|
|
+ &error);
|
|
|
|
+
|
|
|
|
+ if (error) {
|
|
|
|
+ toggle_mute = TRUE;
|
|
|
|
+ g_error_free (error);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (toggle_mute)
|
2010-04-01 03:30:17 +02:00
|
|
|
+ gvc_mixer_stream_change_is_muted (manager->priv->stream,
|
|
|
|
+ muted);
|
2009-02-20 22:09:29 +01:00
|
|
|
+ else
|
2010-04-01 03:30:17 +02:00
|
|
|
+ gvc_mixer_stream_change_is_muted (manager->priv->stream,
|
|
|
|
+ TRUE);
|
2009-02-20 22:09:29 +01:00
|
|
|
break;
|
2010-04-01 03:30:17 +02:00
|
|
|
case VOLUME_DOWN_KEY:
|
|
|
|
if (!muted && (vol <= norm_vol_step)) {
|