diff --git a/terminal/terminal-preferences-dialog.c b/terminal/terminal-preferences-dialog.c index 077467c..190e528 100644 --- a/terminal/terminal-preferences-dialog.c +++ b/terminal/terminal-preferences-dialog.c @@ -144,14 +144,14 @@ terminal_preferences_dialog_init (TerminalPreferencesDialog *dialog) "font-allow-bold", "misc-menubar-default", "misc-toolbar-default", "misc-borders-default", "misc-tab-close-middle-click", "misc-mouse-autohide", - "misc-rewrap-on-resize", "shortcuts-no-helpkey", - "shortcuts-no-mnemonics", "shortcuts-no-menukey", - "binding-backspace", "binding-delete", - "background-mode", "background-image-style", - "color-background-vary", "dropdown-keep-open-default", - "dropdown-keep-above", "dropdown-toggle-focus", - "dropdown-status-icon", "dropdown-move-to-active", - "dropdown-always-show-tabs" + "misc-rewrap-on-resize", "misc-copy-on-select", + "shortcuts-no-helpkey", "shortcuts-no-mnemonics", + "shortcuts-no-menukey", "binding-backspace", + "binding-delete", "background-mode", + "background-image-style", "color-background-vary", + "dropdown-keep-open-default", "dropdown-keep-above", + "dropdown-toggle-focus", "dropdown-status-icon", + "dropdown-move-to-active", "dropdown-always-show-tabs" }; const gchar *props_color[] = { "color-foreground", "color-cursor", "color-background", "tab-activity-color", diff --git a/terminal/terminal-preferences.c b/terminal/terminal-preferences.c index d6c70ae..bea23c7 100644 --- a/terminal/terminal-preferences.c +++ b/terminal/terminal-preferences.c @@ -96,6 +96,7 @@ enum PROP_MISC_DEFAULT_WORKING_DIR, PROP_MISC_REWRAP_ON_RESIZE, PROP_MISC_SHIFT_ARROWS_SCROLL, + PROP_MISC_COPY_ON_SELECT, PROP_SCROLLING_BAR, PROP_SCROLLING_LINES, PROP_SCROLLING_ON_OUTPUT, @@ -866,6 +867,16 @@ terminal_preferences_class_init (TerminalPreferencesClass *klass) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); /** + * TerminalPreferences:misc-copy-on-select: + **/ + preferences_props[PROP_MISC_COPY_ON_SELECT] = + g_param_spec_boolean ("misc-copy-on-select", + NULL, + "MiscCopyOnSelect", + FALSE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + + /** * TerminalPreferences:scrolling-bar: **/ preferences_props[PROP_SCROLLING_BAR] = diff --git a/terminal/terminal-preferences.glade b/terminal/terminal-preferences.glade index 63b7294..fef456c 100644 --- a/terminal/terminal-preferences.glade +++ b/terminal/terminal-preferences.glade @@ -3042,6 +3042,22 @@ when double clicking: 2 + + + Automatically copy selection to clipboard + True + True + False + start + True + True + + + True + True + 3 + + diff --git a/terminal/terminal-screen.c b/terminal/terminal-screen.c index 2ad569e..360b76b 100644 --- a/terminal/terminal-screen.c +++ b/terminal/terminal-screen.c @@ -1195,9 +1195,17 @@ static void terminal_screen_vte_selection_changed (VteTerminal *terminal, TerminalScreen *screen) { + gboolean copy_on_select; + terminal_return_if_fail (VTE_IS_TERMINAL (terminal)); terminal_return_if_fail (TERMINAL_IS_SCREEN (screen)); + /* copy vte selection to GDK_SELECTION_CLIPBOARD if option is set */ + g_object_get (G_OBJECT (screen->preferences), + "misc-copy-on-select", ©_on_select, NULL); + if (copy_on_select) + vte_terminal_copy_clipboard (terminal); + g_signal_emit (G_OBJECT (screen), screen_signals[SELECTION_CHANGED], 0); }