diff --git a/gnome-settings-daemon/ChangeLog b/gnome-settings-daemon/ChangeLog index 52faeeaf9..3daa1e478 100644 --- a/gnome-settings-daemon/ChangeLog +++ b/gnome-settings-daemon/ChangeLog @@ -1,3 +1,11 @@ +2007-03-20 Priit Laes + + * gnome-settings-multimedia-keys.c: (do_media_action), (do_action): Added + handler for media keybinding. + * actions/acme.h: Add defines for media key. + + Introduces preferred media application support. Bug #362578. + 2007-03-18 Jens Granseuer * gnome-settings-multimedia-keys.c: (dialog_show): fix multimedia diff --git a/gnome-settings-daemon/actions/acme.h b/gnome-settings-daemon/actions/acme.h index 13370036f..ddcb4bcb3 100644 --- a/gnome-settings-daemon/actions/acme.h +++ b/gnome-settings-daemon/actions/acme.h @@ -32,6 +32,7 @@ enum { POWER_KEY, EJECT_KEY, HOME_KEY, + MEDIA_KEY, SEARCH_KEY, EMAIL_KEY, SLEEP_KEY, @@ -63,6 +64,7 @@ static struct { { POWER_KEY, GCONF_BINDING_DIR "/power", NULL }, { EJECT_KEY, GCONF_BINDING_DIR "/eject", NULL }, { HOME_KEY, GCONF_BINDING_DIR "/home", NULL }, + { MEDIA_KEY, GCONF_BINDING_DIR "/media", NULL }, { SEARCH_KEY, GCONF_BINDING_DIR "/search", NULL }, { EMAIL_KEY, GCONF_BINDING_DIR "/email", NULL }, { SLEEP_KEY, GCONF_BINDING_DIR "/sleep", NULL }, diff --git a/gnome-settings-daemon/gnome-settings-multimedia-keys.c b/gnome-settings-daemon/gnome-settings-multimedia-keys.c index b7d4f8e7a..b60a0f9e7 100644 --- a/gnome-settings-daemon/gnome-settings-multimedia-keys.c +++ b/gnome-settings-daemon/gnome-settings-multimedia-keys.c @@ -458,6 +458,17 @@ do_mail_action (Acme *acme) g_free (string); } +static void +do_media_action (Acme *acme) +{ + char *command; + command = gconf_client_get_string (acme->conf_client, + GCONF_MISC_DIR "/eject_command", NULL); + if ((command != NULL) && (strcmp (command, "") != 0)) + execute (command, FALSE); + g_free (command); +} + static void do_www_action (Acme *acme, const char *url) { @@ -616,6 +627,9 @@ do_action (Acme *acme, int type) case WWW_KEY: do_www_action (acme, NULL); break; + case MEDIA_KEY: + do_media_action (acme); + break; case PLAY_KEY: return do_multimedia_player_action (acme, "Play"); break;