diff options
| -rw-r--r-- | plugins/media-keys/acme.h | 39 | ||||
| -rw-r--r-- | plugins/media-keys/msd-media-keys-manager.c | 10 | 
2 files changed, 28 insertions, 21 deletions
| diff --git a/plugins/media-keys/acme.h b/plugins/media-keys/acme.h index 17ce1ed..e7fddf7 100644 --- a/plugins/media-keys/acme.h +++ b/plugins/media-keys/acme.h @@ -54,27 +54,28 @@ enum {  static struct {          int key_type;          const char *settings_key; +        const char *hard_coded;          Key *key;  } keys[HANDLED_KEYS] = { -        { TOUCHPAD_KEY, "touchpad", NULL }, -        { MUTE_KEY, "volume-mute",NULL }, -        { VOLUME_DOWN_KEY, "volume-down", NULL }, -        { VOLUME_UP_KEY, "volume-up", NULL }, -        { POWER_KEY, "power", NULL }, -        { EJECT_KEY, "eject", NULL }, -        { HOME_KEY, "home", NULL }, -        { MEDIA_KEY, "media", NULL }, -        { CALCULATOR_KEY, "calculator", NULL }, -        { SEARCH_KEY, "search", NULL }, -        { EMAIL_KEY, "email", NULL }, -        { SCREENSAVER_KEY, "screensaver", NULL }, -        { HELP_KEY, "help", NULL }, -        { WWW_KEY, "www", NULL }, -        { PLAY_KEY, "play", NULL }, -        { PAUSE_KEY, "pause", NULL }, -        { STOP_KEY, "stop", NULL }, -        { PREVIOUS_KEY, "previous", NULL }, -        { NEXT_KEY, "next", NULL }, +        { TOUCHPAD_KEY, "touchpad", NULL, NULL }, +        { MUTE_KEY, "volume-mute", NULL, NULL }, +        { VOLUME_DOWN_KEY, "volume-down", NULL, NULL }, +        { VOLUME_UP_KEY, "volume-up", NULL, NULL }, +        { POWER_KEY, "power", NULL, NULL }, +        { EJECT_KEY, "eject", NULL, NULL }, +        { HOME_KEY, "home", NULL, NULL }, +        { MEDIA_KEY, "media", NULL, NULL }, +        { CALCULATOR_KEY, "calculator", NULL, NULL }, +        { SEARCH_KEY, "search", NULL, NULL }, +        { EMAIL_KEY, "email", NULL, NULL }, +        { SCREENSAVER_KEY, "screensaver", NULL, NULL }, +        { HELP_KEY, "help", NULL, NULL }, +        { WWW_KEY, "www", NULL, NULL }, +        { PLAY_KEY, "play", NULL, NULL }, +        { PAUSE_KEY, "pause", NULL, NULL }, +        { STOP_KEY, "stop", NULL, NULL }, +        { PREVIOUS_KEY, "previous", NULL, NULL }, +        { NEXT_KEY, "next", NULL, NULL },          { MAGNIFIER_KEY, "magnifier", NULL, NULL },          { SCREENREADER_KEY, "screenreader", NULL, NULL },          { ON_SCREEN_KEYBOARD_KEY, "on-screen-keyboard", NULL, NULL }, diff --git a/plugins/media-keys/msd-media-keys-manager.c b/plugins/media-keys/msd-media-keys-manager.c index 7d4245e..0680818 100644 --- a/plugins/media-keys/msd-media-keys-manager.c +++ b/plugins/media-keys/msd-media-keys-manager.c @@ -286,6 +286,9 @@ update_kbd_cb (GSettings           *settings,                          g_free (keys[i].key);                          keys[i].key = NULL; +                        /* We can't have a change in a hard-coded key */ +                        g_assert (keys[i].settings_key != NULL); +                          tmp = g_settings_get_string (settings,                                                       keys[i].settings_key); @@ -339,8 +342,11 @@ static void init_kbd(MsdMediaKeysManager* manager)  						  manager);  		g_free (signal_name); -		tmp = g_settings_get_string (manager->priv->settings, -			keys[i].settings_key); +		if (keys[i].settings_key != NULL) { +			tmp = g_settings_get_string (manager->priv->settings, keys[i].settings_key); +		} else { +			tmp = g_strdup (keys[i].hard_coded); +		}  		if (!is_valid_shortcut(tmp))  		{ | 
