diff options
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/keybindings.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/core/keybindings.c b/src/core/keybindings.c index 73966a80..9e602a91 100644 --- a/src/core/keybindings.c +++ b/src/core/keybindings.c @@ -3421,3 +3421,40 @@ meta_set_keybindings_disabled (gboolean setting) meta_topic (META_DEBUG_KEYBINDINGS, "Keybindings %s\n", all_bindings_disabled ? "disabled" : "enabled"); } + +static void +handle_run_terminal (MetaDisplay *display, + MetaScreen *screen, + MetaWindow *window, + XEvent *event, + MetaKeyBinding *binding) +{ + const char *command; + GError *err; + + command = meta_prefs_get_terminal_command (); + + if (command == NULL) + { + char *s; + + meta_topic (META_DEBUG_KEYBINDINGS, + "No terminal command to run in response to " + "keybinding press\n"); + + s = g_strdup_printf (_("No terminal command has been defined.\n")); + error_on_command (-1, NULL, s, screen->screen_name, event->xkey.time); + g_free (s); + + return; + } + + err = NULL; + if (!meta_spawn_command_line_async_on_screen (command, screen, &err)) + { + error_on_command (-1, command, err->message, screen->screen_name, + event->xkey.time); + + g_error_free (err); + } +} |