diff options
author | Florian Müllner <fmuellner@gnome.org> | 2012-12-03 00:04:46 +0100 |
---|---|---|
committer | Florian Müllner <fmuellner@gnome.org> | 2012-12-05 09:42:20 +0100 |
commit | c183e4f4537b806b15c346798e1f5c11fef37cae (patch) | |
tree | 01283345133f64f715a2b2b2a889f22b6af9fa5e | |
parent | c7c715ee073b94074752baed7fe3a59944672f61 (diff) | |
download | gnome-settings-daemon-shell-keygrab.tar.gz |
media-keys: Pass appropriate GrabModes to grab_key_unsafe()shell-keygrab
-rw-r--r-- | plugins/media-keys/gsd-media-keys-manager.c | 5 | ||||
-rw-r--r-- | plugins/media-keys/shortcuts-list.h | 127 |
2 files changed, 73 insertions, 59 deletions
diff --git a/plugins/media-keys/gsd-media-keys-manager.c b/plugins/media-keys/gsd-media-keys-manager.c index f95d1180..af9d8d20 100644 --- a/plugins/media-keys/gsd-media-keys-manager.c +++ b/plugins/media-keys/gsd-media-keys-manager.c @@ -117,6 +117,7 @@ typedef struct { typedef struct { MediaKeyType key_type; + GsdKeygrabModes modes; const char *settings_key; const char *hard_coded; char *custom_path; @@ -411,7 +412,7 @@ grab_media_key (MediaKey *key, return need_flush; } - grab_key_unsafe (key->key, GSD_KEYGRAB_NORMAL, ~0, manager->priv->screens); + grab_key_unsafe (key->key, GSD_KEYGRAB_NORMAL, key->modes, manager->priv->screens); g_free (tmp); @@ -487,6 +488,7 @@ media_key_new_for_path (GsdMediaKeysManager *manager, key = g_new0 (MediaKey, 1); key->key_type = CUSTOM_KEY; + key->modes = GSD_KEYGRAB_MODE_NORMAL | GSD_KEYGRAB_MODE_OVERVIEW; key->custom_path = g_strdup (path); key->custom_command = command; @@ -614,6 +616,7 @@ add_key (GsdMediaKeysManager *manager, guint i) key->key_type = media_keys[i].key_type; key->settings_key = media_keys[i].settings_key; key->hard_coded = media_keys[i].hard_coded; + key->modes = media_keys[i].modes; g_ptr_array_add (manager->priv->keys, key); diff --git a/plugins/media-keys/shortcuts-list.h b/plugins/media-keys/shortcuts-list.h index a16d0e77..07b8c90d 100644 --- a/plugins/media-keys/shortcuts-list.h +++ b/plugins/media-keys/shortcuts-list.h @@ -85,72 +85,83 @@ typedef enum { CUSTOM_KEY } MediaKeyType; + +#define ALL_MODES ~0 +#define WINDOW_MODES (GSD_KEYGRAB_MODE_NORMAL | GSD_KEYGRAB_MODE_OVERVIEW) +#define SCREENSAVER_MODES ALL_MODES & ~(GSD_KEYGRAB_MODE_LOCK_SCREEN | \ + GSD_KEYGRAB_MODE_UNLOCK_SCREEN) + static struct { MediaKeyType key_type; const char *settings_key; const char *hard_coded; + GsdKeygrabModes modes; } media_keys[] = { - { TOUCHPAD_KEY, NULL, "XF86TouchpadToggle" }, - { TOUCHPAD_ON_KEY, NULL, "XF86TouchpadOn" }, - { TOUCHPAD_OFF_KEY, NULL, "XF86TouchpadOff" }, - { MUTE_KEY, "volume-mute", NULL }, - { VOLUME_DOWN_KEY, "volume-down", NULL }, - { VOLUME_UP_KEY, "volume-up", NULL }, - { MUTE_QUIET_KEY, NULL, "<Alt>XF86AudioMute" }, - { VOLUME_DOWN_QUIET_KEY, NULL, "<Alt>XF86AudioLowerVolume" }, - { VOLUME_UP_QUIET_KEY, NULL, "<Alt>XF86AudioRaiseVolume" }, - { LOGOUT_KEY, "logout", 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 }, - { SCREENSAVER_KEY, NULL, "XF86ScreenSaver" }, - { HELP_KEY, "help", NULL }, - { SCREENSHOT_KEY, "screenshot", NULL }, - { WINDOW_SCREENSHOT_KEY, "window-screenshot", NULL }, - { AREA_SCREENSHOT_KEY, "area-screenshot", NULL }, - { SCREENSHOT_CLIP_KEY, "screenshot-clip", NULL }, - { WINDOW_SCREENSHOT_CLIP_KEY, "window-screenshot-clip", NULL }, - { AREA_SCREENSHOT_CLIP_KEY, "area-screenshot-clip", 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 }, - { REWIND_KEY, NULL, "XF86AudioRewind" }, - { FORWARD_KEY, NULL, "XF86AudioForward" }, - { REPEAT_KEY, NULL, "XF86AudioRepeat" }, - { RANDOM_KEY, NULL, "XF86AudioRandomPlay"}, - { VIDEO_OUT_KEY, NULL, "<Super>p" }, + { TOUCHPAD_KEY, NULL, "XF86TouchpadToggle", ALL_MODES }, + { TOUCHPAD_ON_KEY, NULL, "XF86TouchpadOn", ALL_MODES }, + { TOUCHPAD_OFF_KEY, NULL, "XF86TouchpadOff", ALL_MODES }, + { MUTE_KEY, "volume-mute", NULL, ALL_MODES }, + { VOLUME_DOWN_KEY, "volume-down", NULL, ALL_MODES }, + { VOLUME_UP_KEY, "volume-up", NULL, ALL_MODES }, + { MUTE_QUIET_KEY, NULL, "<Alt>XF86AudioMute", ALL_MODES }, + { VOLUME_DOWN_QUIET_KEY, NULL, "<Alt>XF86AudioLowerVolume", ALL_MODES }, + { VOLUME_UP_QUIET_KEY, NULL, "<Alt>XF86AudioRaiseVolume", ALL_MODES }, + { LOGOUT_KEY, "logout", NULL, WINDOW_MODES }, + { EJECT_KEY, "eject", NULL, ALL_MODES }, + { HOME_KEY, "home", NULL, WINDOW_MODES }, + { MEDIA_KEY, "media", NULL, WINDOW_MODES }, + { CALCULATOR_KEY, "calculator", NULL, WINDOW_MODES }, + { SEARCH_KEY, "search", NULL, WINDOW_MODES }, + { EMAIL_KEY, "email", NULL, WINDOW_MODES }, + { SCREENSAVER_KEY, "screensaver", NULL, SCREENSAVER_MODES }, + { SCREENSAVER_KEY, NULL, "XF86ScreenSaver", SCREENSAVER_MODES }, + { HELP_KEY, "help", NULL, WINDOW_MODES }, + { SCREENSHOT_KEY, "screenshot", NULL, ALL_MODES }, + { WINDOW_SCREENSHOT_KEY, "window-screenshot", NULL, GSD_KEYGRAB_MODE_NORMAL }, + { AREA_SCREENSHOT_KEY, "area-screenshot", NULL, ALL_MODES }, + { SCREENSHOT_CLIP_KEY, "screenshot-clip", NULL, ALL_MODES }, + { WINDOW_SCREENSHOT_CLIP_KEY, "window-screenshot-clip", NULL, GSD_KEYGRAB_MODE_NORMAL }, + { AREA_SCREENSHOT_CLIP_KEY, "area-screenshot-clip", NULL, ALL_MODES }, + { WWW_KEY, "www", NULL, WINDOW_MODES }, + { PLAY_KEY, "play", NULL, ALL_MODES }, + { PAUSE_KEY, "pause", NULL, ALL_MODES }, + { STOP_KEY, "stop", NULL, ALL_MODES }, + { PREVIOUS_KEY, "previous", NULL, ALL_MODES }, + { NEXT_KEY, "next", NULL, ALL_MODES }, + { REWIND_KEY, NULL, "XF86AudioRewind", ALL_MODES }, + { FORWARD_KEY, NULL, "XF86AudioForward", ALL_MODES }, + { REPEAT_KEY, NULL, "XF86AudioRepeat", ALL_MODES }, + { RANDOM_KEY, NULL, "XF86AudioRandomPlay", ALL_MODES }, + { VIDEO_OUT_KEY, NULL, "<Super>p", ALL_MODES }, /* Key code of the XF86Display key (Fn-F7 on Thinkpads, Fn-F4 on HP machines, etc.) */ - { VIDEO_OUT_KEY, NULL, "XF86Display" }, + { VIDEO_OUT_KEY, NULL, "XF86Display", ALL_MODES }, /* Key code of the XF86RotateWindows key (present on some tablets) */ - { ROTATE_VIDEO_KEY, NULL, "XF86RotateWindows" }, - { MAGNIFIER_KEY, "magnifier", NULL }, - { SCREENREADER_KEY, "screenreader", NULL }, - { ON_SCREEN_KEYBOARD_KEY, "on-screen-keyboard", NULL }, - { INCREASE_TEXT_KEY, "increase-text-size", NULL }, - { DECREASE_TEXT_KEY, "decrease-text-size", NULL }, - { TOGGLE_CONTRAST_KEY, "toggle-contrast", NULL }, - { MAGNIFIER_ZOOM_IN_KEY, "magnifier-zoom-in", NULL }, - { MAGNIFIER_ZOOM_OUT_KEY, "magnifier-zoom-out", NULL }, - { POWER_KEY, NULL, "XF86PowerOff" }, + { ROTATE_VIDEO_KEY, NULL, "XF86RotateWindows", GSD_KEYGRAB_MODE_NORMAL }, + { MAGNIFIER_KEY, "magnifier", NULL, ALL_MODES }, + { SCREENREADER_KEY, "screenreader", NULL, ALL_MODES }, + { ON_SCREEN_KEYBOARD_KEY, "on-screen-keyboard", NULL, ALL_MODES }, + { INCREASE_TEXT_KEY, "increase-text-size", NULL, ALL_MODES }, + { DECREASE_TEXT_KEY, "decrease-text-size", NULL, ALL_MODES }, + { TOGGLE_CONTRAST_KEY, "toggle-contrast", NULL, ALL_MODES }, + { MAGNIFIER_ZOOM_IN_KEY, "magnifier-zoom-in", NULL, ALL_MODES }, + { MAGNIFIER_ZOOM_OUT_KEY, "magnifier-zoom-out", NULL, ALL_MODES }, + { POWER_KEY, NULL, "XF86PowerOff", WINDOW_MODES }, /* the kernel / Xorg names really are like this... */ - { SLEEP_KEY, NULL, "XF86Suspend" }, - { SUSPEND_KEY, NULL, "XF86Sleep" }, - { HIBERNATE_KEY, NULL, "XF86Hibernate" }, - { SCREEN_BRIGHTNESS_UP_KEY, NULL, "XF86MonBrightnessUp" }, - { SCREEN_BRIGHTNESS_DOWN_KEY, NULL, "XF86MonBrightnessDown" }, - { KEYBOARD_BRIGHTNESS_UP_KEY, NULL, "XF86KbdBrightnessUp" }, - { KEYBOARD_BRIGHTNESS_DOWN_KEY, NULL, "XF86KbdBrightnessDown" }, - { KEYBOARD_BRIGHTNESS_TOGGLE_KEY, NULL, "XF86KbdLightOnOff" }, - { SWITCH_INPUT_SOURCE_KEY, "switch-input-source", NULL }, - { SWITCH_INPUT_SOURCE_BACKWARD_KEY, "switch-input-source-backward", NULL }, - { BATTERY_KEY, NULL, "XF86Battery" }, + { SLEEP_KEY, NULL, "XF86Suspend", ALL_MODES }, + { SUSPEND_KEY, NULL, "XF86Sleep", ALL_MODES }, + { HIBERNATE_KEY, NULL, "XF86Hibernate", ALL_MODES }, + { SCREEN_BRIGHTNESS_UP_KEY, NULL, "XF86MonBrightnessUp", ALL_MODES }, + { SCREEN_BRIGHTNESS_DOWN_KEY, NULL, "XF86MonBrightnessDown", ALL_MODES }, + { KEYBOARD_BRIGHTNESS_UP_KEY, NULL, "XF86KbdBrightnessUp", ALL_MODES }, + { KEYBOARD_BRIGHTNESS_DOWN_KEY, NULL, "XF86KbdBrightnessDown", ALL_MODES }, + { KEYBOARD_BRIGHTNESS_TOGGLE_KEY, NULL, "XF86KbdLightOnOff", ALL_MODES }, + { SWITCH_INPUT_SOURCE_KEY, "switch-input-source", NULL, ALL_MODES }, + { SWITCH_INPUT_SOURCE_BACKWARD_KEY, "switch-input-source-backward", NULL, ALL_MODES }, + { BATTERY_KEY, NULL, "XF86Battery", WINDOW_MODES }, }; +#undef ALL_MODES +#undef WINDOW_MODES +#undef SCREENSAVER_MODES + #endif /* __ACME_H__ */ |